十分鍾搞定JeecgBoot 單體升級微服務!


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

微服務集成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的端口保持一致


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM