一.Dubbo一般使用什么注册中心?还有别的选择吗?
Dubbo一般使用的注册中心是Zookeeper。Zookeeper是一个开源的分布式服务框架,主要用于解决分布式应用场景中存在的一些问题,如统一命名服务、状态同步服务、集群管理等。在Dubbo中,Zookeeper可以作为服务注册和发现的中心,具有工业强度较高和可用于生产环境的特点。
除了Zookeeper,Dubbo还提供了其他的注册中心选择。例如,Dubbo本身也提供了一个简单的注册中心实现,即Simple注册中心。这种注册中心主要用于学习和测试环境,不建议在生产环境使用。
另外,Redis也可以作为Dubbo的注册中心,但由于Redis的数据结构以及Dubbo在Redis上的实现较为简单,一般并不推荐使用Redis作为生产环境的注册中心。
二.Dubbo默认使用什么序列化框架?都有哪些?
Dubbo默认使用的序列化框架是Hessian 2.0。Hessian是一种基于HTTP的轻量级remoting onhttp工具,使用简单的方法提供了RMI的功能。Dubbo通过Hessian序列化完成RPC通信,Hessian数据紧凑,可读性好,可用于跨语言通信。
- Java默认序列化:Dubbo也支持使用Java默认的序列化方式,即使用java.io.Serializable接口进行序列化和反序列化。然而,这种方式的效率相对较低,而且对对象的定义和结构比较敏感。
- JSON:Dubbo支持使用JSON进行序列化和反序列化。JSON是一种常见的文本格式,易于理解和处理。Dubbo使用了一些JSON库(如Jackson、Fastjson等)来实现对象和JSON之间的转换。
- Protobuf:Dubbo还支持使用Google的Protobuf(Protocol Buffers)进行序列化和反序列化。Protobuf是一种语言无关、平台无关、可扩展的序列化框架,它具有高效、紧凑的特点,并支持版本兼容性和跨语言互操作性。
- Kryo:Kryo是一个高性能的Java对象序列化框架,Dubbo也支持使用Kryo进行序列化和反序列化。