<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JeeSite Spring Cloud分布式系統(tǒng)套件的整合

          聯(lián)合創(chuàng)作 · 2023-09-20 04:12

          引言

          JeeSite Cloud 具備 JeeSite 4.x 的所有功能,是在 JeeSite 4.x 基礎(chǔ)之上,完成的 Spring Cloud 分布式系統(tǒng)套件的整合。它利用 JeeSite 4.x 的開發(fā)便利性巧妙地簡(jiǎn)化了分布式系統(tǒng)開發(fā)。

          JeeSite Cloud 并沒有重復(fù)制造輪子,它只是將目前比較成熟的、經(jīng)得起實(shí)際考驗(yàn)的服務(wù)框架組合起來,通過 Spring Boot 風(fēng)格進(jìn)行再封裝屏蔽掉了復(fù)雜的配置和實(shí)現(xiàn)原理,最終給開發(fā)者留出了一套簡(jiǎn)單易懂、易部署和易維護(hù)的分布式系統(tǒng)開發(fā)工具包。

          集成阿里優(yōu)秀組件 Nacos 服務(wù)治理與配置中心、集成 Sentinel 流量衛(wèi)兵;集成 Zipkin 鏈路追蹤;集成 LCN 分布式事務(wù)等,詳見技術(shù)選型章節(jié)。

          特點(diǎn):用經(jīng)典開發(fā)模式,開發(fā)分布式應(yīng)用,兩個(gè)字【簡(jiǎn)單】,一個(gè)字【快】。

          源碼倉庫地址:https://gitee.com/thinkgem/jeesite4-cloud

          優(yōu)勢(shì)(只寫別人沒有的)

          1. 在 JeeSite 單應(yīng)用基礎(chǔ)之上,完成的 Cloud 功能,使用經(jīng)典開發(fā)模式,就像開發(fā)單應(yīng)用一樣開發(fā)分布式應(yīng)用
          2. 它提供了微服務(wù)模塊的代碼生成工具,快速生成開發(fā)微服務(wù)功能,包含微服務(wù)的發(fā)布和調(diào)用接口
          3. 我們將 api 和 client 合體為一個(gè)工程,自動(dòng)適應(yīng)自己調(diào)用自己 client 的影響,簡(jiǎn)化工程數(shù)量
          4. 解決 Feign 接口不能多重繼承問題,如一些通用操作(增刪改查)微服務(wù)接口基類實(shí)現(xiàn),這些都不用自己寫了
          5. 統(tǒng)一的授權(quán)認(rèn)證、基礎(chǔ)數(shù)據(jù)微服務(wù),都已經(jīng)提供查詢 client 接口,其他微服務(wù)應(yīng)用模塊中可直接獲取用戶、組織、權(quán)限、字典等基礎(chǔ)數(shù)據(jù)。微服務(wù)之間調(diào)用中,出現(xiàn)的會(huì)話及緩存的一致性統(tǒng)一得到解決。
          6. 如 UserUtils、EmpUtils、EmpUserService、OfficeService 等等眾多的基礎(chǔ)服務(wù)工具類,都可以直接從基礎(chǔ)數(shù)據(jù)的微服務(wù)中獲取數(shù)據(jù),你不必考慮跨 web 服務(wù)的數(shù)據(jù)交互,我們已經(jīng)幫你做了。
          7. 微服務(wù)組件 Nacos、Sentinel、Zipkin 提供源碼方式啟動(dòng)部署,方便開發(fā)調(diào)試。
          8. 寫一個(gè)別人有的,使用柔性事務(wù)解決,跨 web 服務(wù)的情況,入侵性非常小哦。
          9. 集成工作流,提供BPM引擎獨(dú)立的服務(wù),客戶端只需調(diào)用API,無需加載復(fù)雜流程引擎。
          10. 其它優(yōu)勢(shì)(按 Ctrl + Shift 點(diǎn)擊鏈接):http://jeesite.com/docs/feature/

          技術(shù)選型

          • 分布式系統(tǒng)套件版本:Spring Cloud 2020.0.4 + Alibaba 2021.1
          • 服務(wù)治理注冊(cè)與發(fā)現(xiàn):Spring Cloud Eureka / Consul / Nacos 2.0
          • 分布式統(tǒng)一配置中心:Spring Cloud Config / Nacos 2.0
          • 網(wǎng)關(guān)路由代理調(diào)用:Spring Cloud Gateway (動(dòng)態(tài)網(wǎng)關(guān))
          • 聲明式服務(wù)調(diào)用:Spring Cloud OpenFeign
          • 客戶端負(fù)載均衡:Spring Cloud LoadBalancer
          • 阿里流量防衛(wèi)兵:Sentinel 1.8 (限流、熔斷降級(jí)、負(fù)載保護(hù))
          • 分布式事務(wù)框架:Seata 1.4 / TX-LCN 5.0 (可選組件)
          • 分布式鏈路追蹤:Zipkin 2.23 (可選組件)
          • 工作流引擎框架:Flowable 6.6 (可選組件)

          子項(xiàng)目介紹

          • 服務(wù)注冊(cè):jeesite-cloud-eureka : http://127.0.0.1:8970
          • 配置中心:jeesite-cloud-config : http://127.0.0.1:8971/project/default
          • 服務(wù)注冊(cè)和配置中心 Nacos 版本(推薦) :http://127.0.0.1:8848/nacos/index.html
          • 網(wǎng)關(guān)路由:jeesite-cloud-gateway : http://127.0.0.1:8980/js/a/login
          • 核心模塊(統(tǒng)一授權(quán)認(rèn)證服務(wù)、平臺(tái)基礎(chǔ)數(shù)據(jù)服務(wù)):
            • 核心主項(xiàng)目:jeesite-cloud-module-core : http://127.0.0.1:8981/js
            • 客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-core-client
          • 測(cè)試模塊1(單表增刪改查示例):
            • 模塊1主項(xiàng)目:jeesite-cloud-module-test1 : http://127.0.0.1:8982/js
            • 模塊1客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-test1-client
          • 測(cè)試模塊2(樹表增刪改查示例):
            • 模塊2主項(xiàng)目:jeesite-cloud-module-test2 : http://127.0.0.1:8983/js
            • 模塊2客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-test2-client
          • 測(cè)試模塊3(代碼生成的模塊和代碼生成的增刪改查,該模塊完全沒有手寫,全部為生成的):
            • 模塊3主項(xiàng)目:jeesite-cloud-module-test3 : http://127.0.0.1:8985/js
            • 模塊3客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-test3-client
          • 業(yè)務(wù)流程基礎(chǔ)服務(wù)(流程引擎服務(wù),客戶端只需調(diào)用接口,無需加載引擎邏輯):
            • 流程主項(xiàng)目:jeesite-cloud-module-bpm : http://127.0.0.1:8990
            • 客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-bpm-client
          • 分布式事務(wù) Seata 服務(wù)(推薦):
            • 服務(wù)主項(xiàng)目:jeesite-cloud-module-seata : http://127.0.0.1:8091
            • 客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-seata-client
          • 分布式事務(wù) LCN 服務(wù):
            • 服務(wù)主項(xiàng)目:jeesite-cloud-module-txlcn : http://127.0.0.1:7970
            • 客戶端項(xiàng)目(提供其它模塊調(diào)用):jeesite-cloud-module-txlcn-client
          • 熔斷限流:jeesite-cloud-sentinel : http://127.0.0.1:9311
          • 鏈路追蹤:jeesite-cloud-zipkin : http://127.0.0.1:9411
          • 解釋:主項(xiàng)目為服務(wù)提供者、客戶端項(xiàng)目為服務(wù)消費(fèi)者

          快速運(yùn)行

          初始化數(shù)據(jù)庫

          JeeSite Cloud 版本的數(shù)據(jù)庫與 JeeSite 單機(jī)版數(shù)據(jù)庫相同,你可以 下載最新的mysql腳本 或者使用 init-data.bat(sh) 命令完成初始化(支持多種數(shù)據(jù)庫)。

          安裝 Redis

          Redis 是一個(gè)緩存數(shù)據(jù)庫,主要用來集中式管理共享會(huì)話和系統(tǒng)緩存的,如果你已安裝 Redis,可以忽略這個(gè)步驟。

          由于 Windows 版本的 Redis 安裝不太方便,所以我們提供了該版本的安裝文件和安裝腳本。

          下載地址:https://gitee.com/thinkgem/jeesite4-cloud/attach_files 找到 Redis-x64-4.0.2.2.zip 下載文件。

          解壓 Redis-x64-4.0.2.2.zip 壓縮包,運(yùn)行 service-install.bat 安裝 Windows 系統(tǒng)服務(wù)。

          默認(rèn)地址:127.0.0.1;默認(rèn)端口:6379;默認(rèn)密碼:1234,可根據(jù)自己需要修改 conf 文件。

          啟動(dòng) Nacos 服務(wù)

          Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。 Nacos 提供了一組簡(jiǎn)單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。 Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。

          如果使用 Nacos 就不用部署 jeesite-cloud-eureka  jeesite-cloud-config 了。

          JeeSite Cloud 提供了 2 種部署方式,你可以下載 jar 也可以 src 方式運(yùn)行:

          jar 方式:

          1. 下載地址:https://github.com/alibaba/nacos/releases/download/2.0.3/nacos-server-2.0.3.zip
          2. 解壓 nacos-server-2.0.3.zip 壓縮包,運(yùn)行 /bin/startup.cmd(sh) 啟動(dòng)服務(wù)。

          src 方式:

          1. 在 Eclipse 或 IDEA 中 找到 jeesite-cloud-nacos 項(xiàng)目。
          2. 運(yùn)行 NacosApplication 類的 main 方法,即可啟動(dòng)服務(wù)。

          配置 mysql 存儲(chǔ):

          1. 默認(rèn)情況 Nacos 采用 Derby 數(shù)據(jù)庫,你可以將數(shù)據(jù)庫切換到 MySQL 下。
          2. 找到 /nacos/src/main/resources/config/nacos-mysql.sql 文件導(dǎo)入數(shù)據(jù)表。
          3. 找到 Nacos 的配置文件(application.properties 或 application.yml)如下:
          spring.datasource.platform: mysql
          
          ### Count of DB:
          db.num: 1
          
          ### Connect URL of DB:
          db.url.0: jdbc:mysql://127.0.0.1:3306/nacos?useSSL=false&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC
          db.user: root
          db.password: 123456
          
          # 如果是 application.properties 文件,將 key 后的冒號(hào)換為等號(hào)即可。
           

          啟動(dòng)完成后:

          瀏覽器訪問:http://127.0.0.1:8848/nacos/index.html 用戶名密碼:nacos

          登錄后,進(jìn)入菜單 配置管理 -> 配置列表 點(diǎn)擊 導(dǎo)入配置 按鈕,選擇 /config/src/main/resources/jeesite-cloud-43.zip 上傳文件。

          然后編輯 Data Id 為 application.yml 的文件里的 JDBC 和 Redis 信息。

          啟動(dòng) Sentinel 服務(wù)

          隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來越重要。 Sentinel 是面向分布式服務(wù)架構(gòu)的流量控制組件,主要以流量為切入點(diǎn), 從流量控制、熔斷降級(jí)、系統(tǒng)自適應(yīng)保護(hù)等多個(gè)維度來幫助您保障微服務(wù)的穩(wěn)定性。

          1. 在 Eclipse 或 IDEA 中 找到 jeesite-cloud-sentinel 項(xiàng)目。
          2. 運(yùn)行 SentinelApplication 類的 main 方法,即可啟動(dòng)服務(wù)。

          瀏覽器訪問:http://127.0.0.1:9311 用戶名密碼:sentinel

          啟動(dòng) Zipkin 服務(wù)

          Zipkin 是一個(gè)開放源代碼分布式的跟蹤系統(tǒng),每個(gè)服務(wù)向 Zipkin 報(bào)告計(jì)時(shí)數(shù)據(jù),Zipkin會(huì)根據(jù)調(diào)用關(guān)系通過 Zipkin UI 生成依賴關(guān)系圖。

          1. 在 Eclipse 或 IDEA 中 找到 jeesite-cloud-zipkin 項(xiàng)目。
          2. 運(yùn)行 ZipkinApplication 類的 main 方法,即可啟動(dòng)服務(wù)。

          瀏覽器訪問:http://127.0.0.1:9411

          啟動(dòng)微服務(wù)項(xiàng)目

          • 在每個(gè)微服務(wù)中可以找的 config/bootstrap.yml 配置服務(wù)注冊(cè)和配置中心地址。
          • 按順序運(yùn)行以下啟動(dòng)類的main方法:(因?yàn)榉?wù)直接有依賴,請(qǐng)啟動(dòng)完成一個(gè)再啟下一個(gè))
            • /jeesite-cloud-gateway/../GatewayApplication.java
            • /jeesite-cloud-module-core/../CoreApplication.java
            • /jeesite-cloud-module-test1/../Test1Application.java
            • /jeesite-cloud-module-test2/../Test2Application.java
          • 以上都啟動(dòng)成功后,瀏覽器訪問網(wǎng)關(guān)項(xiàng)目地址即可:
            • 訪問地址:http://127.0.0.1:8980/js 用戶名密碼: system admin
            • 若訪問報(bào)錯(cuò),請(qǐng)?jiān)俚却粫?huì),可能服務(wù)未完全啟動(dòng)完成

          調(diào)用實(shí)例演示

          網(wǎng)關(guān)代理模塊調(diào)用

          模塊之間互相調(diào)用

          • test2 模塊調(diào)用 test1 模塊(單表):http://127.0.0.1:8980/js/a/test2/testData/list
            • 服務(wù)消費(fèi)者位置:/jeesite-cloud-module-test2/../web/TestData2Controller.java
            • 服務(wù)提供者位置:/jeesite-cloud-module-test1/../service/TestDataService.java
          • test1 模塊調(diào)用 test2 模塊(樹表):http://127.0.0.1:8980/js/a/test1/testTree/list
            • 服務(wù)消費(fèi)者位置:/jeesite-cloud-module-test1/../web/TestTree1Controller.java
            • 服務(wù)提供者位置:/jeesite-cloud-module-test2/../service/TestTreeService.java

          新增微服務(wù)工程

          1、新建模塊

          1)進(jìn)入菜單:系統(tǒng)管理 -> 系統(tǒng)設(shè)置 -> 模塊管理,新建一個(gè)模塊,填寫:

          • 模塊名稱:測(cè)試模塊
          • 模塊編碼:test3
          • 生成基礎(chǔ)路徑:填寫新建模塊的根目錄
          • 代碼生成模板:生成微服務(wù)模塊代碼(Cloud)

          點(diǎn)擊 “保存并生成代碼” 按鈕,即可完成微服務(wù)模塊的工程代碼新建。

          2)新建微服務(wù)功能,進(jìn)入代碼生成器功能菜單,生成時(shí)選擇 Cloud 的代碼生成模板即可。

          v4.2.2之前版本:

          由于之前版本沒有微服務(wù)模塊生成器功能,所以需要參考其它模塊。舉例新增一個(gè)微服務(wù)模塊模塊叫 test3,該模塊的所有映射地址均在 ${adminPath}/test3/** 這個(gè)路徑下,該模塊可以參照 test1 進(jìn)行,步驟如下:

          拷貝 jeesite-cloud-module-test1 項(xiàng)目為 jeesite-cloud-module-test3 文件夾:

          1)修改 pom.xml 中的應(yīng)用名:

          <artifactId>jeesite-cloud-module-test1</artifactId>
          替換為:
          <artifactId>jeesite-cloud-module-test3</artifactId>
           
          <artifactId>jeesite-cloud-module-test1-client</artifactId>
          替換為:
          <artifactId>jeesite-cloud-module-test3-client</artifactId>
           

          2)修改 application.yml 中的應(yīng)用名:

          spring:
            application:
              name: jeesite-cloud-module-test3
           

          3)修改 *Client.java 里的應(yīng)用名:

          service.test1 替換為 service.test3
           

          4)修改 *Controller.java 里的映射路徑:

          ${adminPath}/test1 替換為 ${adminPath}/test3
           

          2、配置服務(wù)參數(shù)

          在 jeesite-config 或 Nacos 的微服務(wù)配置文件 application.yml 中,新增微服務(wù):

          # 微服務(wù)列表
          service:
            test3:
              name: jeesite-cloud-module-test3
              path: ${server.servlet.context-path}
           

          3、配置網(wǎng)關(guān)映射

          在 jeesite-cloud-gateway 配置文件中新增網(wǎng)關(guān)路由

          spring:
            cloud:
              gateway:
                routes:
                  # 測(cè)試模塊3
                  - id: test3
                    uri: lb://jeesite-cloud-module-test3/js/a/test3
                    predicates:
                      - Path=/js/a/test3/**
                  # 測(cè)試模塊3(系統(tǒng)監(jiān)控)
                  - id: test3_def
                    uri: lb://jeesite-cloud-module-test3/js/a/jeesite-cloud-module-test3
                    predicates:
                      - Path=/js/a/jeesite-cloud-module-test3/**
           

          注意:新增的配置請(qǐng)放到 core 基礎(chǔ)權(quán)限模塊之上。

          微服務(wù)增刪改查

          進(jìn)入 “代碼生成器” 菜單,同單機(jī)版使用方法,只需在生成代碼時(shí),選擇 Cloud 版本的生成模板即可。

          授權(quán)協(xié)議聲明

          1. 基于 Apache License Version 2.0 協(xié)議發(fā)布,但必須遵守以下補(bǔ)充條款。
          2. 不得將本軟件應(yīng)用于危害國家安全、榮譽(yù)和利益的行為,不能以任何形式用于非法為目的的行為。
          3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)需要帶有原來代碼中的協(xié)議、版權(quán)聲明和其他原作者 規(guī)定需要包含的說明(請(qǐng)尊重原作者的著作權(quán),不要?jiǎng)h除或修改文件中的Copyright@author信息) 更不要,全局替換源代碼中的 jeesite 或 ThinkGem 等字樣,否則你將違反本協(xié)議條款承擔(dān)責(zé)任。
          4. 您若套用本軟件的一些代碼或功能參考,請(qǐng)保留源文件中的版權(quán)和作者,需要在您的軟件介紹明顯位置 說明出處,舉例:本軟件基于 JeeSite 快速開發(fā)平臺(tái),并附帶鏈接:http://jeesite.com
          5. 任何基于本軟件而產(chǎn)生的一切法律糾紛和責(zé)任,均于我司無關(guān)。
          6. 如果你對(duì)本軟件有改進(jìn),希望可以貢獻(xiàn)給我們,共同進(jìn)步。
          7. 本項(xiàng)目已申請(qǐng)軟件著作權(quán),請(qǐng)尊重開源,感謝閱讀。
          8. 本項(xiàng)目僅用于學(xué)習(xí)和交流,不能用到正式環(huán)境。

          獲得技術(shù)服務(wù)支持:http://s.jeesite.com

          • 我們深知,沒有資金的支撐就很難得到發(fā)展,特別是一個(gè)好的產(chǎn)品,如果 JeeSite 幫助了您,請(qǐng)為我們點(diǎn)贊。支持我們,您可以得到一些回報(bào),有了這些我們會(huì)把開源事業(yè)做的更好,回報(bào)社區(qū)和社會(huì),請(qǐng)給我們一些動(dòng)力吧,在此非常感謝已支持我們的朋友!

          技術(shù)交流方式

          瀏覽 18
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色欲综合一区二区 | 亚洲精品人妻系列 | 国产亲妺妺乱A片 | 欧美成人免费一级人片100 | np无码视频 |