分享
  1. 首页
  2. 文章

Golang分布式设计模式之-----星型拓扑分形设计

screscent · · 5313 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang分布式设计模式之-----星型拓扑分形设计

上一篇分层设计中,利用了简单的流水线原理,实现了简单的状态转移的设计。

这一篇我们将考虑另外一种情况。例如,linux内核中的进程管理。所有的进程都有一个父进程。当子进程正常运行时候,与父进程基本无通信。但当子进程死亡时,要通知其父进程,让父进程进行资源回收。当父进程死亡时,两种情况,子进程随着父进程一起死亡,或者将子进程交由父进程的父进程管理。

其中每个进程都有自己的父进程,也有可能会有自己的子进程。

在这种管理中,父子关系,或者说是管理者与被管理者的关系。被管理者,可以独自运行,但要将其的一些状态告知管理者,或者管理者,可以定期获取被管理者的状态。

下面以一个p2p下载器为例:

一、职能划分,形成管理者与被管理者

1)下载任务管理器。(用于添加,删除任务,以及控制任务下载速度等一些策略管理)

2)下载任务模块。(用于具体的单个任务下载,可以控制peer)

3)对等peer模块。(对等交互peer通信,数据交互)

在这里有两个星型拓扑模型。

1)下载任务管理器,为管理者,控制任务的添加,删除等。下载任务模块,为被管理者,用于具体某个任务的下载。

下载管理器,可以实时控制下载模块,下载模块,下载速度,下载完成等状态要向下载管理上报。

2)下载任务模块,为管理者,控制对等peer获取,创建等。对等peer模块,为被管理者,用于具体的通信,数据交互等。

其两个星型结构,组成了一个星型的分形结构

二、接口的定义

1)管理者,定义一个管理者的interface,用于传递给被管理者。

2)被管理者,定义个状态interface,用于管理者获取、控制被管理者的状态。

三、运行

1、管理者初始化,并运行

2、添加被管理者。

添加时候,将管理设接口传递到被管理者。

星型拓扑分形设计,可以归属于一种,基于职能管理划分的系统。各个职能独立,并通过接口,进行弱通信,实现了上报、管理等行为。但各个职能却又能实现松散耦合。

浩 初稿

qq 29185807

2014年8月22日


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:screscent

查看原文:Golang分布式设计模式之-----星型拓扑分形设计

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
5313 次点击
2 回复 | 直到 2025年05月15日 09:04:54
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