电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Cloud Alibaba和Dubbo融合實現

瀏覽:7日期:2023-09-11 09:01:34

服務提供者

創建一個名為 hello-dubbo-nacos-provider 的服務提供者項目

POM

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.6.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.antoniopeng</groupId> <artifactId>hello-dubbo-nacos-provider</artifactId> <packaging>pom</packaging> <modules> <module>hello-dubbo-nacos-provider-api</module> <module>hello-dubbo-nacos-provider-service</module> </modules></project>

該項目下有兩個子模塊,分別是 hello-dubbo-nacos-provider-api 和 hello-dubbo-nacos-provider-service,前者用于定義接口,后者用于實現接口。

服務提供者接口模塊

在服務提供者項目下創建一個名為 hello-dubbo-nacos-provider-api 的模塊, 該項目模塊只負責 定義接口

POM

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.antoniopeng</groupId> <artifactId>hello-dubbo-nacos-provider</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>hello-dubbo-nacos-provider-api</artifactId> <packaging>jar</packaging></project>

定義一個接口

public interface EchoService { String echo(String string);}

服務提供者接口實現模塊

創建名為 hello-dubbo-nacos-provider-service 服務提供者接口的實現模塊,用于實現在接口模塊中定義的接口。

引入依賴

在 pom.xml 中主要添加以下依賴

<!-- Nacos And Dubbo--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-serialization-kryo</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>com.alibaba.spring</groupId><artifactId>spring-context-support</artifactId></dependency><!-- 依賴接口模塊,用于實現接口 --><dependency><groupId>com.antoniopeng</groupId><artifactId>hello-dubbo-nacos-provider-api</artifactId><version>${project.parent.version}</version></dependency>

相關配置

在 application.yml 中加入相關配置

spring: application: name: dubbo-nacos-provider main: allow-bean-definition-overriding: truedubbo: scan: # 接口掃描路徑 base-packages: com.antoniopeng.hello.dubbo.nacos.provider.service protocol: name: dubbo # -1 代表自動分配端口 port: -1 # 配置高速序列化規則 serialization: kryo registry: # 服務注冊地址,也就是 Nacos 的服務器地址 address: nacos://192.168.127.132:8848 provider: # 配置負載均衡策略(輪詢) loadbalance: roundrobin

附:Duubo 負載均衡策略

random:隨機 roundrobin:輪詢 leastactive:最少活躍數 consistenthash:一致性 Hash

實現接口

通過 org.apache.dubbo.config.annotation 包下的 @Service 注解將接口暴露出去

import com.antoniopeng.hello.dubbo.nacos.provider.api.EchoService;import org.apache.dubbo.config.annotation.Service;@Service(version = '1.0.0')public class EchoServiceImpl implements EchoService { @Override public String echo(String string) { return 'Echo Hello Dubbo ' + string; }}

注意:@Service 注解要注明 version 屬性

驗證是否成功

啟動項目,通過瀏覽器訪問Nacos Server 網址 http://192.168.127.132:8848/nacos ,會發現有一個服務已經注冊在服務列表中。

服務消費者

創建一個名為 hello-dubbo-nacos-consumer 的服務消費者項目

引入依賴

同樣在 pom.xml中添加以下主要依賴

<!-- Nacos And Dubbo --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-serialization-kryo</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-actuator</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId></dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId></dependency><dependency><groupId>com.alibaba.spring</groupId><artifactId>spring-context-support</artifactId></dependency><!-- 依賴服務提供者接口模塊,用于調用接口 --><dependency><groupId>com.antoniopeng</groupId><artifactId>hello-dubbo-nacos-provider-api</artifactId><version>${project.parent.version}</version></dependency>

相關配置

在 application.yml 中添加以下配置

spring: application: name: dubbo-nacos-consumer main: allow-bean-definition-overriding: truedubbo: scan: # 配置 Controller 掃描路徑 base-packages: com.antoniopeng.dubbo.nacos.consumer.controller protocol: name: dubbo port: -1 registry: address: nacos://192.168.127.132:8848server: port: 8080# 服務監控檢查endpoints: dubbo: enabled: truemanagement: health: dubbo: status: defaults: memory extras: threadpool endpoints: web: exposure: include: '*'

Controller

通過 org.apache.dubbo.config.annotation 包下的 @Reference 注解以 RPC 通信的方式調用服務,而對外提供以 HTTP 通信的方式的 Restful API

import com.antoniopeng.dubbo.nacos.provider.api.EchoService;import org.apache.dubbo.config.annotation.Reference;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class EchoController { @Reference(version = '1.0.0') private EchoService echoService; @GetMapping(value = '/echo/{string}') public String echo(@PathVariable String string) { return echoService.echo(string); }}

驗證是否成功

通過瀏覽器訪問 Nacos Server 網址 http:192.168.127.132:8848/nacos ,會發現又多了一個服務在服務列表中。

然后再訪問服務消費者對外提供的 RESTful API http://localhost:8080/echo/hi,瀏覽器會響應以下內容:

Echo Hello Dubbo hi

到此,實現了 Nacos 與 Dubbo 的融合。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 大倾角皮带机-皮带输送机-螺旋输送机-矿用皮带输送机价格厂家-河南坤威机械 | 一氧化氮泄露报警器,二甲苯浓度超标报警器-郑州汇瑞埔电子技术有限公司 | 上海防爆真空干燥箱-上海防爆冷库-上海防爆冷柜?-上海浦下防爆设备厂家? | 成都思迪机电技术研究所-四川成都思迪编码器 | 环球周刊网| 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 福尔卡(北京)新型材料技术股份有限公司 | 企业管理培训,企业培训公开课,企业内训课程,企业培训师 - 名课堂企业管理培训网 | 涂层测厚仪_光泽度仪_uv能量计_紫外辐照计_太阳膜测试仪_透光率仪-林上科技 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 玻璃钢型材_拉挤模具_玻璃钢拉挤设备——滑县康百思 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 泰来华顿液氮罐,美国MVE液氮罐,自增压液氮罐,定制液氮生物容器,进口杜瓦瓶-上海京灿精密机械有限公司 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 睿婕轻钢别墅_钢结构别墅_厂家设计施工报价 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 奥运星-汽车性能网评-提供个性化汽车资讯| 螺旋丝杆升降机-SWL蜗轮-滚珠丝杆升降机厂家-山东明泰传动机械有限公司 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 撕碎机,撕破机,双轴破碎机-大件垃圾破碎机厂家 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 成都中天自动化控制技术有限公司 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 |