# JeecgBoot 单体升级微服务启动 [2020-12-01 | 2.4] > 对当前业务模块 system、demo ,实现快速切换成 springcloud 微服务方式启动。 入门视频教程: https://www.bilibili.com/video/BV1sZ4y1G7LL 采用SpringCloud Alibaba技术栈 * 服务注册:nacos * 配置中心:nacos * 路由网关: gateway * 服务间调用:openfeign * 熔断和降级:hystrix * 消息队列:rabbitmq * 分布式任务:xxl-job * 分布式锁:redisson **目录:** [TOC] ## 一、启动Nacos ### 1. 安装nacos 微服务通过 Nacos 实现服务注册发现和统一配置中心 先通过docker安装nacos ``` 1.下载镜像 docker pull nacos/nacos-server 2.启动镜像 docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server ``` Nacos安装文档 * https://my.oschina.net/jeecg/blog/4728941 * https://nacos.io/zh-cn/docs/quick-start-docker.html ### 2.启动nacos 启动成功后,访问`localhost:8848/nacos` 账号密码 默认都是nacos,查看服务列表 ![](https://img.kancloud.cn/c6/ce/c6ce1fb2ae6ab3fe1459fc0991ef3f78_1898x736.png) ### 3.新建jeecg.yaml,jeecg-dev.yaml配置文件 `注意: 默认分组不要改,新建配置文件需要带着.yaml 后缀名` ![](https://img.kancloud.cn/79/b1/79b1569441bfbaaa54681bc2488f3e0a_1909x537.png) 创建jeecg.yaml,文件存放路径:jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg.yaml ![](https://img.kancloud.cn/a0/22/a02243751631dc0f833dd70c298f4730_1905x736.png) 创建jeecg-dev.yaml,文件存放路径:jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-dev.yaml ``` jeecg-dev.yaml存储经常要修改的配置,一般需要个性化修改的如下: 1、数据库的连接池修改 2、redis 配置 3、rabbitmq 配置 4、xxljob 配置 5、路由配置route 加载方式 6、是否开启xxljob(默认不启用) ``` ![](https://img.kancloud.cn/43/76/43766b39f2083a35ef52ad402b2e5dc0_1916x754.png) 多环境配置,如果你需要根据环境配置,分别创建不同的文件 ![](https://img.kancloud.cn/f9/48/f9482d107246006bee40b828b4a7a59c_256x173.png) jeecg-prod.yaml jeecg-test.yaml ### 4.启动system(对应jeecg-cloud-start模块)、demo 服务,再查看服务列表 详细启动步骤看下面第二大步 ![](https://img.kancloud.cn/7b/a2/7ba2e56109126635a8247639cbedbc86_1892x472.png) ## 二、启动jeecg-cloud-system-start服务 ### 1.修改 jeecg-boot根目录下的pom文件,将此处的注释打开 ![](https://img.kancloud.cn/30/23/302387a712e6ca36752fc7eb84664026_611x178.png) ### 2.修改system项目的pom文件 将 jeecg-boot-module-system/pom.xml 中的 demo 依赖注释掉(没有demo依赖可忽略此步骤) ![](https://img.kancloud.cn/f6/0e/f60ed2287fdf7cad92150b812ab26658_549x223.png) ### 3.修改打包配置 修改pom文件中spring-boot-maven-plugin 打包插件configuration.skip=true ### 4. 启动项目 a. 删除此类或者注释掉 ~~org.jeecg.JeecgSystemApplication~~ b. 找到jeecg-cloud-module/jeecg-cloud-system-start 下面的启动类 org.jeecg.JeecgSystemCloudApplication 右键运行启动。 > 备注说明 > jeecg-cloud-system-start 引用了jeecg-boot-module-system是system模块对应的微服务启动项目 > jeecg-cloud-system-start 是微服务模式启动项目 > jeecg-boot-module-system 是单体模式启动项目 ## 三、启动jeecg-demo服务 升级某个业务模块为独立服务(例如demo模块) 以demo为例 ### 1. 添加微服务启动依赖 修改pom,引入jeecg-boot-starter-cloud,完整配置如下 ![](https://img.kancloud.cn/f7/2f/f72f10184004c4d13249cbd0c2384d4c_1118x501.png) ~~~ <!-- 引入jeecg-boot-starter-cloud依赖 --> <dependency> <groupId>org.jeecgframework.boot</groupId> <artifactId>jeecg-boot-starter-cloud</artifactId> </dependency> <!-- 打包插件 --> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> ~~~ ### 2.添加配置文件application.yml 如果没有则新建,内容如下: ~~~ server: port: 7002 spring: application: name: jeecg-demo ~~~ ### 3.在org.jeecg包下新建启动类(如果没有) ~~~ package org.jeecg; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableFeignClients public class JeecgDemoApplication { public static void main(String[] args) { SpringApplication.run(JeecgDemoApplication.class, args); } } ~~~ 上述步骤完成 即可启动 demo 微服务模块,前提得把nacos配置成功。 ## 四、Gateway路由网关配置 jeecg 路由加载支持三种模式:`yml本地配置` 、 `nacos配置` 、 `database数据库`,其中nacos和数据库方式支持动态刷新路由。 ### 路由加载模式说明 | 配置模式 | 配置加载方式 | | --- | --- | | yml | 本地配置文件 application.yml | | nacos | 走nacos的 jeecg-gateway-router.json | | database | 走系统的路由管理DB | ### 以下介绍三种模式的配置方式 切换路由需修改nacos中的 jeecg-dev.yml中路由配置如下图 ![](https://img.kancloud.cn/f2/16/f216820608c31a262655fff9ea105cbd_1535x722.png) #### 模式一:本地yml配置方式 首先修改nacos中的 jeecg-dev.yml 的参数 jeecg.route.config.data-type=yml 再修改jeecg-cloud-gateway模块中application-dev.yml文件,添加如下路由配置信息 ![](https://img.kancloud.cn/cf/c0/cfc038ad34c90825cca45fe2ddadc6c7_1231x774.png) ~~~ #如果启用nacos或者数据库配置请删除一下配置 routes: - id: jeecg-demo uri: lb://jeecg-demo predicates: - Path=/mock/**,/test/**,/bigscreen/template1/**,/bigscreen/template2/** - id: jeecg-system uri: lb://jeecg-system predicates: - Path=/sys/**,/eoa/plan/**,/email/**,/oa/im/**,/metting/**,/filemanage/**,/officialdoc/**,/sign/**,/oa/im/**,/cms/**,/chat/eoaCmsMenu/**,/filedisk/**,/im/**,/joa/**,/online/**,/bigscreen/**,/jmreport/**,/design/report/**,/desform/**,/process/**,/act/**,/plug-in/** - id: jeecg-system-websocket uri: lb:ws://jeecg-system predicates: - Path=/websocket/**,/eoaSocket/** - id: jeecg-demo-websocket uri: lb:ws://jeecg-demo predicates: - Path=/vxeSocket/** ~~~ #### 模式二: nacos配置方式 首先修改nacos中的 jeecg-dev.yml 的参数 jeecg.route.config.data-type=nacos 再在nacos中新建路由配置文件jeecg-gateway-router.json (文件存放路径:jeecg-boot-starter/jeecg-boot-starter-cloud/nacos/jeecg-gateway-router.json) ![](https://img.kancloud.cn/24/75/2475d1c0146fd6b1d95ae06eccfd526a_1857x716.png) #### 模式三: 数据库配置方式 首先修改nacos中的 jeecg-dev.yml 的参数 jeecg.route.config.data-type=database 再通过系统管理下的路由配置菜单进行路由维护,路由配置表为sys_gateway_route 这样gateway 路由加载就从数据库中读取。 ![](https://img.kancloud.cn/f8/87/f887102942788442457b2b75e01bf021_1685x868.png) ## 五、启动gateway 启动类: org.jeecg.JeecgGatewayApplication 启动完成后nacos服务列表如下所示 ![](https://img.kancloud.cn/1d/6b/1d6b1e9e36bcd52468be3e8b94fd09de_1863x547.png) 查看在线接口文档: http://127.0.0.1:9999/doc.html ![](https://img.kancloud.cn/01/cb/01cba09b5a246e4ba9d54ce86637f138_1869x850.png) ## 六、启动前端&访问系统 前端项目找到环境配置文件.env.development 修改地址:VUE_APP_API_BASE_URL=http://localhost:9999 其中端口号 `9999`和gateway的端口保持一致 ![](https://img.kancloud.cn/8b/4b/8b4b155115b262682be04fa275148d0f_1125x485.png) #访问系统首页: http://localhost:3000 ![](https://img.kancloud.cn/1a/8e/1a8ef30e449e6f7c009999993b469b62_1916x993.png)