MichLy

导航

服务动态分配的分布式设计

今天自己脑洞了一种负载均衡的方案,各自处理业务逻辑的服务器不再像以往一样需要部署各自不同的业务服务,而是统一由一个服务器管理调度。也就是说子服务在脱离了调度服务器就是一个空壳,不处理任何逻辑,只有当调度服务器分配指定任务,去资源管理获取相关的资源(有点类似学校学习)之后才能获得该服务的技能。这么设计后,所有子服务器部署着同样的代码,具体的业务逻辑处理都是在运行后才会动态加载和处理。

主要由三部分组成

  1. 调度服务器
  2. 子服务器
  3. 资源服务器
  • 调度服务器

调度服务器主要用来分配子服务器的各自负责的服务。调度服务器还有一个功能是转发客户端请求。在接收到客户端请求后,通过服务映射关系,根据指定规则,动态的转发给指定子服务器

  • 子服务器

子服务器本身没有任何和具体服务相关的业务代码,所有的负责任务,都必须由调度服务器发起,之后再通过调度服务器所分配的钥匙,向资源服务器获取资源,然后才能处理相关服务

  • 资源服务器

资源服务器主要负责保存管理服务所需的相关资源,如class文件等,同时如果想获得资源服务器的相关资源,必须先调度服务器向资源服务器分配钥匙,然后准备完毕后,再由子服务器通过钥匙才能获取相关资源

服务结构


 

 

各服务器所需提供接口

服务流程

只是先脑补了一下大概功能点,代码还没实现,感觉比较庞大,有时间再慢慢实现吧

posted on 2017-07-29 23:03  MichLy  阅读(681)  评论(0编辑  收藏  举报