节点 | 角色说明 |
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"); }
现在人工智能非常火爆,很多朋友都想学,但是一般的教程都是为博硕生准备的,太难看懂了。最近发现了一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默。所以忍不住分享一下给大家