1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

[feat]Dubbo 常见问题完善

This commit is contained in:
guide 2021-03-28 09:37:53 +08:00
parent ac0383a3db
commit e2761e098b

View File

@ -207,6 +207,10 @@ src
xxx=com.xxx.XxxLoadBalance xxx=com.xxx.XxxLoadBalance
``` ```
其他还有很多可供扩展的选择,你可以在[官方文档@SPI扩展实现](https://dubbo.apache.org/zh/docs/v2.7/dev/impls/)这里找到。
![](https://img-blog.csdnimg.cn/20210328091015555.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzM3Mjcy,size_16,color_FFFFFF,t_70)
### Dubbo 的微内核架构了解吗? ### Dubbo 的微内核架构了解吗?
Dubbo 采用 微内核Microkernel + 插件Plugin 模式,简单来说就是微内核架构。微内核只负责组装插件。 Dubbo 采用 微内核Microkernel + 插件Plugin 模式,简单来说就是微内核架构。微内核只负责组装插件。
@ -464,5 +468,34 @@ public class RpcStatus {
Dubbo 中的 `RoundRobinLoadBalance` 的代码实现被修改重建了好几次Dubbo-2.6.5 版本的 `RoundRobinLoadBalance` 为平滑加权轮询算法。 Dubbo 中的 `RoundRobinLoadBalance` 的代码实现被修改重建了好几次Dubbo-2.6.5 版本的 `RoundRobinLoadBalance` 为平滑加权轮询算法。
## Dubbo 序列化协议(代办) ## Dubbo序列化协议
### Dubbo 支持哪些序列化方式呢?
![](https://img-blog.csdnimg.cn/20210328092219640.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzM3Mjcy,size_16,color_FFFFFF,t_70)
Dubbo 支持多种序列化方式JDK自带的序列化、hessian2、JSON、Kryo、FST、ProtostuffProtoBuf等等。
Dubbo 默认使用的序列化方式是 hession2。
### 谈谈你对这些序列化协议了解?
一般我们不会直接使用 JDK 自带的序列化方式。主要原因有两个:
1. **不支持跨语言调用** : 如果调用的是其他语言开发的服务的时候就不支持了。
2. **性能差** :相比于其他序列化框架性能更低,主要原因是序列化之后的字节数组体积较大,导致传输成本加大。
JSON 序列化由于性能问题,我们一般也不会考虑使用。
像 ProtostuffProtoBuf、hessian2这些都是跨语言的序列化方式如果有跨语言需求的话可以考虑使用。
Kryo和FST这两种序列化方式是 Dubbo 后来才引入的,性能非常好。不过,这两者都是专门针对 Java 语言的。Dubbo 官网的一篇文章中提到说推荐使用 Kryo 作为生产环境的序列化方式。(文章地址:[https://dubbo.apache.org/zh/docs/v2.7/user/references/protocol/rest/](https://dubbo.apache.org/zh/docs/v2.7/user/references/protocol/rest/))
![](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2020-8/569e541a-22b2-4846-aa07-0ad479f07440.png)
Dubbo 官方文档中还有一个关于这些[序列化协议的性能对比图](https://dubbo.apache.org/zh/docs/v2.7/user/serialization/#m-zhdocsv27userserialization)可供参考。
![](https://img-blog.csdnimg.cn/20210328093219609.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MzM3Mjcy,size_16,color_FFFFFF,t_70)
##