agent服务与chat服务以及cti服务
一.服务分布
cc-agent: 维护agent状态
cc-gateway-agent: agent服务的gateway,基于企业,针对不同请求,落地到不同cc-agent服务
cc-gateway-ws: ws请求的gateway,ws响应通知到cc-gateway-agent,再落到具体的cc-agent服务
二.多服务间的leader管理
cc-agent服务
注册管理类-DiscoveryVerticle
监听处理事件-startConsumeDispatchMsg
agent服务实例注册-先initInstancesId 后register
实例存储rediskey描述
服务key标识: cti:service:cti-agent-v3: + 服务自增ID
选举多实例的leader-startLead (带ttl)
实例存储rediskey描述
leader实例key标识: cti:election:cti-agent-v3
选中leader后加载全量实例-getAllSvcInstances,添加实例监听-startWatchAgService
企业分配类-VccDispatchServiceImpl
将企业均有分配到不同实例-checkAllVcc
实例存储rediskey描述
企业对应实例的key标识: cti-v3:vcc_2_instance: + 企业ID
具体企业分配实例实现-dispatchVcc
重新均衡企业分配实例-balance
检查企业分配的状态-checkVccStatus
企业分配实例结果缓存-cacheDispatchResult,同时通过grpc加载企业信息到本实例-loadVcc2Grpc
实例管理-AgInstanceManager
具体实例选哪一个-selectInstance
cc-gateway-agent
配置管理类-AppConfig 基础控件加载-BaseInitVerticle GRPC加载-GrpcServerVerticle 接口注册实现加载-HttpServerVerticle GRP请求调用具体实现-CtiGrpcStubManager 通过redis获取实例 key: cti-v3:vcc_2_instance: + 企业ID