MOOON-scheduler核心设计图(初稿)
2012-07-24 16:19
274 查看
按以下思路进行设计,非最终设计图,有等进一步思考,以发现问题,需要达到以下目的:同时支持线程和进程模式(做了抽象)
Service不和线程绑定
Service独占线程池或进程(进程下再划分线程池)
Session和线程绑定,不跨线程
Service下可以有0到多个Session
一个Session可以0到多个
子 Session,不限制层级
子Session和父Session由同一个线程调度
Service的ID从0开始的无符号32位整数
Session的ID从1
开始的无符号32位整数,0被Service占用,以简化程序设计(在后续会讲到原因)
在进程模型,CKernelThread和CServiceThread个数是相等的,而且线程是一对一的。CServieProcess会fork出一个进程,这个进程会创建CServicePool,CServiceThread阻塞同步的接收CProcessMessageBridge发过来的消息,然后处理,直接到处理完后CKernelThread才会去处理下一个消息。但在这过程中,CService和CSession可以输出需要发送到其它Service或节点的消息,CProcessMessageBridge会做相应的处理。
Service不和线程绑定
Service独占线程池或进程(进程下再划分线程池)
Session和线程绑定,不跨线程
Service下可以有0到多个Session
一个Session可以0到多个
子 Session,不限制层级
子Session和父Session由同一个线程调度
Service的ID从0开始的无符号32位整数
Session的ID从1
开始的无符号32位整数,0被Service占用,以简化程序设计(在后续会讲到原因)
在进程模型,CKernelThread和CServiceThread个数是相等的,而且线程是一对一的。CServieProcess会fork出一个进程,这个进程会创建CServicePool,CServiceThread阻塞同步的接收CProcessMessageBridge发过来的消息,然后处理,直接到处理完后CKernelThread才会去处理下一个消息。但在这过程中,CService和CSession可以输出需要发送到其它Service或节点的消息,CProcessMessageBridge会做相应的处理。
相关文章推荐
- MOOON-scheduler核心设计图(初稿)
- mooon-agent核心设计图
- mooon-agent核心设计图
- MOOON-scheduler设计图更新
- mooon-agent核心设计图
- MOOON-scheduler问题讨论:消息如何传递回去和主动发送出去?
- Linux核心调度器之周期性调度器scheduler_tick--Linux进程的管理与调度(十八)
- MOOON-scheduler问题讨论:消息如何传递回去和主动发送出去?
- Quartz使用(2) - Quartz核心接口Scheduler、Job
- ASP.NET 3.5核心编程学习笔记(18):数据绑定表达式
- 互联网产品设计的核心要素
- JSTL 核心标签库 使用
- Angular 核心概念2
- Javaweb核心之el&jstl
- C/C++ 核心之一 指针与数组
- 第二代支付系统商业银行行内接入系统总体设计(初稿)
- java核心技术记要——BLOB读写
- ios开发核心动画五:图标抖动效果--CAKeyframeAnimation
- Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构核心技术
- OAuth接口说明及OAuth 核心1.0 中文翻译版