Dubbo
简介
Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
RPC:远程调用
REST与RPC比较
REST | RPC | |
---|---|---|
通信协议 | http | 一般使用TCP |
性能 | 较低 | 高 |
灵活性 | 高 | 低 |
- RPC的接口调用更像是本地的类调用
- 同一个微服务内部使用RPC,外部使用REST
节点角色
用途 | 服务选择 | |
---|---|---|
Registry | 服务注册中心,服务注册与发现 | Zookeeper,Multicast,Nacos |
Provider | 生产者,服务的提供方 | |
Consumer | 消费者,服务的调用者 | |
Monitor | 服务监控中心,统计服务调用间的日志服务 | |
Admnin | 服务测试,服务治理(路由,黑白名单,负载均衡) |
项目说明
版本
Spring-boot 2.1.0
Dubbo 2.7.3
Dubbo Admin 0.2.0
模块
模块 | 用途 |
---|---|
dubbo-demo-interface | 生产者和消费者共用的接口定义 |
dubbo-demo-provider | 服务生产者 |
dubbo-demo-consumer | 服务消费者 |
简述
生产者,消费者都可以启动多个实例,通过ZK将其组织在一起(集群数据存储),Dubbo对服务间的点对点调用进行协调
服务化最佳实践
https://dubbo.apache.org/zh-cn/docs/user/best-practice.html
服务治理文档
https://dubbo.apache.org/zh-cn/docs/admin/serviceGovernance.html
项目启动过程
- zookeeper启动,并配置到配置文件中
- 启动Provider
- 启动Admin,浏览器访问,可以看到注册的服务
- 启动Consumer,浏览器访问,触发服务调用