服务治理之服务管理

如何管理服务


需要考虑的问题:

* 1. 服务信息注册

* 2. 如何保证服务信息一致

服务信息是服务发现很重要的部分,它是包含服务提供者的地址信息和提供服务的接口。 服务信息需要高可用而且随时更新。gateway可以缓存从服务信息。 然而,这些信息最终会变得过时,客户端也无法发现服务实例。 因此,服务信息必须保证是一个一个分布式可用。

目前可以使用的组件有:
etcd

consul

zookeeper

Kubernetes

eureka

最后,根据公司运维等方面考虑选择使用zookeeper

主要实现功能

1. 服务发现

   主动注册和被动注册,我使用的是被动注册,因为调用方和服务方都是PHP,主动注册不方便

2. 服务管理

  由于是被动注册,需要提供一个注册平台,主要提服务注册、授权、地址等信息管理

3. 通信

   异步通信和同步通信,现在只实现同步通信

4. 访问控制

   限制调用放key对服务方QPS、接口、有效时长

5. 数据交换编码

    目前支持http下json、yar-msgpack相互转换

基于zookeeper服务管理的实现


基于zookeeper服务管理的实现图

articles from reage blog -- http://www.ireage.com