工程概述
Motan框架采用模块化设计,使用按需加载,模块有:spring
- motan-core:motan核心框架
- motan-transport-netty:基于Netty协议的长连接传输协议
- motan-registry-consul:consul服务发现组件
- motan-registry-zookeeper:zk服务发现组件
- motan-springsupport:spring标签解析相关组件
默认配置
protocol协议默认为motan,基于hessian2实现。服务器
负载均衡默认为activeWeight,低并发度优先,refer的某个时刻call的数量越小优先级越高。并发
容错策略默认为failover,失败自动切换,当出现失败,重试其余服务器。 Failfast快速失败,只发起一次调用,失败当即报错。负载均衡
配置服务端工做线程数。 配置客户端为每一个服务创建的链接数。框架
注册中心motan:registry
包含如下属性:模块化
- Name:标识配置名称;
- regProtocol:标识注册中心协议
- Address:标识注册中心地址
服务提供方motan:service
经常使用属性:线程
- Interface:标识服务的接口类名
- Ref:标识服务的实现类,引用具体的spring业务实现对象
- Export:标识服务的暴露方式,格式为“protocolId:port”,其中protocolId:应对motan:protocol中的id
- Group:标识服务的分组
- Module:标识模块信息
- basicService:标识使用基本配置
Motan在注册中心的服务以group形式保存的,通常推荐一个分组以机房+业务线进行命名,如rf-user-rpc。
设计
调用方motan:referer
经常使用属性:netty
- Id:标识配置项
- Group:标识服务分组
- Module:标识模块信息
- protocol:标识referer使用的协议
- registry:标识referer的注册中心
- basicReferer:标识使用的基本配置
优雅停机
Motan支持consul,zk集群环境下优雅关闭节点,当须要关闭或重启节点时,能够先将待上线节点从集群摘除,避免直接关闭影响正常请求。对象
管理后台
后台包括RPC服务查询,流量切换,Motan指令设置等功能,需使用zk做为注册中心。