分布式服务调用ServiceCaller(1)

ServiceCaller

ServiceCaller是基于Spring和依赖zookeeper托管服务的分布式服务注册和发现模块

功能

  • 服务自动注册和发现
  • 基于hystrix的服务熔断和降级
  • 系统间服务调用
  • 服务监控
  • 网络拓扑(todo)
  • 服务管理,分组,降级等(todo)

服务注册

  1. 通过spring容器获取所有的Controller
  2. 注册Controller到zookeeper的node中,同一服务的多个实例会存放在同一节点
  3. 服务名称默认为"系统name.methodName",group为系统name(系统name为使用时配置在配置文件),可通过@ZeuService.value()自定义服务名称,@ZeuService.group自定义group
  4. zk上的node路径为默认路径,当前配置为/tts/services

服务发现

  1. 通过服务名称获取zookeeper中的服务(http地址等信息)
  2. 通过负载均衡策略返回其中的一个实例

服务调用

  1. 服务调用使用了Hystrix和core包中的http client
  2. 实现Hystrix的run方法实现服务的调用和Hystrix的熔断、降级特性
  3. 服务监控目前是Hystrix的monitor,可自己实现

服务管理

  1. 通过注解@ZeuService或者配置实现服务调用时的分组隔离(灰度与正式环境,暂时未实现)
  2. 可通过接口修改注册在zookeeper上的服务(暂未实现)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容