单体升级为微服务
最后更新于:2022-04-02 07:10:01
# JeecgBoot 单体改为微服务
>[info] Version: 2.4+以上版本 | 20201201
*示例:将模块 system、demo ,快速切换成 SpringCloud微服务方式启动*
**目录:**
[TOC]
## 一、配置host
```
127.0.0.1 jeecg-boot-redis
127.0.0.1 jeecg-boot-mysql
127.0.0.1 jeecg-boot-rabbitmq
127.0.0.1 jeecg-boot-nacos
127.0.0.1 jeecg-boot-gateway
127.0.0.1 jeecg-boot-system
127.0.0.1 jeecg-boot-xxljob
```
## 二、放开微服务注释
修改 jeecg-boot根目录下的pom文件,将此处的注释打开
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/55/0f/550fcf4a5a5f245245910c0e0773a247_614x182.png)
## 三、启动Nacos
* a. 创建nacos的数据库,需要执行 [Nacos脚本](https://gitee.com/jeecg/jeecg-boot/blob/master/jeecg-boot/db/tables_nacos.sql)
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/e4/fa/e4fa740b5e9063ea83050ea350c4b29f_365x218.png)
* b.启动nacos服务
找到项目 jeecg-cloud-module/jeecg-cloud-nacos,右键执行类com.alibaba.nacos.JeecgNacosApplication
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/39/9e/399e2761547622d23a0bee52301eb16a_1746x506.png)
* c.访问nacos地址
地址:http://127.0.0.1:8848/nacos(账号密码都是nacos)
默认所需配置已初始化好
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/44/81/448124e51cc8f28ecda373150fead760_1635x382.png)
经常需要改的配置在jeecg-dev.yaml,可以自己调整相关参数,也可以创建多个模式配置jeecg-{模式}.yaml。
## 四、启动jeecg-system服务
* 1.注释system项目的pom中demo的引入依赖
将 jeecg-boot-module-system/pom.xml 中的 demo 依赖注释掉 或者 删掉
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/f6/0e/f60ed2287fdf7cad92150b812ab26658_549x223.png)
* 2.修改打包配置
修改 jeecg-boot-module-system/pom.xml 文件中spring-boot-maven-plugin 打包插件configuration.skip=true
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/1e/c0/1ec0ea5318e1d1c4045469bba0475c16_1222x624.png)
* 3. 启动system微服务 (jeecg-cloud-system-start)
找到jeecg-cloud-module/jeecg-cloud-system-start 下面的启动类 org.jeecg.JeecgSystemCloudApplication 右键运行启动。
## 五、启动jeecg-demo服务
升级某个模块为微服务模块, 这里以demo为例
* 1. 添加微服务启动依赖 `jeecg-boot-starter-cloud`
~~~
org.jeecgframework.boot
jeecg-boot-starter-cloud
~~~
* 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和数据库方式支持动态刷新路由,默认用的是`database数据库`模式,详细路由配置 [参考此文档](http://doc.jeecg.com/2294757)。
启动类: org.jeecg.JeecgGatewayApplication
启动完成后nacos服务列表如下所示
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/1d/6b/1d6b1e9e36bcd52468be3e8b94fd09de_1863x547.png)
查看在线接口文档: http://127.0.0.1:9999/doc.html
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/01/cb/01cba09b5a246e4ba9d54ce86637f138_1869x850.png)
## 七、启动前端
前端项目找到环境配置文件.env.development
修改地址:`VUE_APP_API_BASE_URL=http://localhost:9999`
其中端口号 `9999`和`gateway`的端口保持一致
>[info] 注意: 微服务方式访问,对接的是gateway的地址,不再是system。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/8b/4b/8b4b155115b262682be04fa275148d0f_1125x485.png)
访问系统首页: http://localhost:3000
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/1a/8e/1a8ef30e449e6f7c009999993b469b62_1916x993.png)
*****
## 八、高级应用
### rabbitmq服务启动
1、[安装rabbitmq](https://my.oschina.net/jeecg/blog/4729143)
2、修改nacos中jeecg-dev.yaml的rabbitmq链接配置
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/92/33/92335223ee614ad4fc87117e0b8ab310_814x506.png)
3、启动system,rabbitmq队列和交换机会自动生成
详细文档见[ rabitmq消息队列集成2.4+](http://doc.jeecg.com/2043897)
### xxljob服务启动
1. 手工执行脚本[ jeecg-cloud-xxljob/doc/db/tables_xxl_job.sql](https://github.com/zhangdaiscott/jeecg-boot/blob/master/jeecg-boot/jeecg-cloud-module/jeecg-cloud-xxljob/doc/db/tables_xxl_job.sql) 创建xxl_job库
2. xxljob服务启动,请右键执行` jeecg-cloud-xxljob/com.xxl.job.admin.XxlJobAdminApplication`
详细文档见[ xxl-job定时任务集成2.4+](http://doc.jeecg.com/2043895)
';