JeecgBoot自开源来被问最多的就是微服务版本什么时间出呢??微服务是个趋势,特别随着中台概念的兴趣,每个公司对微服务的需求都很迫切。针对大家的需求,我们推出了Jeecg-Cloud版本采用的SpringCloud Alibaba体系!! 但是同时维护两套代码,对我们团队来讲维护成本太高,为了减少维护成本,也为了让用户有智能的选择,故而推出新版JeecgBoot 2.3,我们特意制作了单体和微服务自由切换机制,一套代码可以轻松切换单体、微服务。
当前新版JeecgBoot 2.3平台默认提供了 system、demo 等模块,可以快速把每个模块单独启动作为微服务应用,切换成cloud。 本项目采用SpringCloud Alibaba技术栈为:
- 服务注册:nacos
- 配置中心:nacos-config
- 理由网关: gateway
- 服务间调用:openfeign
- 熔断和降级:sentinel
- 服务监控:Spring Boot Admin
视频教程 :>>单体升级微服务视频教程
下面是单体快速升级微服务方案:
一、升级system模块为独立服务
1.将system项目的pom文件中的其他模块的依赖删除,只保留local-api
2.system项目作为微服务启动,需要添加微服务依赖
1 <!-- nacos --> 2 <dependency> 3 <groupId>com.alibaba.cloud</groupId> 4 <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> 5 </dependency> 6 <!-- 如果走配置中心需要添加此依赖 --> 7 <dependency> 8 <groupId>com.alibaba.cloud</groupId> 9 <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> 10 </dependency> 11 12 <!-- 服务降级 --> 13 <dependency> 14 <groupId>com.alibaba.cloud</groupId> 15 <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> 16 </dependency>
3.在resource文件夹下新建bootstrap.yml,内容如下:
1 spring: 2 profiles: 3 active: dev 4 application: 5 name: jeecg-system 6 cloud: 7 nacos: 8 discovery: 9 server-addr: 127.0.0.1:8848 10 feign: 11 sentinel: 12 enabled: true
4.修改dev配置文件,删除截图中两处配置
5.启动类添加注解: @EnableDiscoveryClient
二、升级其他模块为独立服务(例如demo模块)
以demo为例:
1.修改pom,将local-api修改成cloud-api
<dependency> <groupId>org.jeecgframework.boot</groupId> <artifactId>jeecg-system-cloud-api</artifactId> </dependency>
2.添加配置文件bootstrap.yml(如果没有),内容如下:
1 spring: 2 profiles: 3 active: dev 4 application: 5 name: jeecg-demo 6 cloud: 7 nacos: 8 discovery: 9 server-addr: 127.0.0.1:8848 10 feign: 11 sentinel: 12 enabled: true
3.新增配置文件application-dev.yml(如果没有),内容可以直接复制system下的同名文件,需要修改端口号
4.在org.jeecg包下新建启动类(如果没有)
1 package org.jeecg; 2 3 import org.springframework.boot.SpringApplication; 4 import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 5 import org.springframework.boot.autoconfigure.SpringBootApplication; 6 import org.springframework.cloud.client.discovery.EnableDiscoveryClient; 7 import org.springframework.cloud.openfeign.EnableFeignClients; 8 9 import java.net.UnknownHostException; 10 11 @SpringBootApplication 12 @EnableDiscoveryClient 13 @EnableFeignClients 14 public class JeecgDemoApplication { 15 16 public static void main(String[] args) throws UnknownHostException { 17 SpringApplication.run(JeecgDemoApplication.class, args); 18 } 19 }
上述步骤完成 即可启动nacos 运行每个模块的启动类 测试微服务。
三、启动Nacos
1 2 | 微服务集成Nacos服务注册发现 docke安装nacos文档: https: //nacos.io/zh-cn/docs/quick-start-docker.html |
1.启动nacos,访问 localhost:8848/nacos
账号密码 都是nacos,查看服务列表
2.启动system、demo,再查看服务列表
四、启动gateway
启动类: org.jeecg.JeecgGatewayApplication
查看在线接口文档: http://127.0.0.1:9999/doc.html
五、启动前端
前端项目找到文件public/index.html,修改后台服务为 gateway地址
修改地址:window._CONFIG['domianURL'] = 'http://127.0.0.1:9999,其中端口号 9999和gateway的端口保持一致
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2017-09-18 JEECG 3.7.1 版本发布,企业级JAVA快速开发平台