grpc服务发现注册中心负载均衡的实现的几点思考

  • Post author:
  • Post category:其他


grpc是不具有注册和发现以及负载均衡的功能的,所有我们要自己实现

1.服务的注册和发现得用一致性工具zookeeper,这样实现一个注册中心,然后当每个节点被上线时候首先需要向注册中心注册服务,当下线时候也对应的会取消服务。

2.至于负载均衡,常见的有三种实现方式:

我们已知,分布式的结构中有服务提供者,消费者,注册中心,负载均衡等几个角色

第一种方式是把负载均衡单独成为一个模块,如传统的用negix双热备这位总的接口,接收消费者的所有api服务调用,这样会产生若负载均衡模块崩溃,就会出现整个系统的崩溃;

这样就有了第二种,把负载均衡放在消费者里,减少服务器压力,效率方面忽略不计,这样就又会有一个问题,不同服务可能用不同的语言平台实现,那么每一个服务都得实现一套负载均衡算法,这样代码开发困难。

这样就有了第三种,将负载均衡作为一个exe调用,客户消费者直接调用这个exe

常见的负载均衡算法有如下几种,随机选取服务,轮训选取,权重选取(根据位置距离等),一致性哈希这四种

3.这样两个重要的组件就生成了,我们还可以用这两个组件进行扩展,我们可以在这基础上加上熔断机制,可以在这个服务所分配好的服务器请求5次后扔不能收到结果,就进行熔断服务器,在注册中心删除这个服务节点;

4.在注册中心注册的过程中,也可以加上分组,如AB地区机房,这样更方便管理

grpc,由于平台中立,语言中立,所以真的十分适合在不同平台不同语言所部署的分布式架构

这就是从7.5号到现在7.14所理解感受到的grpc的分布式架构的一个实现方法



版权声明:本文为weixin_41222119原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。