• skynet通信模式的思考与扩展


    skynet提供服务的方式是基于harbor间通信来完成,在skynet的配置文件中有一个harbor参数,这个参数我原来以为是用来控制一个master集群可以启动多少个harbor结点的,一次写demo的过程中,发现skynet.send无法调用另一个harbor的服务,总是报告drop message,检查之后才发现是因为它们在config配置里,属于同一个harbor,才明白这个参数是配置harbor id的,这样的设计认为还是有一点问题,如果harbor太多了,可能会忘记现在已经起到了多少个harbor,现在的设计是如果harbor_id冲突,就会以最后起动那个harbor为准

    下图是一个harbor集群,skynet的网络拓扑图,这种拓扑方式的特点是每一个harbor都对应着一台真实的机器,我把它称作实harbor

    image   image

    实harbor可以扩展为虚harbo,这样一个harbor并不与一台真实的机器对应而是每一个harbor就是一个集群中,每一个harbor集群下挂着多个结点,每个结点再提供不同的服务,skynet的特点并不会因为它们起的是同一个harbor而就会提供相同的服务,因为服务的入口点是在config中配置的,下图是虚harbor拓扑图

    image

    master间通信。现在的skynet是在同一个master间通信,可以把它扩展为多个master间通信,有这样一种应用场景,每一个master都专注于提供一类服务,这个服务的完成依赖于其集群中的多个harbor完成,这个时候一个master有需要调用另外一个master提供的服务

    上面只是一些对skynet的想法,具体实现以后再上代码吧

  • 相关阅读:
    黑苹果崩溃恢复
    黑苹果声音小解决方法
    idea plugin 进度条
    phpstorm 插件
    awesome mac
    webstorm vue eslint 自动修正配置
    Laravel/php 一些调试技巧
    php ZipArchive 压缩整个文件夹
    laravel 模型事件 updated 触发条件
    php 开启 opcache 之后 require、include 还会每次都重新加载文件吗?
  • 原文地址:https://www.cnblogs.com/BlankEye/p/2834998.html
Copyright © 2020-2023  润新知