XXL-RPC v1.8.1 | RPC服務框架

Release Notes

  • 1、【安全】序列化安全性增強,默認開啟package安全空間機制;
  • 2、【擴展】序列化擴展性增強,支持自定義序列化package白名單;
  • 3、【優化】序列化類型主動檢測,提升問題定位效率;
  • 4、【能力】服務注冊發現實效性提升,優化long-polling邏輯;
  • 5、【擴展】模塊 xxl-rpc-netty-shade 獨立拆分,與Core模塊解耦;
  • 6、【優化】通訊組件選擇HttpServer時,HttpObjectAggregator限制調大至20M,支持大消息傳輸;
  • 7、【升級】多個項目依賴升級至較新穩定版本,涉及 xxl-rpc-netty-shade、netty、slf4j 等;

XXL- RPC 快速接入示例

代碼參考github倉庫 /test 目錄:https://github.com/xuxueli/xxl-rpc/tree/master/xxl-rpc-samples

1、服務注冊中心搭建:一行命令啟動注冊中心,一站式提供服務動態注冊發現能力。

docker pull xuxueli/xxl-rpc-admindocker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-rpc-admin  -d xuxueli/xxl-rpc-admin

image.png

2、XXL-PRC接入配置:與Spring無縫集成,也支持無框架接入。

XxlRpcSpringFactory factory = new XxlRpcSpringFactory();
factory.setBaseConfig(new BaseConfig(env, appname));
factory.setRegister(new XxlRpcRegister(address, accesstoken));
factory.setInvokerConfig(new InvokerConfig(invokerOpen));
factory.setProviderConfig(providerOpen ?new ProviderConfig(NettyServer.class,JsonbSerializer.class,port,corePoolSize,maxPoolSize,null) : new ProviderConfig(providerOpen));

經過上述2步,已完成全部配置工作,可以直接展開業務編碼工作。

3、業務代碼開發:

  • 3.1、接口定義代碼:
public interface DemoService {public UserDTO load(String name);}
  • 3.2、服務端代碼:
    注解式,一行代碼將現有接口轉換成 XXL-RPC 服務。
@XxlRpcService
@Service
public class DemoServiceImpl implements DemoService {@Overridepublic UserDTO load(String name) {return new UserDTO("jack", "hello world");}}
  • 3.3、調用端代碼:
    注解式,一行代碼引入 XXL- RPC 服務。

@XxlRpcReference(appname = "app01")
private DemoService demoService;... 
UserDTO userDTO = demoService.sayHi(name);

簡介

XXL-RPC 是一個RPC服務框架,提供一站式服務通信及運營能力。擁有“輕量級、高性能、負載均衡、故障容錯、安全性、注冊發現、服務治理”等分布式特性。現已開放源代碼,開箱即用。

  • 中文文檔
  • Github地址

img_DNq6.png

特性

  • 1、易學易用:無縫集成SpringBoot,三分鐘即可上手;
  • 2、服務透明:系統完整的封裝了底層通信細節,開發時調用遠程服務就像調用本地服務,在提供遠程調用能力時不損失本地調用的語義簡潔性;
  • 3、多調用類型:支持多種調用類型,包括:SYNC、ONEWAY、FUTURE、CALLBACK 等;
  • 4、多通訊協議:支持多種通訊協議,支持TCP、HTTP;
  • 5、多序列化方案:支持多種序列化協議,包括:HESSIAN/2、HESSIAN1、Gson、PROTOSTUFF、KRYO 等序列化方案;
  • 6、注冊中心:內置服務注冊中心支持服務動態發現,提供輕量級、一站式解決方案。也支持擴展集成其他注冊中心,或者不使用注冊中心、直接指定服務提供方機器地址調用;
  • 7、負載均衡:支持多種負載均衡策略,包括:輪詢、隨機、LRU、LFU、一致性HASH等;
  • 8、服務治理:提供服務治理能力,支持在線管理注冊的服務信息,如服務鎖定、IP禁用……等;
  • 9、服務監控:支持在線監控服務調用統計信息以及服務健康狀況等(計劃中);
  • 10、故障容錯:支持自動巡檢線上服務并摘除故障節點,消費方實時感知并移除失效節點將流量分發到其余節點,提高系統容錯能力。
  • 11、高兼容性:得益于優良的兼容性與模塊化設計,不限制技術棧;除 spring/springboot 技術棧之外,理論上支持運行在任何Java代碼中,甚至main方法直接啟動運行;
  • 12、泛化調用:支持服務調用方直接發起服務調用,不依賴服務方提供的API;
  • 13、服務安全:支持序列化安全空間機制,以及通訊token加密機制;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/65233.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/65233.shtml
