网站首页 > 博客文章 正文
1、什么是Dubbo
Dubbo 是一款高性能、轻量级的开源 RPC 框架,提供服务自动注册、自动发现等高效服务治理方案, 可以和 Spring 框架无缝集成。
2、Dubbo依赖关系
1、服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
2、注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
3、监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
3、暴露服务
首先 ServiceConfig 类拿到对外提供服务的实际类 ref(如:HelloWorldImpl),然后通过 ProxyFactory 类的 getInvoker 方法使用 ref 生成一个 AbstractProxyInvoker 实例,到这一步就完成具体服务到 Invoker 的转化。接下来就是 Invoker 转换到 Exporter 的过程。Dubbo 处理服务暴露的关键就在 Invoker 转换到 Exporter 的过程,Dubbo 协议的 Invoker 转为 Exporter 发生在 DubboProtocol 类的 export 方法,它主要是打开 socket 侦听服务,并接收客户端发来的各种请求,通讯细节由 Dubbo 自己实现。
4、消费服务
首先 ReferenceConfig 类的 init 方法调用 Protocol 的 refer 方法生成 Invoker 实例(如上图中的红色部分),这是服务消费的关键。接下来把 Invoker 转换为客户端需要的接口(如:HelloWorld)。
5、Dubbo序列化
专门针对Java语言的:Kryo,FST等等
跨语言的:Protostuff,ProtoBuf,Thrift,Avro,MsgPack、hessian2等等
上述序列化方式的性能多数都显著优于hessian2,所以最好使用其他的序列化
启用Kryo或FST如下
dubbo.protocol.serialization=kryo
6、Dubbo支持协议
Dubbo支持dubbo、rmi、hessian、http、webservice、thrift、redis等多种协议,其默认使用Dubbo协议。
Dubbo协议:
1、dubbo 缺省协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
2、不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。
<!--设置默认协议: -->
<dubbo:provider protocol="dubbo" />
<dubbo:service protocol=" dubbo " />
- 上一篇: 浅谈“模糊理论”(模糊理论的应用领域)
- 下一篇: 性能分析:CPU性能分析法(性能指标cpu)
猜你喜欢
- 2024-09-10 魔兽TBC丨黑暗神殿F4跑路打法推荐 难度保底降低40%值得推荐
- 2024-09-10 Redis bigkey性能问题分析(redis lrange性能)
- 2024-09-10 elasticsearch性能调优方法原理与实战
- 2024-09-10 剖析Elasticsearch的IndexSorting:一种查询性能...
- 2024-09-10 烟膜收缩性能的测试方法与检测仪器
- 2024-09-10 电池储能系统(BESS)能源管理策略与健康评估的深度融合
- 2024-09-10 AI大模型幻觉:减少幻觉常见的几种方法
- 2024-09-10 生活中的电梯和传送带是如何有效控制速度?今天为您解密
- 2024-09-10 性能分析:CPU性能分析法(性能指标cpu)
- 2024-09-10 浅谈“模糊理论”(模糊理论的应用领域)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)