motan(RPC)系统梳理知识点
异常分类:
- 业务异常(bizException)
- 服务异常(serviceException)
- 框架异常(frameworkException)
日志重写
重写日志组件,方便后面业务定制化日志输出,常用的输出格式为:trace, debug, info, warn, error, accesslog, accessprofileLog, accessStatsLog等格式
Switcher
降级开关,可以根据需求对一些服务或者接口做降级处理,目的是保证系统的稳定性
Provider
服务提供者,使用反射获取具体类中的方法,也是服务调用者,保存了服务名和对应服务的关系。
Request
RPC请求,通常为客户端调用服务端时封装的请求
Response
RPC响应,通常为服务端返回调用结果封装类
Endpoint
通常为客户端或者服务端的创建接口
Transport
数据传输层,发送网络请求
Protocol
协议接口,负责点到点的通讯
Exporter
服务暴露接口,意在服务端暴露服务给客户端去发现
Referer
服务引用的接口,客户端去连接服务端使用的接口
Future
异步接口,当需要将请求转为异步时,可以使用此接口提供的类
RpcStats
一般有服务统计和方法统计,来计算次数、耗时
Serialization
序列化接口,提供fastjson、hessian2等序列化协议
Registry
注册中心,包括服务注册和服务发现
服务注册:注册服务和下线服务,检测服务是否可用
服务发现:(取消)订阅服务,参数中都包含通知监听,实现回调接口,方便框架根据行为去做对应的响应操作。
filter
accesslogfilter:打印请求的详细日志信息,包括应用、模块、IP、接口、方法、调用是否成功、耗时等信息,记录到日志中
AccessStatisticFilter:统计单位时间请求总数、慢请求数、业务异常数、其它异常数、平均耗时、业务平均耗时、tps、 max_tps、min_tps、p75、p95、p98、p99等峰值线
ActiveLimitFilter:服务统计和方法统计,限制并发数
SwitcherFilter:降级开关
ThreadProtectedFilter:默认策略当接口线程池占用达到3/4或者空闲小于150时,限制单个方法请求不能超过总线程数的1/2 需要自定义方法并发限制可以通过actives参数配置
ha(高可用)
failover, failback, failfast,failsafe等策略
负载均衡
activeWeight、random、RoundRobin、consistentHash等