过滤器和invoker
2016-08-25 17:17:39 0 举报
过滤器(Filter)和调用者(Invoker)是软件设计模式中的两个重要概念。过滤器负责对数据进行预处理或后处理,以实现特定功能。而调用者则负责调用过滤器或其他组件完成特定任务。在实际应用中,过滤器通常用于实现日志记录、权限控制等功能,而调用者则可以是一个用户界面、一个服务或一个控制器等。通过使用过滤器和调用者,开发人员可以更好地组织和管理代码,提高代码的可读性和可维护性。同时,这种设计模式也有助于实现代码的复用和扩展。总之,过滤器和调用者是软件设计中不可或缺的两个重要组成部分,它们共同为实现灵活、高效的软件开发提供了有力支持。
作者其他创作
大纲/内容
DataCollectionFilter
monitorService 数据收集
collectgetOrder 1900
AbstractInvokerProvider
getInvokers
一个协议(etcd协议可能有多个提供者)对应一个或多个invoker原则上可能是一对多,同一个协议可以有多个机器发布了该服务实际上是一对一
ClusterInvokerFactory
Router 路由规则
getInvokersroute
所有filter执行完后 会执行主流程由于采用异步contnuation所有这些filter在请求开始 请求结束都会执行一次
AbstractInvokerFactory
service.isForceMock 是否需要降级
Filter
invoke
LogFilter
日志收集
invokeloggetOrder 1999
MockInvoker
AbstractHaInvoker
LoadBalancedefaultLoadBalance
invokeselect 目前采用随机路由
FailoverInvoker
失败重试
Invocation
serviceInfoinvokerclusterInfoprotocolprocessInfomethodargTypesargs startTimeendTimeproviderElapsed
Invoker
invoke(invocation)
ProtocolProcessor
FlowControllerFilter
monitorService 流控 主要检查当前qps是否到达上限
getOrder 1700
SortableFilter
getOrder() 优先级大的先进行
AbstractInvoker
+ attribute1:type = defaultValue+ attribute2:type- attribute3:type
HA 策略 可以添加各种策略
NullMockInvoker
返回null
AdapterInvoker
protocolProcessorclusterInfoprotocolserviceInfo
invoker包括:failover mock
ValidatorFilter
参数校验
invokevalidate
InvokerFactory
负载均衡 高可用都在这里实现1.是否mock 服务降级2.根据service,获取实际提供者,并创建对应的invokers3.路由 选择一个invoker4.根据ha策略选择invoker,默认是failoverinvoker,还会路由一次
ClusterInvokerProvider
clusterPriorityMapenvPriorityMapprotocolPriorityMapregistryService
getInvokers根据processor创建AdapterInvoker
Anonymous Invoker
匿名invoker 调用process匿名invoker 每个filter都生成一个
LoadBalance
select(List invokers)
RandomLoadBalance
随机路由
doSelect
InvokerProvider
getInvokers(ServiceInfo serviceInfo)
MiAuthorizingFilter
dataCache 用户权限校验developerBiz
getOrder 1800
0 条评论
下一页