英文地址,請注明出處:http://en.pswp.cn/web/65233.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端路由layout布局處理以及菜單交互(三)

上篇介紹了前端項目部署以及基本依賴的應用&#xff0c;這次主要對于路由以及布局進行模塊化處理 一、 創建layout模塊 1、新建src/layout/index.vue <template><el-container class"common-layout"><!-- <el-aside class"aside">&l…

Spring Boot(4)使用 IDEA 搭建 Spring Boot+MyBatis 項目全流程實戰

文章目錄 一、?搞個引言二、?開始搭建 Spring Boot 項目吧&#xff01;2.1 啟動 IDEA 并創建新項目2.2 選擇項目依賴2.3 完成項目創建 三、&#x1f4d8;項目結構剖析四、?配置數據庫連接五、? 創建 MyBatis 相關組件5.1 實體類&#xff08;Entity&#xff09;5.2 Mapper 接…

使用wujie搭建微前端應用及踩坑

線上演示地址&#xff1a;wujie-app 源碼地址&#xff1a;https://github.com/Jiang-K-J/micro-app?tabreadme-ov-file &#xff08;如果覺您得有用&#xff0c;請幫忙點個小星星&#xff09; 主應用&#xff1a;vue2webpack 子應用&#xff1a;vue3vite 子應用&#xff1…

【數據可視化-11】全國大學數據可視化分析

&#x1f9d1; 博主簡介&#xff1a;曾任某智慧城市類企業算法總監&#xff0c;目前在美國市場的物流公司從事高級算法工程師一職&#xff0c;深耕人工智能領域&#xff0c;精通python數據挖掘、可視化、機器學習等&#xff0c;發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

141.《mac m1安裝mongodb詳細教程》

文章目錄 下載從官網下載安裝包 下載后雙擊解壓出文件夾安裝文件名修改為 mongodb配置data存放位置和日志log的存放位置啟動方式一方式二方式二:輸入mongo報錯以及解決辦法 本人電腦 m2 pro,屬于 arm 架構 下載 官網地址: mongodb官網 怎么查看自己電腦應該下載哪個版本,輸入…

frameworks 之 Winscope 工具

frameworks 之 Winscope 工具 1. 手機端開啟2. 加載追蹤的文件2.1 Android12 3. 分析文件 Winscope 是一款 Web 工具&#xff0c;可以讓用戶在動畫和轉換期間和之后記錄、重放和分析多個系統服務的狀態。Winscope 將所有相關的系統服務狀態記錄在一個跟蹤文件中。使用帶有跟蹤文…

在日期字段中自動插入斜杠“/”的最佳方法是什么

我正在嘗試向輸入日期字段添加功能&#xff0c;以便當用戶輸入數字時&#xff0c;自動添加斜杠“/”。 所以假設我有以下 html&#xff1a; <input type"text" id"fooDate" />假設我有以下 javascript&#xff1a; var dateField document.getElem…

極限學習機 (Extreme Learning Machine, ELM) 算法詳解與PyTorch實現

極限學習機 (Extreme Learning Machine, ELM) 算法詳解與PyTorch實現 目錄 極限學習機 (Extreme Learning Machine, ELM) 算法詳解與PyTorch實現1. 極限學習機 (ELM) 算法概述1.1 單隱層前饋神經網絡1.2 ELM的優勢2. ELM的核心技術2.1 模型定義2.2 隨機初始化2.3 最小二乘法2.4…

【姿態估計實戰】使用OpenCV和Mediapipe構建鍛煉跟蹤器【附完整源碼與詳細說明】

《------往期經典推薦------》 一、AI應用軟件開發實戰專欄【鏈接】 項目名稱項目名稱1.【人臉識別與管理系統開發】2.【車牌識別與自動收費管理系統開發】3.【手勢識別系統開發】4.【人臉面部活體檢測系統開發】5.【圖片風格快速遷移軟件開發】6.【人臉表表情識別系統】7.【…

nvm如何安裝

一、簡介 在實際的開發和學習中可能會遇到不同項目的 node 版本不同&#xff0c;而出現的兼容性問題。 而 nvm 就可以很好的解決這個問題&#xff0c;它可以在同一臺機器上下管理多個 node 版本&#xff0c;使得程序員可以輕松地安裝、卸載和切換不同的 node 版本。 在下載和配…

cityhash–對字符串的哈希算法

原文地址&#xff1a;cityhash–對字符串的哈希算法 – 無敵牛 歡迎參觀我的個人博客&#xff1a;無敵牛 – 技術/著作/典籍/分享等 分享一個給字符串計算hash的開源庫&#xff0c;谷歌出品。 源代碼在&#xff1a;https://github.com/google/cityhash 可以自己下載&#x…

spring cloud微服務分布式架構

spring cloud微服務分布式架構 應用架構 單體應用架構&#xff1a;all in one 如&#xff1a;前端后端部署在一臺服務器中 web應用和數據庫放在同一臺服務器中&#xff0c;只要服務器掛掉&#xff0c;應用就會終止。 分布式架構&#xff1a;將一個系統拆分為多個獨立的組件&…

【HarmonyOS】鴻蒙應用點9圖的處理(draw9patch)

【HarmonyOS】鴻蒙應用點9圖的處理&#xff08;draw9patch&#xff09; 一、前言&#xff1a; 首先在鴻蒙中是不支持安卓 .9圖的圖片直接使用。只有類似拉伸的處理方案&#xff0c;鴻蒙提供的Image組件有與點九圖相同功能的API設置。 可以通過設置resizable屬性來設置Resiza…

深入Android架構(從線程到AIDL)_12 Android UI 單線程程序

目錄 6、 Android UI 單線程程序 單線程程序概念 單線程可避免線程安全問題 SurfaceView與非UI線程 6、 Android UI 單線程程序 單線程程序概念 單線程程序意謂著兩個(或多個)線程不能共享對象或變量值。Android的UI是單線程程序的環境。UI控件(如Button等)都是由UI線程所…

STM32-筆記36-ADC(模擬/數字轉換器)

一、什么是ADC&#xff1f; 全稱&#xff1a;Analog-to-Digital Converter&#xff0c;指模擬/數字轉換器。 ADC可以將引腳上連續變化的模擬電壓轉換為內存中存儲的數字變量&#xff0c;建立模擬電路到數字電路的橋梁。 12 位 ADC 是一種逐次逼近型模擬數字轉換器&#xff08;0…

房產銷售系統(源碼+數據庫+文檔)

親測完美運行帶論文&#xff1a;文末獲取源碼 文章目錄 項目簡介&#xff08;論文摘要&#xff09;運行視頻包含的文件列表&#xff08;含論文&#xff09;前端運行截圖后端運行截圖 項目簡介&#xff08;論文摘要&#xff09; 隨著科學技術的飛速發展&#xff0c;各行各業都在…

游戲社交趨勢下,游戲語音再升級!

如今&#xff0c;游戲已成為我們社交生活的一個重要娛樂方式&#xff0c;春節臨近&#xff0c;與親朋好友一起暢玩“開黑”無疑是節假日的一大樂趣。在游戲社交互動中&#xff0c;“游戲語音”不可或缺。在傳統游戲語音領域&#xff0c;多人在線游戲如 MOBA、FPS 和 MMORPG 的實…

HTML5實現好看的博客網站、通用大作業網頁模板源碼

HTML5實現好看的博客網站、通用大作業網頁模板源碼 前言一、設計來源1.1 主界面1.2 列表界面1.3 文章界面 二、效果和源碼2.1 動態效果2.2 源代碼 源碼下載結束語 HTML5實現好看的博客網站、通用大作業網頁模板源碼&#xff0c;博客網站源碼&#xff0c;HTML模板源碼&#xff0…

ArcGIS中怎么把數據提取到指定范圍(裁剪、掩膜提取)

最近&#xff0c;經常能收到怎么把數據提取到指定范圍、柵格數據怎么裁剪、矢量數據怎么裁剪、柵格數據怎么掩膜提取的咨詢。 下面是我對這個問題的解決思路&#xff1a; 對于矢量數據&#xff1a; ①首先把數據加載進來 ②軟件界面上面的工具欄找到→地理處理→裁剪&#x…

PHP 使用集合 處理復雜數據 提升開發效率

文章精選推薦 1 JetBrains Ai assistant 編程工具讓你的工作效率翻倍 2 Extra Icons&#xff1a;JetBrains IDE的圖標增強神器 3 IDEA插件推薦-SequenceDiagram&#xff0c;自動生成時序圖 4 BashSupport Pro 這個ides插件主要是用來干嘛的 &#xff1f; 5 IDEA必裝的插件&…