服务定义:
服务是围绕服务提供方和服务消费方的,服务提供方实现服务,而服务消费方调用服务
服务注册:
对于服务提供方,它需要发布服务,而且由于应用系统的复杂性,服务的数量、类型也不断膨胀
对于服务消费方,它最关心如何获取到它所需要的服务,而面对复杂的应用系统,需要管理大量的服务调用,而且对于服务提供方和服务消费方来说,他们还有可能兼具这两种角色,即既需要提供服务,有需要消费服务
通过将服务统一管理起来,可以有效地优化内部应用对服务发布/使用的流程和管理,服务注册中心可以通过特定协议来完成服务对外的统一,Dubbo提供的注册中心有如下几种类型:
Zookeeper注册中心
Redis注册中心
Multicast注册中心
Simple注册中心
远程通信与信息交换:
远程通信需要指定通信双方所约定的协议,在保证通信双方理解协议语义的基础上,还要保证高效、稳定的消息传输,Dubbo继承了当前主流的网络通信框架,主要包括如下几个:
Netty
Mina
Grizzly
协议支持:
Dubbo支持多种协议,如下所示:
Dubbo协议
Hessian协议
HTTP协议
RMI协议
WebService协议
Thrift协议
Memcached协议
Redis协议
备注:
Netty:
netty-socketio:
netty-socketio是一个开源的socket.io服务器端的一个java的实现,它基于Netty框架,socket.io是一个跨浏览器使用websocket为实时应用提供服务,可以无缝对接前端使用的socketio-client.js
通过netty-socketio,我们可以轻松的实现服务端主动向客户端推送消息的场景,比如说股票价格变化、K线图、消息提醒等,它和websocket有相同的作用,只不过netty-socketio可支持所有的浏览器