《Dubbo 源码解读与实战》笔记
开篇词 深入掌握 Dubbo 原理与实现,提升你的职场竞争力
Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:
- 面向接口的远程方法调用;
- 可靠、智能的容错和负载均衡;
- 服务自动注册和发现能力。
Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。
...大约 21 分钟
Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:
Dubbo 是一个分布式服务框架,致力于提供高性能、透明化的 RPC 远程服务调用方案以及服务治理方案,以帮助我们解决微服务架构落地时的问题。
broker
:broker 模块(broker 启动进程) 。client
:消息客户端,包含生产者、消息消费者相关类。common
:公共包。dev
:开发者信息(非源代码) 。distribution
:部署实例文件夹(非源代码) 。example
:RocketMQ 示例代码。filter
:消息过滤相关基础类。filter
:消息过滤服务器实现相关类(Filter 启动进程) 。logappender
:日志实现相关类。namesrv
:N ameServer 实现相关类(Names 巳 rver 启动进程) 。openmessaging
:消息开放标准,正在制定中。remoting
:远程通信模块,基于 Netty 。srvutil
:服务器工具类。store
:消息存储实现相关类。style
:checkstyle 相关实现。test
:测试相关类。tools
:工具类,监控命令相关实现类。从功能上讲,Kafka 源码分为四大模块。
为什么要学习 RPC
RPC 不仅是微服务的架构基础,实际上,只要涉及网络通信,就可能用到 RPC。
例 1:大型分布式应用系统可能会依赖消息队列、分布式缓存、分布式数据库以及统一配置中心等,应用程序与依赖的这些中间件之间都可以通过 RPC 进行通信。比如 etcd,它作为一个统一的配置服务,客户端就是通过 gRPC 框架与服务端进行通信的。
例 2:我们经常会谈到的容器编排引擎 Kubernetes,它本身就是分布式的,Kubernetes 的 kube-apiserver 与整个分布式集群中的每个组件间的通讯,都是通过 gRPC 框架进行的。
消息队列的应用