日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

dubbo web工程示例_带有Dubbo的Spring Cloud Alibaba

發(fā)布時間:2024/9/19 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dubbo web工程示例_带有Dubbo的Spring Cloud Alibaba 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在優(yōu)銳課的學(xué)習(xí)分享中,我們可以看到關(guān)于如何在阿里巴巴的Spring Cloud實現(xiàn)中使用這個流行的RPC框架。

1、Spring Cloud Alibaba

Spring Cloud Alibaba是Alibaba Cloud的Spring Cloud版本。 它由幾個阿里巴巴的開源項目Nacos,Sentinel和RocketMQ以及幾個阿里云原生商業(yè)產(chǎn)品組成,以增強用戶在阿里云上的體驗。 Spring Cloud Alibaba的新版本還將提供Dubbo作為RPC選擇。

Dubbo是一個經(jīng)過嚴格實踐的RPC框架。 在另一篇文章中,我演示了如何將其與注釋一起使用。 該示例使用的是Spring Boot。 Dubbo與Spring Boot緊密集成。 將Dubbo放在Spring Cloud Alibaba上似乎很自然。

在本文中,我們將使用一個簡單的echo示例來說明在Spring Cloud Alibaba上使用Dubbo的步驟。

定義Dubbo接口

首先定義一個接口:

public

該接口將向遠程客戶端公開。 這里的提示是將此接口打包到第二或第三方工件(jar)中,以便該jar可用于spring-cloud-dubbo-sample-api。

2、實施Dubbo服務(wù)

在Maven中創(chuàng)建一個項目

讓我們用artifactIdId spring-cloud-dubbo-server-sample創(chuàng)建一個Maven項目。 然后,將依賴項添加到pom.xml中。。

<dependencies><!-- Sample API --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dubbo-sample-api</artifactId><version>${project.version}</version></dependency><!-- Spring Boot dependencies --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-actuator</artifactId></dependency><!-- Dubbo Spring Cloud Starter --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency><!-- Spring Cloud Nacos Service Discovery --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency> </dependencies>

在上面的pom.xml中:

· spring-cloud-dubbo-sample-api:這是工件ID

· spring-boot-actuator:這是Spring Boot生產(chǎn)就緒的工件

· spring-cloud-starter-dubbo:這是Dubbo Spring Cloud Starter工件

· spring-cloud-starter-alibaba-nacos-discovery:這是Nacos Spring Cloud服務(wù)注冊表工件

在繼續(xù)之前,我們需要在定義中添加一個版本:

<dependencyManagement><dependencies><!-- Spring Cloud Alibaba dependencies --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>0.9.0.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

3、服務(wù)代碼實施

這是實現(xiàn)的Java代碼:

@org.apache.dubbo.config.annotation.Service class EchoServiceImpl implements EchoService {@Overridepublic String echo(String message) {return "[echo] Hello, " + message;} }

@ org.apache.dubbo.config.annotation.Service注釋將其聲明為Dubbo服務(wù)。

4、配置Dubbo服務(wù)

建議的公開服務(wù)的方法是使用@DubboComponentScanannotation。

該配置涉及兩個部分:Dubbo和Spring Cloud。

dubbo:scan:base-packages: org.springframework.cloud.alibaba.dubbo.bootstrapprotocol:name: dubbo# -1 means self-definedport: -1registry:address: spring-cloud://localhost spring:application:name: spring-cloud-alibaba-dubbo-servermain:allow-bean-definition-overriding: truecloud:nacos:# Nacosdiscovery:server-addr: 127.0.0.1:8848

5、Spring Boot應(yīng)用程序類

這與其他Spring Boot應(yīng)用程序類相同:

@EnableDiscoveryClient @EnableAutoConfiguration public class DubboSpringCloudServerBootstrap {public static void main(String[] args) {SpringApplication.run(DubboSpringCloudServerBootstrap.class);} }

這里唯一值得一提的是,我們應(yīng)該在此之前啟動Nacos服務(wù),以便Nacos可以發(fā)現(xiàn)該服務(wù)。

6、實施Dubbo客戶

創(chuàng)建spring-cloud-dubbo-client-sample Maven項目

與服務(wù)端配置類似,我們需要指定依賴項:

<dependencyManagement><dependencies><!-- Spring Cloud Alibaba dependencies --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>0.9.0.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies> </dependencyManagement> <dependencies><!-- Sample API --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dubbo-sample-api</artifactId><version>${project.version}</version></dependency><!-- Spring Boot dependencies --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-actuator</artifactId></dependency><!-- Dubbo Spring Cloud Starter --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-dubbo</artifactId></dependency><!-- Spring Cloud Nacos Service Discovery --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency> </dependencies>

與服務(wù)端的主要區(qū)別在于客戶端將是一個使用spring-boot-starter-web的Web Servlet應(yīng)用程序。

7、配置客戶端

與服務(wù)端類似,配置分為兩個部分:Dubbo和Spring。

dubbo:registry:address: spring-cloud://localhostcloud:subscribed-services: spring-cloud-alibaba-dubbo-server spring:application:# Dubboname: spring-cloud-alibaba-dubbo-clientmain:# Spring Boot 2.1allow-bean-definition-overriding: truecloud:nacos:# Nacosdiscovery:server-addr: 127.0.0.1:8848

在這里,我們通過將dubbo.cloud.subscribed-services綁定到spring-cloud-dubbo-server-sample來指定要使用的服務(wù)。

· dubbo.cloud.subscribed-services:要訂閱多個服務(wù),請使用“,”作為分隔符。

由于它是一個Web應(yīng)用程序,因此默認端口為8080。 可以通過修改server.port屬性來更改。

8、Spring Boot應(yīng)用程序類和實現(xiàn)Java代碼

分為兩個步驟:

@EnableDiscoveryClient @EnableAutoConfiguration @RestController public class DubboSpringCloudClientBootstrap {@Referenceprivate EchoService echoService;@GetMapping("/echo")public String echo(String message) {return echoService.echo(message);}public static void main(String[] args) {SpringApplication.run(DubboSpringCloudClientBootstrap.class);} }

由于這是一個Web客戶端,因此我們可以使用curl進行嘗試。 如果我們跑

curl http://127.0.0.1:8080/echo?message=yourmessage

或者我們可以運行Java客戶端來獲得相同的結(jié)果。

We should see the result [echo] Hello, yourmessage

9、結(jié)論

Spring Cloud阿里巴巴現(xiàn)在有兩個發(fā)行版,其中包括Dubbo。 它們是與Spring Cloud Finchley兼容的0.2.2版本和與Spring Cloud Greenwich兼容的0.9.0版本。 無論你是嘗試適應(yīng)Spring Cloud阿里巴巴的Dubbo用戶,還是相反,經(jīng)驗都應(yīng)該是無縫的。

> 喜歡這篇文章的可以點個贊,歡迎大家留言評論,記得關(guān)注我,每天持續(xù)更新技術(shù)干貨、職場趣事、海量面試資料等等
> 不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代

還有就是這我總結(jié)出了一些架構(gòu)視頻資料和互聯(lián)網(wǎng)公司java程序員面試涉及到的絕大部分面試題和答案做成了文檔和架構(gòu)視頻資料還有完整高清的java進階架構(gòu)學(xué)習(xí)思維導(dǎo)圖分享給大家(包括Dubbo、Redis、Netty、redis、mysql、zookeeper、Spring cloud、分布式、高并發(fā)等架構(gòu)技術(shù)資料),也節(jié)省大家在網(wǎng)上搜索資料的時間來學(xué)習(xí)。

總結(jié)

以上是生活随笔為你收集整理的dubbo web工程示例_带有Dubbo的Spring Cloud Alibaba的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。