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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用

發布時間:2025/3/20 javascript 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天跟大家分享基于Springboot+Dubbo+Nacos 注解方式實現微服務調用的知識。

1 項目結構

|-- spring-boot-dubbo-demo (父級工程) |-- spring-boot-dubbo-base (基礎工程) |-- spring-boot-dubbo-consumer (消費者) |-- spring-boot-dubbo-provider (生產者)

SpringBoot版本:2.2.0

Dubbo版本:2.7.0

Nacos版本:1.1.4

2?啟動Nacos注冊中心

Nacos官方文檔:

https://nacos.io/zh-cn/docs/quick-start.html

默認賬號密碼是nacos

3?搭建項目

Consumer和Provider的Maven依賴如下:

<dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>com.sansgroupId> <artifactId>spring-boot-dubbo-baseartifactId> <version>0.0.1-SNAPSHOTversion> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubbo-spring-boot-starterartifactId> <version>2.7.0version> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubboartifactId> <version>2.7.0version> dependency> <dependency> <groupId>org.apache.dubbogroupId> <artifactId>dubbo-registry-nacosartifactId> <version>2.7.1version> dependency> <dependency> <groupId>com.alibaba.nacosgroupId> <artifactId>nacos-clientartifactId> <version>1.0.0version> dependency>dependencies>

Consumer配置如下:

# 配置端口server: port: 8862dubbo: # 配置服務信息 application: name: dubbo-consumer # 禁用QOS同一臺機器可能會有端口沖突現象 qos-enable: false qos-accept-foreign-ip: false # 配置注冊中心 registry: address: nacos://127.0.0.1:8848 # 設置超時時間 consumer: timeout: 4000spring: main: # 解決Bean重復定義問題 allow-bean-definition-overriding: true

Provider配置如下:

# 配置端口server: port: 8861dubbo: # 配置服務信息 application: name: dubbo-provider # 禁用QOS同一臺機器可能會有端口沖突現象 qos-enable: false qos-accept-foreign-ip: false # 配置注冊中心 registry: address: nacos://127.0.0.1:8848 # 設置協議-協議由提供方指定消費方被動接受 protocol: name: dubbo port: 20880spring: main: # 解決Bean重復定義問題 allow-bean-definition-overriding: true

4?Base工程編寫

編寫DTO

/** * RPC接口DTO * 注意這里要實現序列化接口 * @Author Sans * @CreateTime 2019/11/6 23:04 */@Datapublic class ProviderTestDTO implements Serializable { // ID private int id; // 名字 private String name; // 序號 private Integer number;}

編寫Serivce

/** * RPC接口 * @Author Sans * @CreateTime 2019/11/6 23:03 */public interface IProviderService { List queryList();}

編寫返回結果類

/** * 返回結果類 * 這里采用構建者模式構建 * 優點:1.私有化構造器訪問范圍小 2.參數可靈活設置便于管理 * @Author Sans * @CreateTime 2019/11/7 18:59 */@Getterpublic class ResultVO<T> implements Serializable { /** * 返回碼 */ private int code; /** * 返回信息 */ private String message; /** * 返回數據 */ private T data; /** 私有化構造器 **/ private ResultVO() {} private ResultVO(ResultVO resultVO) { this.code = resultVO.code; this.message = resultVO.message; this.data = resultVO.data; } /** * Build */ public static class Builder<T>{ private ResultVO resultVO; public Builder() { resultVO = new ResultVO<>(); } public Builder code(int code){ resultVO.code = code; return this; } public Builder message(String message){ resultVO.message = message; return this; } public Builder data(T data){ resultVO.data = data; return this; } public ResultVO build(){ return new ResultVO<>(resultVO); } }}

5?Provider工程編寫

在啟動類上面不要忘記加上@EnableDubbo注解

@EnableDubbo //開啟Dubbo的注解支持@SpringBootApplicationpublic class ProviderApplication { public static void main(String[] args) { SpringApplication.run(ProviderApplication.class, args); }}

實現IProviderService接口,注意這里的Serivce引用的是dubbo的包

/** * 生產者Dubbo接口實現 * @Author Sans * @CreateTime 2019/11/6 23:01 */@Servicepublic class ProviderServiceImpl implements IProviderService { @Override public List queryList() { // 初始化數據 ProviderTestDTO testDTO1 = new ProviderTestDTO(); testDTO1.setId(1); testDTO1.setName("學生"); testDTO1.setNumber(100); ProviderTestDTO testDTO2 = new ProviderTestDTO(); testDTO2.setId(2); testDTO2.setName("教師"); testDTO2.setNumber(101); // 組裝數據 Listlist = new ArrayList<>(); list.add(testDTO1); list.add(testDTO2); return list; }}

6?Consumer工程編寫

和Provider工程的啟動類一樣,加上@EnableDubbo注解

@EnableDubbo //開啟dubbo的注解支持@SpringBootApplicationpublic class ConsumerApplication { public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); }}

編寫測試接口

/** * 消費測試接口 * @Author Sans * @CreateTime 2019/11/6 23:09 */@RestController@RequestMapping("/consumer")public class ConsumerController { // Dubbo遠程調用注解 @Reference private IProviderService providerService; @RequestMapping(value = "/list",method = RequestMethod.GET) public ResultVO getList(){ // 遠程調用 List providerTestDTOList = providerService.queryList(); return new ResultVO.Builder<>().code(200).message("success").data(providerTestDTOList).build(); }}

7?測試

啟動Provider工程和Consumer工程,這個時候Nacos會有對應的服務

使用Postman訪問Consumer測試接口

8?項目源碼

碼云:https://gitee.com/liselotte/spring-boot-dubbo-demoGitHub:https://github.com/xuyulong2017/my-java-demo

如有收獲請劃至底部

點擊“在看”支持,謝

關注馬士兵

每天分享技術干貨

點贊是最大的支持?

總結

以上是生活随笔為你收集整理的dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。