成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dubbo 3.0 ? No ! RSocket 永遠的神

網絡 網絡管理
RSocket 是一個新的、語言無關的第七層應用網絡協議。它是一個雙向、多路復用、基于消息、基于反應流背壓的二進制協議。

[[411111]]

背景

最近國內技術圈最熱門的事情莫過于 Apache Dubbo 3.0 發布,作為 Dubbo 3 中最重要的特性是選擇 HTTP/2 作為底層通信協議,使用 protobuf 作為序列化協議的組合,這套組合方案也是 gRPC 協議使用的方案。最終還是沒有選擇 RSocket 協議作為 reactive programming (響應式編程)的補充方案。

Dubbo 3.0 源碼示例

  • RSocket 是一個新的、語言無關的第七層應用網絡協議。它是一個雙向、多路復用、基于消息、基于反應流背壓的二進制協議。和傳統網絡編程模型 HTTP 的 Request/Response 方式不同。RSocket 除了 Request/Response 方式之外,還支持 Fire And Forget(發送不回)、Stream(單向流)、Channel(雙向流)。
  • RSocket 的基礎可以參考筆者 《RSocket | 替代 REST 的不二選擇》文章參考學習。
  • 本文著重說明 Spring 官方孵化器新上項目 spring-retrosocket 使用。

Spring 孵化器截圖

spring-retrosocket 通過提供注解驅動 RSocket 的客戶端,通過注解調用屏蔽 rosocket-java sdk 的復雜性。

1. 創建 RSocket Server

創建 spring boot 項目,添加相關依賴即可

  1. <dependency> 
  2.   <groupId>org.springframework.boot</groupId> 
  3.   <artifactId>spring-boot-starter-rsocket</artifactId> 
  4. </dependency> 

指定 rsocket server 服務端口即可

  1. spring.rsocket.server.port=8848 

定義 RR 請求模型處理信道

使用 @MessageMapping 指定路由路徑即可

  1. @Controller 
  2. public class GreetingsController { 
  3.   @MessageMapping("request-response"
  4.   Mono<String> reqResponse(@Payload String payload) { 
  5.    log.info("收到 RR 請求信息: {}", payload); 
  6.    return Mono.just("Hello, " + payload); 
  7.   } 

2. 使用 spring-retrosocket 創建客戶端

  • 使用 Spring Initializr 并生成一個新項目。
依賴 版本
spring-retrosocke 0.0.1-SNAPSHOT
Spring Boot 2.5.2
  1. <dependency> 
  2.     <groupId>org.springframework.retrosocket</groupId> 
  3.     <artifactId>spring-retrosocket</artifactId> 
  4.     <version>0.0.1-SNAPSHOT</version> 
  5. </dependency> 
  • 添加 spring maven 倉庫

如果您有一個現有的構建,請確保您擁有spring-milestones或spring-snapshotsSpring 存儲庫。

  1. <repositories> 
  2.    <repository> 
  3.      <id>spring-milestones</id> 
  4.      <name>Spring Milestones</name
  5.      <url>https://repo.spring.io/milestone</url> 
  6.    </repository> 
  7.    <repository> 
  8.      <id>spring-snapshots</id> 
  9.      <name>Spring Snapshots</name
  10.      <url>https://repo.spring.io/snapshot</url> 
  11.      <snapshots> 
  12.        <enabled>true</enabled> 
  13.      </snapshots> 
  14.    </repository> 
  15.  </repositories> 

3. 基本用法

  • 開啟 RSocket 客戶端支持 在您的 Java 代碼中,您需要啟用 RSocket 客戶端支持。使用@EnableRSocketClient注釋。您還需要定義一個RSocketRequesterbean。
  1. @SpringBootApplication 
  2. @EnableRSocketClients 
  3. class RSocketClientApplication { 
  4.  @Bean 
  5.  RSocketRequester requester(RSocketRequester.Builder builder) { 
  6.   return builder.connectTcp("localhost", 8888).block(); 
  7.  } 
  • 然后,定義一個 RSocket 客戶端接口(類似于 FeignClient),如下所示:
  1. @RSocketClient 
  2. interface GreetingClient { 
  3.  @MessageMapping("request-response"
  4.  Mono<GreetingResponse> requestResponse(Mono<String> name); 
  • 測試代碼
  1. @SpringBootTest 
  2. class DemoApplicationTests { 
  3.  
  4.  @Autowired 
  5.  private GreetingClient greetingClient; 
  6.  
  7.  @Test 
  8.  void testGreetingClient() { 
  9.   Mono<String> stringMono = greetingClient.requestResponse(Mono.just("lengleng")); 
  10.   System.out.println(stringMono.block()); 
  11.  } 

spring-retrosocket github源碼:https://github.com/spring-projects-experimental/spring-retrosocket

 

責任編輯:武曉燕 來源: JAVA架構日記
相關推薦

2021-07-05 08:12:53

Nginx架構多進程

2021-08-03 17:00:25

Spring Boot代碼Java

2021-08-09 10:21:42

云原生Dubbo3.0 服務治理

2025-04-21 04:00:00

2020-11-14 15:43:35

人工智能算法象棋

2021-07-14 13:12:51

2022-03-15 18:33:34

URL重構Dubbo3.0

2021-09-06 09:46:26

Dubbo 服務端開發

2016-01-18 10:49:51

浪潮SAP

2011-02-22 13:32:03

2015-09-01 10:29:44

數據安全

2011-05-11 09:16:30

IIS后門

2025-05-09 08:34:57

RSocketSpringBoot聊天系統

2009-09-11 08:39:33

2015-02-04 10:47:06

2021-12-30 23:45:11

Spring RSocket BroRSocke

2020-06-01 08:35:36

編程語言JavaPython

2020-07-01 18:31:14

Linuxbash永遠循環

2024-09-29 10:39:48

RSocketWebSocket通信

2021-02-20 23:30:39

零信任網絡安全信息泄露
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91视视频在线观看入口直接观看 | 777777777亚洲妇女 | 伊人伊成久久人综合网站 | 一本色道精品久久一区二区三区 | 欧美精品被 | 毛片在线免费 | 蜜桃视频在线观看免费视频网站www | 一二三四在线视频观看社区 | 青青久在线视频 | 久久成 | 日日操夜夜操天天操 | 91精品国产一区二区在线观看 | 午夜日韩| 欧美久久久网站 | 国产一区二区精品在线观看 | 涩爱av一区二区三区 | 欧美日韩国产三级 | 成人欧美一区二区三区黑人孕妇 | 日韩色图在线观看 | 国产高清精品在线 | 欧美日本久久 | av一区二区三区 | 欧美日韩在线国产 | 婷婷综合色| 国产一区二区久久 | 久久精片 | 一级片网址 | 亚洲第1页 | 在线观看视频一区二区三区 | 亚洲欧美激情精品一区二区 | 国产精品久久久久久久久久久免费看 | 国产精品久久精品 | 亚洲一区二区三区免费在线观看 | 天天综合亚洲 | 日本午夜视频 | 国产在线一区观看 | 91免费版在线观看 | 奇米久久久| 伊人狼人影院 | 欧美成人视屏 | 日韩午夜 |