Golang分布式设计模式之-----星型拓扑分形设计
来源:互联网 发布:淘宝女装轮播图片 编辑:程序博客网 时间:2024/06/05 15:54
Golang分布式设计模式之-----星型拓扑分形设计
上一篇分层设计中,利用了简单的流水线原理,实现了简单的状态转移的设计。如下
这一篇我们将考虑另外一种情况。例如,linux内核中的进程管理。所有的进程都有一个父进程。当子进程正常运行时候,与父进程基本无通信。但当子进程死亡时,要通知其父进程,让父进程进行资源回收。当父进程死亡时,两种情况,子进程随着父进程一起死亡,或者将子进程交由父进程的父进程管理。类似于下图
其中每个进程都有自己的父进程,也有可能会有自己的子进程。
在这种管理中,父子关系,或者说是管理者与被管理者的关系。被管理者,可以独自运行,但要将其的一些状态告知管理者,或者管理者,可以定期获取被管理者的状态。
下面以一个p2p下载器为例:
一、职能划分,形成管理者与被管理者
1)下载任务管理器。(用于添加,删除任务,以及控制任务下载速度等一些策略管理)
2)下载任务模块。(用于具体的单个任务下载,可以控制peer)
3)对等peer模块。(对等交互peer通信,数据交互)
在这里有两个星型拓扑模型。
1)下载任务管理器,为管理者,控制任务的添加,删除等。下载任务模块,为被管理者,用于具体某个任务的下载。
下载管理器,可以实时控制下载模块,下载模块,下载速度,下载完成等状态要向下载管理上报。
2)下载任务模块,为管理者,控制对等peer获取,创建等。对等peer模块,为被管理者,用于具体的通信,数据交互等。
其两个星型结构,组成了一个星型的分形结构
二、接口的定义
1)管理者,定义一个管理者的interface,用于传递给被管理者。
2)被管理者,定义个状态interface,用于管理者获取、控制被管理者的状态。
三、运行
1、管理者初始化,并运行
2、添加被管理者。
添加时候,将管理设接口传递到被管理者。
星型拓扑分形设计,可以归属于一种,基于职能管理划分的系统。各个职能独立,并通过接口,进行弱通信,实现了上报、管理等行为。但各个职能却又能实现松散耦合。
浩 初稿
qq 29185807
2014年8月22日
- Golang分布式设计模式之-----星型拓扑分形设计
- Golang分布式设计模式之-----分层设计
- golang设计模式之简单工厂模式
- golang设计模式之工厂方法模式
- golang设计模式之建造者模式
- Golang设计模式之单例模式
- Golang设计模式之外观模式
- Golang设计模式之装饰模式
- Golang设计模式之代理模式
- Golang设计模式之观察者模式
- GOlang设计模式
- Golang设计模式-创建型-简单工厂
- Golang设计模式-创建型-工厂方法
- Golang设计模式-创建型-抽象工厂
- 大话设计模式 -- Golang实现
- ---------------------------------设计模式分割线----------------------------------------------------
- 设计模式之观察者模式,C++实现(上部分)
- 设计模式之观察者模式,C++实现(下部分)
- Ajax,动态工具提示框
- poj 1062昂贵的聘礼
- J2EE的13个规范总结
- 合作版机房收费系统(一)-SVN中的常见错误
- Eclipse 快捷键记录
- Golang分布式设计模式之-----星型拓扑分形设计
- Reverse Words in a String
- MFC 创建主窗口为非模态窗口
- Interpolation and Extrapolation(內插與外插)
- 关于进程和子进程和线程会不会成为僵尸进程的问题
- C++虚表解释
- 周末阅读(2)
- 类的分写与多层次架构程序的注意事项
- Lession 27 函数模板