最先对dubbo的理解还是老王。比如:2个客户端,2个服务端,加一个服务端,你都改配置去吧。
N
dubbo
dubbo就是服务治理框架,有配置更改,多了一个Service.jar,直接注册上去就行了。这个注册和发现机制,应该就是老王的位置-命名服务,就是zookeeper帮助实现的,zk来帮你动态的实现这个。
什么是服务,就是把你的MVC中,某一个service-dao打成一个jar包,单独部署。这就是服务拆分。
JD问,dubbo的协议
是这个吗?
序传交调监路注代配,说整体的设计。
说这个吧
支撑的协议,我们用dubbo协议,rmi协议,thrift协议,然后是底层的编解码,序列化工具传输。协议在Potocol这个层,在信息交换,传输层和序列化层上面的。这几个标蓝的类参考第一个参考文档,都有源码讲解。
注意层次
2:自己实现一个RPC框架不就行了。
一句话:RPC在java里面叫RMI,远程方法调用。就是本地,不知道1+1=2,告知远端1,1返回2。可以socket编程传递参数,解析,(29s中控控制过)。就是跨机器,跨服务的数据交互。
自己就可以实现RPC了,远程关机等功能。但是,如果你来实现一个通用的RPC,这时候,你觉得可以自己写一个servlet了,但是,问题来了。
1:你要自己写网络模型,socket通信,可能负责有限。很多人都问1+1,或者1+2,他累死了。
2:你的通信协议是tcp,但是对方没有tcp,提供了http,比如对方是tomcat应用,甚至https,等自定义的协议。
3:数据传输协议,你socket,定义一个buffer即可,数据组织,xml,json等 序列化。
4:树大了,什么鸟都有,你C++,他们java,跨语言的交换,IDL,接口交换语言。简单的通信协议,高负载,数据压缩,序列化和反序列化。(C++中,buffer,json,xml这些都需要序列化的)
RPC有非死不可的thrift,还有google的protobuf。就是这样!数据传输协议。
thrift 的讲解。
首先还是RPC的,解决不同系统之间的交互问题的。基于xml,json的交互方式,dubbo也是呀。但是,有更NB的。
thrift
thrift
如果不考虑服务注册,去中心化这些。大家直接的系统直接配置RPC,来进行直连。
根据需要了,看你是什么需求,传输一个文件过去?大参数过去?选用你的RPC框架的,不一定非要用dubbo的。Dubbo有自己的协议传输规范,thrift也有自己的。
thrift
VIP对比呀,看dubbo协议的报文 协议大小对比
都是明白人
补充一下老王:
protobuf
thrift