Motan是一套高性能,易于使用的RPC框架。提供了服务治理,包括服务节点自动发现,摘除,高可用和负载均衡。Motan具有良好扩展性,主要模块都提供了不同实现,例如多种注册中心,多种rpc协议等。
Motan框架中主要有register,transport,serialize,protocol几个功能,各个模块都支持通过SPI进行扩展。
registry
用来和注册中心交互,包括服务注册,服务订阅,服务变更通知,服务心跳发送等。server端会在系统初始化时通过registry模块注册服务,client端在系统初始化时通过registry模块订阅到服务提供者列表,当server列表变更时由registry模块通知client。
用来进行RPC服务端描述和RPC服务端配置管理,可以添加不同filter来统计并发限制等功能。
将RPC请求中的参数,结果等对象进行序列化和反序列化,进行对象与字节流互相转换,默认使用对java友好的hessian2。
用来进行远程通信,默认使用Netty nio的TCP长链接方式。
Client端使用的模块,cluster是一组可用的server在逻辑上的封装,包含若干可以提供RPC服务的server,实际请求时,会根据不同的高可用和负载均衡策略选择一个可用server发起远程调用。
在进行RPC请求时,client通过代理机制调用cluster模块,cluster根据配置和HA和LoadBalance选出一个可用的server,通过serialize模块把RPC请求转换成字节流,然后通过transport发送到server端。
Motan将功能模块抽象为四个可配置的元素,分别为:
Motan扩展来6个自定义的Spring xml标签: