
| 節點 | 角色說明 |
| Provid | 暴露服務的服務提供方 |
| Consumer | 調用遠程服務的服務消費方 |
| Registry | 服務注冊與發現的注冊中心 |
| Monitor | 統計服務的調用次數和調用時間的監控中心 |
| Container | 服務運行容器 |
Dubbo涉及版本 2.7.7 ~ 2.7.8
Dubbo怎么去使用
代碼實例地址:
https://gitee.com/public2586/dubbo-client-sample (客戶端)
https://gitee.com/public2586/dubbo-server-sample (服務端)
發布一個dubbo服
發布服務之后,提供一個協議url地址
http:// 服務器的IP:容器的端口/ mapping
dubbo://192.168.1.104:20880/com.bx.dubbo.server.ILoginService
dubbo支持的注冊中心
- consu
- zookeeper
- eureka
- redis
- etcd
- nacos
- ....
Dubbo Spring Cloud
創建一個項目:
代碼實例地址:https://gitee.com/public2586/spring-cloud-dubbo-example
創建一個spring-cloud-dubbo-example的maven工程,分別添加三個模塊
- spring-cloud-dubbo-sample-api
- spring-cloud-dubbo-sample-provider
- spring-cloud-dubbo-sample-consumer
其中后面兩個模塊都是spring boot的應用
修改 spring-cloud-dubbo-sample-provider 這個模塊中
- 將dependencyManagement部分的依賴移動到parent pom.xml
- 修改spring-cloud-dubbo-sample-provider中的pom.xml,增加parent模塊的依賴
<parent>
<groupId>com.bx.dubbo</groupId>
<artifactId>spring-cloud-dubbo-example</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
添加maven依賴
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
<dependency>
<groupId>com.bx.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>spring-cloud-dubbo-sample-api</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
定義服務接口
在spring-boot-dubbo-sample-api模塊中,定義接口
public interface IHelloService { String sayHello(); }
實現服務
在spring-boot-dubbo-sample-provider中,實現IHelloService接口
public class HelloServiceImpl implements IHelloService{ @Override public String sayHello() { return "Hello GuPao"; } }
添加 @EnableDiscoveryClient 注解
@EnableDiscoveryClient @SpringBootApplication public class SpringCloudDubboSampleProviderApplication { public static void main(String[] args) { SpringApplication.run(SpringCloudDubboSampleProviderApplication.class, args); } }
配置dubbo服務發布
在服務實現類中添加 @Service 注解
@Service public class HelloServiceImpl implements IHelloService{ @Override public String sayHello() { return "Hello GuPao"; } }
Dubbo Spring Boot
基於spring boot集成Dubbo方式
代碼實例地址:https://gitee.com/public2586/spring-boot-dubbo-example
創建一個spring-boot-dubbo-example的maven工程,分別添加三個模塊
- spring-boot-dubbo-sample-api[maven]
- spring-boot-dubbo-sample-provider[spring boot]
- spring-boot-dubbo-sample-consumer[spring boot]
添加jar包依賴
從2.7開始,dubbo的版本和dubbo-spring-boot的版本是保持一致的。
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.7.7</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>1.2.1</version> </dependency>
添加服務以及發布
@DubboService public class SayHelloServiceImpl implements ISayHelloService { @Override public String sayHello(String msg) { return "[version1.0]Hello,"+msg+""; } }
spring.application.name=spring-boot-dubbo-sample-provider dubbo.registry.address=nacos://172.16.12.148:8848
dubbo.scan.basepackages=com.bx.springboot.dubbo.springbootdubbosampleprovider.service
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
編寫服務引用代碼
添加jar包依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.bx.springboot.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
<artifactId>spring-boot-dubbo-sample-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.7.7</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>1.2.1</version>
</dependency>
添加web測試
@DubboReference ISayHelloService sayHelloService; @GetMapping("/say") public String say(){ return sayHelloService.sayHello("sayHello"); }
現在人工智能非常火爆,很多朋友都想學,但是一般的教程都是為博碩生准備的,太難看懂了。最近發現了一個非常適合小白入門的教程,不僅通俗易懂而且還很風趣幽默。所以忍不住分享一下給大家
