这是我参与11月更文挑战的第20天,活动详情查看:11月更文挑战
1 存在问题
上一篇,关于knife4j整合微服务聚合文档, 在日常项目中,使用简单,方便, 可是存在一个问题, 就是需要在文档服务中,手动的配置其他服务的路由地址,而且, 每次新增一个服务,都需要配置,使用起来不是很灵活便捷,那有没有解决方案, 文档服务,主动去nacos中获取服务,自动注册到文档服务的呢?, 答案是肯定的, 对于这一块,knife4j工具提供了相关的入口.
2 解决方案
对于上次的knife4j整合微服务聚合文档文章做增强功能, 业务服务可复用之前的, 本次只对文档服务改造即可.
文档服务案列
Nacos服务类
主要处理nacos中服务实例,包括鉴权,nacos配置等.
1 | java复制代码public class DocNacosService extends NacosService { |
Nacos服务资源库类
主要是初始化nacos资源库, 从本地文件获取,从nacos注册中心获取服务加载到本地资源库.
1 | java复制代码public class DocNacosRepository extends NacosRepository { |
路由分发类
主要处理请求的路由转发等, 对于返回的结果, 可以根据业务的不同,返回不同状态.
1 | java复制代码public class DocRouteDispatcher extends RouteDispatcher { |
Nacos配置类
自动配置, 将nacos资源库,路由分发等加载到容器中.
1 | java复制代码@Configuration |
服务启动类
1 | java复制代码@EnableDiscoveryClient |
配置文件application.yml
1 | yml复制代码server: |
配置文件spring.factories
1 | factories复制代码org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ |
测试
测试步骤
1 启动nacos服务
2 启动两个Demo业务服务
3 启动文档服务
4 本地访问 http://localhost:8000/doc.html
测试结果
1 测试结果, 发现业务服务的在线文档和文档服务完美聚合.
2 通过测试, 下线其中一个服务, 文档服务中,也会剔除掉相应的在文档.
3 将在线文档转为离线文档下载到本地, 功能正常
本文转载自: 掘金