Skip to the content.

Jeecg微服务Dubbo版本

一、配置host

提醒:必须配置,不然启动会报错。

127.0.0.1 jeecg-boot-redis
127.0.0.1 jeecg-boot-mysql
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-sentinel
127.0.0.1 jeecg-boot-xxljob
127.0.0.1 jeecg-boot-rabbitmq

二、勾选中Maven Profile dev和SpringCloud

img 切换成功效果

注意:devSpringCloud 需要同时勾选,不然会出错。 img

三、创建微服务所需数据库

手工执行jeecgboot提供的 初始化SQL,创建jeecg-bootnacosxxl_job 三个库。

img

重要提示: nacos库默认加入jeecg所需要配置。 Dubbo的相关配置,请 手工加 jeecg.yaml、jeecg-dev.yaml、jeecg-gateway-dev.yaml等配置

四、启动微服务项目

4.1 启动nacos

找到下面的启动类,右键执行

项目:jeecg-server-cloud\jeecg-cloud-nacos
启动类:com.alibaba.nacos.JeecgNacosApplication

访问:http://localhost:8848/nacos 账号密码:nacos/nacos

img

4.2 启动 jeecg-demo dubbo服务

找到下面的启动类打开注释,右键启动

项目:jeecg-server-cloud/jeecg-demo-dubbo-start
启动类:org.jeecg.JeecgDemoDubboApplication

4.3 启动 jeecg-system dubbo服务

1 找到下面的启动类,右键启动

项目:jeecg-server-cloud/jeecg-system-dubbo-start
启动类:org.jeecg.JeecgSystemDubboApplication

2 单体启动类可以删掉或者注释掉

jeecg-module-system/jeecg-system-start/src/main/java/org/jeecg/JeecgSystemApplication.java

3 Windows环境下,让system和demo微服务跑在Docker中,仅提供RPC服务

首先介绍下Dubbo环境变量上下文中4个关键变量;

# https://cn.dubbo.apache.org/zh-cn/docs/advanced/set-host/
DUBBO_IP_TO_REGISTRY:注册到注册中心的 ip 地址,其他Dubbo微服务通过注册中心的这个地址访问到当前微服务,这里需要设置成当前局域网IP(不要用localhost)
DUBBO_PORT_TO_REGISTRY:注册到注册中心的 port 端口,留空自行选择即可
DUBBO_IP_TO_BIND:监听 ip 地址,这个监听地址必须和nacos注册中心网络连通(一般网段相同,留空自行选择即可,默认会分配Docker的bridge网段ip)
DUBBO_PORT_TO_BIND:监听 port 端口,留空自行选择即可

由于Windows环境的Docker不支持Host网络模式,因此我们启动容器时,需要指定变量,容器运行命令参考:

docker run \
--env=DUBBO_IP_TO_BIND= \
# 局域网网段IP
--env=DUBBO_IP_TO_REGISTRY=192.168.240.72 \
# 这个是配置文件中的环境变量,可以指定端口
--env=DUBBO_PORT=20888 \
--env=DUBBO_PORT_TO_BIND= \
--env=DUBBO_PORT_TO_REGISTRY= \
# Web端口,这个端口在Nacos中注册后还是Docker的bridge网段IP
--env=SERVER_PORT=8001 \
--volume=F:\opt\upFiles:/opt/upFiles:rw \
-p 20888:20888 \
-p 8001:8001 \
--add-host jeecg-boot-nacos:172.17.0.1 \
--add-host jeecg-boot-sentinel:172.17.0.1 \
--add-host jeecg-boot-mysql:172.17.0.1 \
--add-host jeecg-boot-redis:172.17.0.1 \
--add-host jeecg-boot-rabbitmq:172.17.0.1 \
--add-host jeecg-boot-es:172.17.0.1 \
--add-host jeecg-boot-xxljob:172.17.0.1 \
--name=jeecg-system-dubbo -di <镜像名>

现在业务微服务工程启动后,可以调用system模块提供的rpc接口了,还有几个问题:

  1. 业务微服务启动会报错Failed to start NettyClient /192.168.240.72 connect to the server /172.17.0.7:20888,可以看到网段不一致导致的访问问题,但是不影响RPC调用。如果不想要烦人的提示,关闭日志即可(logging.level.org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask: off)。
  2. 启动gateway网关后,会发现无法正常路由到system模块的微服务,这是因为Nacos注册中心的服务名为jeecg-system-dubbo的服务绑定的IP还是172.17.0.7,因此宿主机上启动的gateway无法路由过去,除非你把gateway也用Docker启动(这样业务微服务中记得把Dubbo的绑定IP统一换成局域网IP)
  3. 上述问题只有设置DUBBO_IP_TO_BIND才能解决,而Windows下Docker设置后容器无法启动(除非换Linux)

4.4 启动网关gateway

项目:jeecg-server-cloud\jeecg-cloud-gateway
启动类:org.jeecg.JeecgGatewayApplication
网关配置文件:jeecg-cloud-nacos/docs/config/jeecg-gateway-dev.yaml

4.5 启动更多服务模块

跟上面类同,这里不做详细介绍了。

业务端Dubbo微服务test模块(鉴权用到System微服务)

 项目:jeecg-server-cloud\jeecg-visual\jeecg-cloud-dubbo-test\jeecg-cloud-dubbo-test-service
 启动类:src\main\java\cn\com\TestServerApplication.java

Xxljob服务端

 项目:jeecg-server-cloud\jeecg-cloud-xxljob
 启动类:src\main\java\com\xxl\job\admin\XxlJobAdminApplication.java
  
- 访问:http://localhost:9080/xxl-job-admin
- 账号:admin/123456

img

Sentinel服务端

项目: jeecg-server-cloud\jeecg-cloud-sentinel
启动类:src\main\java\com\alibaba\csp\sentinel\dashboard\JeecgSentinelApplication.java

-访问:http://localhost:9000
-账号密码:sentinel/sentinel

img

SpringBoot Admin服务监控

项目:jeecg-server-cloud\jeecg-cloud-monitor
启动类:src\main\java\org\jeecg\monitor\JeecgMonitorApplication.java 

- 访问:http://localhost:9111/login
- 账号:admin/admin

img

特殊配置

其他服务测试地址

软件服务 测试地址 账号密码 是否必须
nacos(服务注册发现和统一配置中心) http://localhost:8848/nacos nacos/nacos
rabitmq (消息中间件) http://localhost:15672 guest/guest
xxl-job-admin(分布式定时任务) http://localhost:9080/xxl-job-admin admin/123456
sentinel (Sentinel监控) http://localhost:9000 sentinel/sentinel

五-1、Vue2前端对接 (ant-design-vue-jeecg)

修改.env.development,配置接口地址为gateway地址。

VUE_APP_API_BASE_URL=http://localhost:9999

启动访问: http://localhost:3000

五-2、Vue3前端对接 (jeecgboot-vue3)

修改.env.development,配置接口地址为gateway地址。

VITE_PROXY = [["/jeecgboot","http://localhost:9999"],["/upload","http://localhost:3300/upload"]]
VITE_GLOB_DOMAIN_URL=http://localhost:9999

启动访问: http://localhost:3100

六、深入高级功能

6.1. rabbitmq服务启动

1、安装rabbitmq 2、修改nacos中jeecg-dev.yaml的rabbitmq链接配置 img 3、启动system,rabbitmq队列和交换机会自动生成 详细文档见 rabitmq消息队列集成2.4+

6.2. xxljob服务启动

  1. 手工执行脚本 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+