<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>

          springboot第54集:思維導(dǎo)圖后端知識點(diǎn)微服務(wù)分布式架構(gòu)周刊

          共 40060字,需瀏覽 81分鐘

           ·

          2024-04-10 18:32

                
                BigDecimal num1 = new BigDecimal('0.1');
          BigDecimal num2 = new BigDecimal('0.2');
          BigDecimal sum = num1.add(num2);
          BigDecimal product = num1.multiply(num2);

          mysql: innodb和myisam有什么區(qū)別?

          InnoDB和Myisam是MySQL數(shù)據(jù)庫中兩種非常流行的存儲引擎,主要存在四大區(qū)別:

          1. 事務(wù)支持能力不同:InnoDB支持ACID事務(wù)。所以可以處理高級別的數(shù)據(jù)完整性和可靠性。而MyISAM不支持事務(wù),所以MyISAM在處理需要高度數(shù)據(jù)完整性的操作時不如InnoDB可靠。
          2. 鎖定機(jī)制不同:InnoDB使用行級別鎖定,所以在并發(fā)讀寫操作時性能更好,尤其是對于在線事務(wù)處理類型的應(yīng)用,比如并發(fā)量大的實(shí)時系統(tǒng)。而MyISAM使用表級鎖定。這可能在高并發(fā)的情況下導(dǎo)致性能問題,因?yàn)楫?dāng)一條記錄被修改時,整個表都會被鎖定。
          3. 數(shù)據(jù)完整性和恢復(fù)能力不同:InnoDB提供了外鍵約束來維護(hù)數(shù)據(jù)完整性,支持崩潰后的自動恢復(fù)。但是MyISAM不支持外鍵,并且在系統(tǒng)崩潰后恢復(fù)數(shù)據(jù)也更加困難。
          4. 存儲結(jié)構(gòu),InnoDB是把數(shù)據(jù)存儲在表空間中的,所以可以更好地處理大型數(shù)據(jù)庫。而MyISAM是把數(shù)據(jù)存儲在獨(dú)立的文件里,每個表一個文件,適合讀密集型的應(yīng)用。

          總的來說,InnoDB是一個更優(yōu)秀的存儲引擎,提供了事務(wù)支持,行級鎖定和數(shù)據(jù)完整性,非常適合需要高并發(fā)和高可靠性的系統(tǒng)。

          mysql什么是索引,底層原理是什么?

          索引是數(shù)據(jù)庫重要的概念之一,用于快速定位和訪問數(shù)據(jù)表中的數(shù)據(jù)。它類似于書籍的目錄,可以加速數(shù)據(jù)的檢索過程,不需要掃描整個數(shù)據(jù)表,索引基于一個或多個列構(gòu)建,能提高查詢數(shù)據(jù)的效率。

          對于業(yè)務(wù)系統(tǒng)的查詢效率提升有非常大的幫助:

                
                -- customers 表的 customer_id 和 orders 表的 customer_id 都有索引
          SELECT customers.customer_id, orders.order_date
          FROM customers
          JOIN orders ON customers.customer_id = orders.customer_id
          WHERE customers.customer_id = 101;

          對于業(yè)務(wù)系統(tǒng)的查詢效率提升有非常大的幫助,復(fù)雜的查詢,比如帶有JOIN或WHERE子句的查詢,索引可以顯著提高查詢速度。可以優(yōu)化UPDATE和DELETE的操作。

                
                UPDATE customers
          SET address = '新地址'
          WHERE customer_id = 123;

          因?yàn)檫@些增刪改操作都需要先查找目標(biāo)數(shù)據(jù)再進(jìn)行操作。

          如何實(shí)現(xiàn)索引:有兩種重要的實(shí)現(xiàn)方式。B樹和B+樹。B樹是一個平衡的多路搜索樹,它的所有葉節(jié)點(diǎn)都在同一層。每個節(jié)點(diǎn)包含多個鍵(key),和指向子節(jié)點(diǎn)的指針,B樹保證了每個節(jié)點(diǎn)的鍵和子節(jié)點(diǎn)樹,在預(yù)定范圍內(nèi),B+樹是B樹的變種,所有的數(shù)據(jù)記錄都存儲在葉子節(jié)點(diǎn),內(nèi)部節(jié)點(diǎn)僅存儲鍵值,也就是非葉子節(jié)點(diǎn)不存儲實(shí)際數(shù)據(jù)。僅存儲鍵值。這些鍵值作為分隔值,指導(dǎo)搜索操作向下走向正確的分支,而葉節(jié)點(diǎn)之間以指針相連,形成一個鏈表。相比于B樹,B+樹的查詢效率更加穩(wěn)定,因?yàn)樗械牟樵兌家竭_(dá)葉子節(jié)點(diǎn),由于葉子節(jié)點(diǎn)形成鏈表,B+樹也特別適合于順序遍歷操作。

          事務(wù)的四大特性是什么

          MySQL事務(wù)的四大特性指的就是:原子性,一致性,隔離性,持久性。

          原子性:指的就是事務(wù)被視為不可分割的最小單元,一個事務(wù)的所有操作要么全部提交成功,要么全部失敗回滾?;貪L可以用回滾日志來實(shí)現(xiàn),回滾日志記錄著事務(wù)所執(zhí)行的修改操作。

          隔離性指的就是一個事務(wù)所做的修改在最終提交一起,對其它事務(wù)是不可見的。

          一致性指的就是數(shù)據(jù)庫的數(shù)據(jù)在事務(wù)執(zhí)行前后都保持一致性狀態(tài)。在一致性狀態(tài)下,所有事務(wù)對同一個數(shù)據(jù)的讀取結(jié)果都是相同的。

          一旦事務(wù)提交,則其所做的修改將會永遠(yuǎn)保存到數(shù)據(jù)庫中。即使系統(tǒng)發(fā)生崩潰,事務(wù)執(zhí)行的結(jié)果也不能丟失。

          系統(tǒng)發(fā)生崩潰可以用重做日志進(jìn)行恢復(fù),從而實(shí)現(xiàn)持久性。與回滾日志記錄數(shù)據(jù)的邏輯修改不同,重做日志記錄的是數(shù)據(jù)頁的物理修改。

          事務(wù)的ACID特性,不是很好理解:原子性,一致性,隔離性,持久性。

          只有滿足一致性,事務(wù)的執(zhí)行結(jié)果才是正確的。在無并發(fā)的情況下,事務(wù)串行執(zhí)行,隔離性一定能夠滿足。此時只要能滿足原子性,就一定能滿足一致性。在并發(fā)的情況下,多個事務(wù)并行執(zhí)行,事務(wù)不僅要滿足原子性,還需要滿足隔離性,才能滿足一致性。事務(wù)滿足持久化是為了能應(yīng)對系統(tǒng)崩潰的情況。

          什么是面向?qū)ο?/span>

          面向?qū)ο笫且环N思想,世間萬物都可以看做一個對象,Java是一個支持并發(fā)、基于類和面向?qū)ο蟮挠嬎銠C(jī)高級編程語言。面向?qū)ο筌浖_發(fā)具有的優(yōu)點(diǎn)有:1. 代碼開發(fā)模塊化,更易維護(hù)和修改;2. 代碼復(fù)用性強(qiáng);3. 增加代碼的可讀性。

          面向?qū)ο笥腥筇卣鳎悍庋b,繼承,多態(tài)。

          封裝就是給對象提供了隱藏內(nèi)部特性和行為的能力;對象提供一些能被其他對象訪問的方法,來改變它內(nèi)部的數(shù)據(jù);在Java當(dāng)中有4種修飾符:default,public,private,protected。每一種修飾符給其他的位于同一個包或者不同包下面對象,賦予了不同的訪問權(quán)限。

          default: 同包中;public:都可以;protected:不同包,不是繼承子類;private:同類中成員

          繼承就是給對象提供了以基類獲取字段和方法的能力。繼承提供了代碼的重用行,也可以在不修改類的情況下給現(xiàn)存的類添加新特性。

          多態(tài)是編程語言給不同的底層數(shù)據(jù)類型做相同的接口展示的一種能力。一個多態(tài)類型上的操作,可以應(yīng)用到其他類型的值上面。

          多態(tài)中,父類作為形參的方法和子類作為形參的方法都是一樣的。形參父類類型可以接收子類對象。這是多態(tài)的特性。

          DDD到底是什么

          三層架構(gòu):模型,視圖,控制器

          1. 業(yè)務(wù)接口層:Module API
          2. 業(yè)務(wù)邏輯層:VO,Service
          3. 數(shù)據(jù)訪問層:PO,MapperXML,Dao

          DDD四層架構(gòu):(全稱:領(lǐng)域驅(qū)動設(shè)計,所謂的領(lǐng)域就是特定業(yè)務(wù)領(lǐng)域的問題和邏輯,驅(qū)動指的就是以業(yè)務(wù)領(lǐng)域的復(fù)雜性為核心進(jìn)行軟件設(shè)計和開發(fā),和它對比的就是傳統(tǒng)的MVC架構(gòu)),拆分為四層就是表示層,應(yīng)用層,領(lǐng)域?qū)雍突A(chǔ)設(shè)施層。

          表示層負(fù)責(zé)與用戶交互(處理用戶請求)

                
                // 表示層
          // Web 控制器:處理HTTP請求
          @RestController
          public class ArticleController {
           private ArticleApplicationService articleApplicationService;

           @PostMapping('/articles')
           public Article createArticle(@RequestBody ArticleDto articleDto) {
            return articleApplicationService.createArticle(articleDto.getTitle(), articleDto.getContent());
           }
          }

          應(yīng)用層負(fù)責(zé)業(yè)務(wù)邏輯的執(zhí)行,但它不包含業(yè)務(wù)規(guī)則或知識,只協(xié)調(diào)我們接下來的領(lǐng)域?qū)觼韺?shí)現(xiàn)業(yè)務(wù)用例

                
                // 領(lǐng)域?qū)嶓w:文章
          public class Article {
           private Long id; // 值對象
           private String title;
           private String content;

           // 構(gòu)造函數(shù),getter和setter省略
          }

          // 領(lǐng)域服務(wù):文章服務(wù)
          public class ArticleService {
           public Article createArticle(String title, String content) {
            // 領(lǐng)域事件:創(chuàng)建文章的業(yè)務(wù)邏輯
            return new Article(title, content);
           }
          }

          而領(lǐng)域?qū)泳桶瑯I(yè)務(wù)邏輯的核心部分,是DDD的關(guān)鍵所在。包括實(shí)體(Entity)、值對象(Value Object)、領(lǐng)域服務(wù)(Domain Service)、領(lǐng)域事件(Domain Event)等。這一層封裝了業(yè)務(wù)邏輯,定義了業(yè)務(wù)規(guī)則和業(yè)務(wù)行為。

          基礎(chǔ)設(shè)施層:主要用來連接數(shù)據(jù)庫和各種中間件

                
                // 數(shù)據(jù)訪問接口:文章倉儲
          public interface ArticleRepository {
           Article save(Article article);
           Article findById(Long id);
          }

          // 數(shù)據(jù)訪問實(shí)現(xiàn):基于某種數(shù)據(jù)庫的文章倉儲實(shí)現(xiàn)
          public class SqlArticleRepository implements ArticleRepository {
           // 實(shí)現(xiàn)數(shù)據(jù)庫操作的細(xì)節(jié)
          }

          DDD的特點(diǎn)是強(qiáng)調(diào)業(yè)務(wù)邏輯的重要性,也就是領(lǐng)域?qū)舆壿?,更加專注業(yè)務(wù),減少溝通成本

          1. 用戶接口層:API,DTO
          2. 應(yīng)用層: Application Service
          3. 領(lǐng)域?qū)樱篗apperXM Repository Aggregate(Domain Service Entity ValueObject)
          4. 基礎(chǔ)層:Repository AOP (緩存 總線 網(wǎng)關(guān) 第三方工具 文件 其它)
          97b3896fbace7c71b9b510a2da6c5115.webpimage.png 3990137b33a9abf60f9cc7cbf50bfb59.webpimage.png 73ab45256d1386c915cfa313c84daf21.webpimage.png a5ba13559ca51478c03a83293e3026c9.webpimage.png

          Apache Kafka UI 是一個免費(fèi)的開源 Web UI,用于監(jiān)控和管理 Apache Kafka 集群,可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情況,支持多集群管理、性能監(jiān)控、訪問控制等功能。

          1. termQuery("cName.keyword", xxxBO.getCName()):
          • 這是一個精確查詢(Term Query),用于匹配 cName.keyword 字段與 depotInfoBO.getCName() 的值相等的文檔。
          matchPhraseQuery("mobile", xxxBO.getMobile()):
          • 這是一個短語匹配查詢(Match Phrase Query),用于匹配 mobile 字段包含與 xxxBO.getMobile() 相等的短語的文檔。
          termsQuery("xxxId.keyword", xxxBO.getDepotIds()):
          • 這是一個多值查詢(Terms Query),用于匹配 xxxId.keyword 字段包含在 xxxBO.getDepotIds() 列表中的文檔。
                
                boolQueryBuilder.must(QueryBuilders
                      .wildcardQuery("cName.keyword""*" + depotInfoBO.getCName() + "*"));

          Netty是一個用于構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的Java框架。Netty提供了一個抽象的Channel接口,它表示一個可以進(jìn)行I/O操作的通道,例如網(wǎng)絡(luò)套接字。

          Netty的Channel接口是一個抽象的概念,它提供了統(tǒng)一的API,使得可以在不同的傳輸協(xié)議(如TCP、UDP等)上進(jìn)行操作。在Netty中,你可以通過不同的Channel實(shí)現(xiàn)來處理不同類型的網(wǎng)絡(luò)通信。

          在Netty中,常見的一些Channel實(shí)現(xiàn)包括:

          1. NioSocketChannel: 基于Java NIO的Socket通道。
          2. NioServerSocketChannel: 基于Java NIO的ServerSocket通道。
          3. OioSocketChannel: 基于傳統(tǒng)的阻塞I/O的Socket通道。
          4. OioServerSocketChannel: 基于傳統(tǒng)的阻塞I/O的ServerSocket通道。

          連接鑒權(quán)

          71770962b3aaae6ed96929d0bbf023af.webpimage.png

          連接的客戶端信息在Zookeeper創(chuàng)建的臨時節(jié)點(diǎn)

          7f43596bdb97a8694560ba508d0536ee.webpimage.png

          自定義發(fā)送心跳包的內(nèi)容.

          d4b1a32d2fade3d3f774fee7868eb173.webpimage.png

          自定義Netty的channel

          b1eb003404168596a07a39bc6e9832e0.webpimage.png

          客戶端連接的clientId和channelId的信息在Redis存儲的

          e32932843f2a3c1af8885b5b53275a16.webpimage.png f00635f6bb81e7809582c00d5726ab79.webpimage.png 35d1ba626d446b81d9b43772e7752240.webpimage.png 客戶端請求Netty服務(wù)器地址 02f0fd799d5c9365723d197ec7987a18.webpimage.png 定義的Kafka的topic ed0da07ed338da0b04f4ecad61b064b6.webpimage.png 基于Netty的websocket消息推送服務(wù)器 727ffa46a3914a45237b672394ff6b8e.webpimage.png a529a6f80876f16e5d84e181f681067b.webpimage.png

          發(fā)送心跳間隔以及服務(wù)超時剔除

          27081b8ae409732a188810259ec24066.webpimage.png

          消息服務(wù)系統(tǒng)架構(gòu)圖

          84b26fa54a54b389c9419465481b765e.webpimage.png Zookeeper注冊的Netty服務(wù)器的臨時節(jié)點(diǎn) a0239e8510540189d8495abfa8cf6206.webpimage.png b0a0590d035bb42a8b13943e0d5cca45.webpimage.png b0a0590d035bb42a8b13943e0d5cca45.webpimage.png 1c4bd0f485ffb402dc888cc383d23135.webpimage.png 68ada087034cd1a4b4f2379d3cbf800b.webpimage.png
                
                sender.addCallback(// 發(fā)送成功的回調(diào)
                  result -> log.info("Send success:offset({}),partition({}),topic({})",// 打印成功消息 發(fā)送成功:偏移量({}), 分區(qū)({}), 主題({})
                          result.getRecordMetadata().offset(),
                          result.getRecordMetadata().partition(),
                          result.getRecordMetadata().topic()),
                  ex -> log.error("Send fail:{}", ex.getMessage()));// 發(fā)送失敗的回調(diào)

          Pipeline 是 Netty 中用于處理和攔截事件的容器。在 Netty 中,所有的處理邏輯被組織成一個由多個 ChannelHandler 組成的 ChannelPipeline。Pipeline 是對這些 ChannelHandler 進(jìn)行組織和管理的容器。

          當(dāng)數(shù)據(jù)通過 Channel 時,會經(jīng)過 ChannelPipeline 中的一系列 ChannelHandler 處理。每個 ChannelHandler 負(fù)責(zé)處理或者傳遞事件,這樣可以將整個處理邏輯劃分為多個小的、可復(fù)用的組件。

          所以,ChannelPipeline 就是一個處理數(shù)據(jù)的通道,ChannelHandler 就是處理邏輯的組件。 Netty 的事件模型基于這個概念,通過 ChannelPipeline 將處理邏輯拆分成一系列的 ChannelHandler,方便擴(kuò)展和管理。

          docker pull mrvautin/adminmongo

          Installation

          1. Navigate to folder & install adminMongo: git clone https://github.com/mrvautin/adminMongo.git && cd adminMongo
          2. Install dependencies: npm install
          3. Start application: npm start or node app
          4. Visit http://127.0.0.1:1234 in your browser

          Note: Node.js version 4.x or above is required

          Electron App

          adminMongo can also be used as a cross platform Electron application. Due to the size of Electron it will need to be built manually.

          To build for Mac:

          $ npm run-script packageOsx

          To build for Windows:

          $ npm run-script packageWin32

          To build for Linux:

          $ npm run-script packageLinux

          Once built, the executable will be in the /releases folder.

          ed2ff39b04fa10a30ad48974b7318b00.webpimage.png
                
                public enum HttpStatus {
              CONTINUE(100"繼續(xù)"),
              SWITCHING_PROTOCOLS(101"切換協(xié)議"),
              PROCESSING(102"處理中"),
              CHECKPOINT(103"檢查點(diǎn)"),
              OK(200"請求成功"),
              CREATED(201"已創(chuàng)建"),
              ACCEPTED(202"已接受"),
              NON_AUTHORITATIVE_INFORMATION(203"非權(quán)威信息"),
              NO_CONTENT(204"無內(nèi)容"),
              RESET_CONTENT(205"重置內(nèi)容"),
              PARTIAL_CONTENT(206"部分內(nèi)容"),
              MULTI_STATUS(207"多狀態(tài)"),
              ALREADY_REPORTED(208"已報告"),
              IM_USED(226"IM Used"),
              MULTIPLE_CHOICES(300"多種選擇"),
              MOVED_PERMANENTLY(301"永久移動"),
              FOUND(302"找到"),
              /** @deprecated */
              @Deprecated
              MOVED_TEMPORARILY(302"臨時移動"),
              SEE_OTHER(303"查看其他"),
              NOT_MODIFIED(304"未修改"),
              /** @deprecated */
              @Deprecated
              USE_PROXY(305"使用代理"),
              TEMPORARY_REDIRECT(307"臨時重定向"),
              PERMANENT_REDIRECT(308"永久重定向"),
              BAD_REQUEST(400"錯誤的請求"),
              UNAUTHORIZED(401"未經(jīng)授權(quán)"),
              PAYMENT_REQUIRED(402"需要付款"),
              FORBIDDEN(403"禁止訪問"),
              NOT_FOUND(404"未找到"),
              METHOD_NOT_ALLOWED(405"不允許使用該方法"),
              NOT_ACCEPTABLE(406"不可接受"),
              PROXY_AUTHENTICATION_REQUIRED(407"需要代理身份驗(yàn)證"),
              REQUEST_TIMEOUT(408"請求超時"),
              CONFLICT(409"請求沖突"),
              GONE(410"資源不可用"),
              LENGTH_REQUIRED(411"需要內(nèi)容長度"),
              PRECONDITION_FAILED(412"先決條件失敗"),
              PAYLOAD_TOO_LARGE(413"請求實(shí)體過大"),
              /** @deprecated */
              @Deprecated
              REQUEST_ENTITY_TOO_LARGE(413"請求實(shí)體過大"),
              URI_TOO_LONG(414"請求URI過長"),
              /** @deprecated */
              @Deprecated
              REQUEST_URI_TOO_LONG(414"請求URI過長"),
              UNSUPPORTED_MEDIA_TYPE(415"不支持的媒體類型"),
              REQUESTED_RANGE_NOT_SATISFIABLE(416"請求范圍不符合要求"),
              EXPECTATION_FAILED(417"期望失敗"),
              I_AM_A_TEAPOT(418"我是一個茶壺"),
              /** @deprecated */
              @Deprecated
              INSUFFICIENT_SPACE_ON_RESOURCE(419"資源空間不足"),
              /** @deprecated */
              @Deprecated
              METHOD_FAILURE(420"方法失敗"),
              /** @deprecated */
              @Deprecated
              DESTINATION_LOCKED(421"目標(biāo)被鎖定"),
              UNPROCESSABLE_ENTITY(422"不可處理的實(shí)體"),
              LOCKED(423"已鎖定"),
              FAILED_DEPENDENCY(424"請求的依賴關(guān)系失敗"),
              TOO_EARLY(425"操作過早"),
              UPGRADE_REQUIRED(426"需要升級"),
              PRECONDITION_REQUIRED(428"要求先決條件"),
              TOO_MANY_REQUESTS(429"請求過多"),
              REQUEST_HEADER_FIELDS_TOO_LARGE(431"請求頭字段太大"),
              UNAVAILABLE_FOR_LEGAL_REASONS(451"因法律原因不可用"),
              INTERNAL_SERVER_ERROR(500"服務(wù)器內(nèi)部錯誤"),
              NOT_IMPLEMENTED(501"未實(shí)現(xiàn)"),
              BAD_GATEWAY(502"網(wǎng)關(guān)錯誤"),
              SERVICE_UNAVAILABLE(503"服務(wù)不可用"),
              GATEWAY_TIMEOUT(504"網(wǎng)關(guān)超時"),
              HTTP_VERSION_NOT_SUPPORTED(505"HTTP版本不支持"),
              VARIANT_ALSO_NEGOTIATES(506"變體協(xié)商"),
              INSUFFICIENT_STORAGE(507"存儲空間不足"),
              LOOP_DETECTED(508"檢測到循環(huán)"),
              BANDWIDTH_LIMIT_EXCEEDED(509"超出

                
                String amount = "10.50";
          String amountInCents = new BigDecimal(amount)
                                      .multiply(new BigDecimal("100"))
                                      .toBigInteger()
                                      .toString();

          System.out.println(amountInCents);  // 輸出:1050


          new BigDecimal(amount)  // 將金額(假設(shè)為字符串格式)轉(zhuǎn)換為 BigDecimal 類型
              .multiply(new BigDecimal("100"))  // 乘以 100,將金額轉(zhuǎn)換為以分為單位的 BigDecimal 類型
              .toBigInteger()  // 將結(jié)果轉(zhuǎn)換為 BigInteger 類型
              .toString();  // 將 BigInteger 轉(zhuǎn)換為字符串

          Maven項(xiàng)目的POM文件(Project Object Model,項(xiàng)目對象模型)的一部分。<modelVersion>元素指定了項(xiàng)目所遵循的POM模式的版本。

          • <artifactId>:指定項(xiàng)目的唯一標(biāo)識符。<version>:指定項(xiàng)目的版本號。<groupId>:指定項(xiàng)目的組織或公司ID,<packaging>:指定項(xiàng)目的打包類型。<name>: 指定項(xiàng)目的名稱。<description>: 提供對項(xiàng)目的簡要描述。
          • <project.build.sourceEncoding>: 指定項(xiàng)目源代碼的編碼格式為UTF-8。
          • <project.reporting.outputEncoding>: 指定項(xiàng)目報告輸出的編碼格式為UTF-8。
          • <java.version>: 指定項(xiàng)目使用的Java版本為1.8。
          • <hutool.version>: 指定項(xiàng)目使用的Hutool庫的版本為5.3.0。
          • <groupId>: 指定父項(xiàng)目的組織或公司ID,這里是 org.springframework.boot
          • <artifactId>: 指定父項(xiàng)目的唯一標(biāo)識符,這里是 spring-boot-starter-parent。
          • <version>: 指定父項(xiàng)目的版本號,這里是 2.3.2.RELEASE
                
                <dependencyManagement>
              <dependencies>
                  <!-- Spring Cloud Dependencies -->
                  <dependency>
                      <groupId>org.springframework.cloud</groupId>
                      <artifactId>spring-cloud-dependencies</artifactId>
                      <version>Hoxton.SR9</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>

                  <!-- Spring Cloud Alibaba Dependencies -->
                  <dependency>
                      <groupId>com.alibaba.cloud</groupId>
                      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                      <version>2.2.6.RELEASE</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
              </dependencies>

          </dependencyManagement>

                
                
          <dependencies>
              <!-- Spring Boot 核心依賴 -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot</artifactId>
              </dependency>


              <!-- Spring Boot Web Starter,用于構(gòu)建Web應(yīng)用 -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-web</artifactId>
              </dependency>


              <!-- Spring Kafka Starter,用于集成Kafka消息隊(duì)列 -->
              <dependency>
                  <groupId>org.springframework.kafka</groupId>
                  <artifactId>spring-kafka</artifactId>
              </dependency>


              <!-- Spring Boot Starter for Redis,用于集成Redis數(shù)據(jù)庫 -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-data-redis</artifactId>
              </dependency>


              <!-- Spring Boot Starter for Aspect-Oriented Programming (AOP) -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-aop</artifactId>
              </dependency>


              <!-- Spring Boot Starter for Logging -->
              <dependency>
                  <groupId>org.springframework.boot</groupId>
                  <artifactId>spring-boot-starter-logging</artifactId>
              </dependency>

          </dependencies>

                
                <dependencies>
              <!-- Spring Cloud Starter for OpenFeign,用于聲明式REST客戶端 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-openfeign</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Ribbon,用于負(fù)載均衡 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Alibaba Nacos Discovery,用于服務(wù)發(fā)現(xiàn) -->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                  <exclusions>
                      <!-- 排除Nacos客戶端,因?yàn)镹acos Discovery已經(jīng)包含了該依賴 -->
                      <exclusion>
                          <groupId>com.alibaba.nacos</groupId>
                          <artifactId>nacos-client</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>


              <!-- Spring Cloud Starter for Alibaba Nacos Config,用于配置中心 -->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
              </dependency>

          </dependencies>
                
                <dependencies>
              <!-- EasyExcel,用于處理Excel文件 -->
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>easyexcel</artifactId>
                  <version>3.1.1</version>
              </dependency>


              <!-- Spring Cloud Starter for Netflix Eureka Client,用于服務(wù)注冊與發(fā)現(xiàn) -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for OpenFeign,用于聲明式REST客戶端 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-openfeign</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Netflix Hystrix,用于斷路器模式 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Netflix Hystrix Dashboard,用于Hystrix儀表板 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Zipkin,用于分布式跟蹤 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-zipkin</artifactId>
              </dependency>


              <!-- Spring Cloud Starter for Sleuth,用于分布式追蹤 -->
              <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-starter-sleuth</artifactId>
              </dependency>


              <!-- Spring Boot Admin Starter Client,用于監(jiān)控和管理Spring Boot應(yīng)用 -->
              <dependency>
                  <groupId>de.codecentric</groupId>
                  <artifactId>spring-boot-admin-starter-client</artifactId>
                  <version>2.1.0</version>
              </dependency>


              <!-- Reactor Core,用于響應(yīng)式編程 -->
              <dependency>
                  <groupId>io.projectreactor</groupId>
                  <artifactId>reactor-core</artifactId>
                  <version>3.2.10.RELEASE</version>
              </dependency>

          </dependencies>
                
                <dependencies>
              <!-- MyBatis Spring Boot Starter,用于整合MyBatis和Spring Boot -->
              <dependency>
                  <groupId>org.mybatis.spring.boot</groupId>
                  <artifactId>mybatis-spring-boot-starter</artifactId>
                  <version>2.1.0</version>
              </dependency>


              <!-- PageHelper,用于MyBatis的分頁插件 -->
              <dependency>
                  <groupId>com.github.pagehelper</groupId>
                  <artifactId>pagehelper</artifactId>
                  <version>5.1.3</version>
              </dependency>


              <!-- MyBatis通用Mapper,用于簡化MyBatis的開發(fā) -->
              <dependency>
                  <groupId>tk.mybatis</groupId>
                  <artifactId>mapper</artifactId>
                  <version>3.4.6</version>
              </dependency>


              <!-- Druid,用于數(shù)據(jù)庫連接池和監(jiān)控 -->
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>druid</artifactId>
                  <version>1.1.12</version>
              </dependency>


              <!-- Jedis,用于連接Redis -->
              <dependency>
                  <groupId>redis.clients</groupId>
                  <artifactId>jedis</artifactId>
              </dependency>


              <!-- springfox-swagger2,用于生成API文檔 -->
              <dependency>
                  <groupId>io.springfox</groupId>
                  <artifactId>springfox-swagger2</artifactId>
                  <version>2.7.0</version>
              </dependency>


              <!-- springfox-swagger-ui,用于提供Swagger UI以查看生成的API文檔 -->
              <dependency>
                  <groupId>io.springfox</groupId>
                  <artifactId>springfox-swagger-ui</artifactId>
                  <version>2.7.0</version>
              </dependency>


              <!-- Knife4j Spring Boot Starter,用于提供Knife4j的集成支持 -->
              <dependency>
                  <groupId>com.github.xiaoymin</groupId>
                  <artifactId>knife4j-spring-boot-starter</artifactId>
                  <version>2.0.4</version>
              </dependency>


              <!-- MySQL Connector/J,用于連接MySQL數(shù)據(jù)庫 -->
              <dependency>
                  <groupId>mysql</groupId>
                  <artifactId>mysql-connector-java</artifactId>
                  <version>5.1.48</version>
              </dependency>

          </dependencies>
                
                <dependencies>
              <!-- Apache HttpClient,用于處理HTTP請求 -->
              <dependency>
                  <groupId>org.apache.httpcomponents</groupId>
                  <artifactId>httpclient</artifactId>
                  <version>4.5.12</version>
              </dependency>


              <!-- Apache HttpMime,用于處理HTTP消息的MIME類型 -->
              <dependency>
                  <groupId>org.apache.httpcomponents</groupId>
                  <artifactId>httpmime</artifactId>
                  <version>4.5.12</version>
              </dependency>


              <!-- Gson,用于處理JSON數(shù)據(jù) -->
              <dependency>
                  <groupId>com.google.code.gson</groupId>
                  <artifactId>gson</artifactId>
                  <version>2.8.5</version>
              </dependency>


              <!-- Project Lombok,用于簡化Java代碼 -->
              <dependency>
                  <groupId>org.projectlombok</groupId>
                  <artifactId>lombok</artifactId>
                  <version>1.18.8</version>
              </dependency>


              <!-- Apache Commons Lang,提供通用的工具類 -->
              <dependency>
                  <groupId>org.apache.commons</groupId>
                  <artifactId>commons-lang3</artifactId>
                  <version>3.9</version>
              </dependency>


              <!-- DataStax Cassandra Java Driver,用于連接Cassandra數(shù)據(jù)庫 -->
              <dependency>
                  <groupId>com.datastax.cassandra</groupId>
                  <artifactId>cassandra-driver-core</artifactId>
                  <version>3.1.2</version>
              </dependency>


              <!-- CodaHale Metrics,用于收集應(yīng)用程序的性能指標(biāo) -->
              <dependency>
                  <groupId>com.codahale.metrics</groupId>
                  <artifactId>metrics-core</artifactId>
                  <version>3.0.2</version>
              </dependency>


              <!-- Google Guava,提供Java核心庫的擴(kuò)展功能 -->
              <dependency>
                  <groupId>com.google.guava</groupId>
                  <artifactId>guava</artifactId>
                  <version>18.0</version>
              </dependency>

          </dependencies>

                
                <dependencies>
              <!-- Elasticsearch Transport Client,用于與Elasticsearch集成 -->
              <dependency>
                  <groupId>org.elasticsearch.client</groupId>
                  <artifactId>transport</artifactId>
                  <version>7.11.2</version>
                  <exclusions>
                      <exclusion>
                          <groupId>commons-logging</groupId>
                          <artifactId>commons-logging</artifactId>
                      </exclusion>
                  </exclusions>
              </dependency>


              <!-- Apache Commons Lang,提供通用的工具類 -->
              <dependency>
                  <groupId>org.apache.commons</groupId>
                  <artifactId>commons-lang3</artifactId>
                  <version>3.9</version>
              </dependency>


              <!-- Apache Commons Collections,提供集合處理的工具類 -->
              <dependency>
                  <groupId>commons-collections</groupId>
                  <artifactId>commons-collections</artifactId>
                  <version>3.2.1</version>
              </dependency>


              <!-- Alibaba Nacos Client,用于服務(wù)發(fā)現(xiàn)和配置中心 -->
              <dependency>
                  <groupId>com.alibaba.nacos</groupId>
                  <artifactId>nacos-client</artifactId>
              </dependency>


              <!-- Elasticsearch Java REST Client,用于與Elasticsearch進(jìn)行REST通信 -->
              <dependency>
                  <groupId>org.elasticsearch</groupId>
                  <artifactId>elasticsearch</artifactId>
                  <version>7.11.2</version>
              </dependency>


              <!-- Elasticsearch Transport Netty4 Client,用于Elasticsearch的Netty4傳輸客戶端 -->
              <dependency>
                  <groupId>org.elasticsearch.plugin</groupId>
                  <artifactId>transport-netty4-client</artifactId>
                  <version>7.11.2</version>
              </dependency>


              <!-- Elasticsearch REST Client,用于與Elasticsearch進(jìn)行REST通信 -->
              <dependency>
                  <groupId>org.elasticsearch.client</groupId>
                  <artifactId>elasticsearch-rest-client</artifactId>
                  <version>7.11.2</version>
              </dependency>


              <!-- ClickHouse JDBC Driver,用于連接ClickHouse數(shù)據(jù)庫 -->
              <dependency>
                  <groupId>ru.yandex.clickhouse</groupId>
                  <artifactId>clickhouse-jdbc</artifactId>
                  <version>0.2.4</version>
              </dependency>


              <!-- Elasticsearch REST High-Level Client,用于高級REST通信 -->
              <dependency>
                  <groupId>org.elasticsearch.client</groupId>
                  <artifactId>elasticsearch-rest-high-level-client</artifactId>
                  <version>7.11.2</version>
              </dependency>


              <!-- MongoDB Java Driver,用于連接MongoDB數(shù)據(jù)庫 -->
              <dependency>
                  <groupId>org.mongodb</groupId>
                  <artifactId>mongo-java-driver</artifactId>
                  <version>3.12.5</version>
              </dependency>


              <!-- Fastjson,用于處理JSON數(shù)據(jù) -->
              <dependency>
                  <groupId>com.alibaba</groupId>
                  <artifactId>fastjson</artifactId>
                  <version>1.2.75</version>
                  <scope>compile</scope>
              </dependency>


              <!-- Hutool All-in-one工具類庫,提供豐富的工具方法 -->
              <dependency>
                  <groupId>cn.hutool</groupId>
                  <artifactId>hutool-all</artifactId>
                  <version>${hutool.version}</version>
              </dependency>


              <!-- Hutool Core,Hutool的核心工具類庫 -->
              <dependency>
                  <groupId>cn.hutool</groupId>
                  <artifactId>hutool-core</artifactId>
                  <version>5.6.3</version>
                  <scope>compile</scope>
              </dependency>

          </dependencies>

          加群聯(lián)系作者vx:xiaoda0423

          倉庫地址:https://github.com/webVueBlog/JavaGuideInterview

          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  99在线精品视频在线观看 | 国产午夜免费 | 国产精品色 | 成人麻豆短视频999 | 大鸡巴视频网站 |