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项目作为微服务启动,需要添加微服务依赖
<!-- nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 如果走配置中心需要添加此依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!-- 服务降级 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
3.在resource文件夹下新建bootstrap.yml,内容如下:
spring: profiles: active: dev application: name: jeecg-system cloud: nacos: discovery: server-addr: 127.0.0.1:8848 feign: sentinel: 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(如果没有),内容如下:
spring: profiles: active: dev application: name: jeecg-demo cloud: nacos: discovery: server-addr: 127.0.0.1:8848 feign: sentinel: enabled: true
3.新增配置文件application-dev.yml(如果没有),内容可以直接复制system下的同名文件,需要修改端口号
4.在org.jeecg包下新建启动类(如果没有)
package org.jeecg; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.openfeign.EnableFeignClients; import java.net.UnknownHostException; @SpringBootApplication @EnableDiscoveryClient @EnableFeignClients public class JeecgDemoApplication { public static void main(String[] args) throws UnknownHostException { SpringApplication.run(JeecgDemoApplication.class, args); } }
上述步骤完成 即可启动nacos 运行每个模块的启动类 测试微服务。
三、启动Nacos
微服务集成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的端口保持一致
相关推荐
【精品】从单体到微服务再到中台战略的历程-19.9.pdf
jeecg小架构,适合快速响应开发 jeecg小架构,适合快速响应开发
从单体到微服务再到中台战略的历程.pdf
【精品】潘志伟-从单体到微服务再到中台战略的历程-IAS2019演讲.pdf
单体到微服务改造第1章 项目概述1.1 房产销售平台首页轮播、房源列表、房产列表、分页、热门房产(点击率)、按类型排序、评价、登录、收藏、评论、添加房产、搜索房
从单体到微服务再到中台战略的历程.pptx
pdf文件,43页,潘志伟-从单体到微服务再到中台战略的历程,精品一级
从单体到微服务再到中台战略的历程-IAS2019演讲.pdf
单体应用就是将应用程序的所有功能都打包成一个独立的单元,最终以一个WAR包或JAR包存在,没有外部的任何依赖,里面包含DAO、Service、UI等所有的逻辑。单体应用有以下优点:便于开发:只需借助IDE的开发、调试功能...
随着业务的发展,单体架构变为微服务架构,并且系统规模也变得越来越大,各微服务间的调用关系也变得越来越复杂。在微服务的应用中,一个由客户端发起的请求在后端系统中会经过多个不同的微服务调用来协同产生最后的...
与《凤凰架构》中单体、微服务、无服务的后端工程搭配的前端示例代-fenix-bookstore-frontend
基于Java的微服务实践,单体微服务创建、Docker部署、Dubbo微服务实践等.zip 基于Java的微服务实践。包括Spring Boot开发Web应用、Sping Boot的Docker部署、Dubbo微服务实践等。 示例代码 spring-boot-jpa-...
华为架构师8年经验谈:从单体架构到微服务的服务化演进之路 本次分享的大纲如下: 传统应用开发面临的挑战 服务化实践 服务化不是银弹 服务化架构的演进方向
2016年中国软件峰会,华为讲师李林峰的内容,此人是netty和nio方面的大牛,这篇文章主要对分布式微服务进行了讨论,非常值得一看!
华为PaaS平台架构师李林峰在本次演讲中呈现的分享主题是《基于微服务架构改造单体架构的实践总结》。
Java深入微服务原理改造房产销售平台 Java 微服务 spring sping boot
最终版_潘志伟_0到3000万用户微服务之旅.pdf