CS 架构
ContextService架构#
水平划分#
从水平上划分为三个模块:Restful,Scheduler,Service
Restful职责:#
将请求封装为httpjob提交到SchedulerScheduler职责:#
通过httpjob的protocol的ServiceName找到相应的服务执行这个jobService职责:#
真正执行请求逻辑的模块,封装ResponseProtocol,并唤醒Restful中wait的线程垂直划分#
从垂直上划分为4个模块:Listener,History,ContextId,Context:
Listener职责:#
负责Client端的注册和绑定(写入数据库和在CallbackEngine中进行注册)
心跳接口,通过CallbackEngine返回Array[ListenerCallback]
History职责:#
创建和移除history,操作Persistence进行DB持久化
ContextId职责:#
主要是对接Persistence进行ContextId的创建,更新移除等操作
Context职责:#
对于移除,reset等方法,先操作Persistence进行DB持久化,并更新ContextCache
封装查询condition去ContextSearch模块获取相应的ContextKeyValue数据
请求访问步骤如下图:

UML类图#

Scheduler线程模型#
需要保证Restful的线程池不被填满

时序图如下:
