利用zookeeper实现分布式服务故障自动剔除/服务自动注册的思路

栏目: 编程工具 · 发布时间: 5年前

内容简介:目前常见的web常规的负载均衡大多数是通过nginx的upstream配置将流量转发到内部的服务机上,来分担流量过多的情况,但是这里往往出现的一个问题是,nginx上配置服务器的ip是固定的,如果某台机器出现了服务故障,那么流量有概率会打到这台机器导致出现服务不可访问的故障,这时候往往需要人工介入将故障的节点ip剔除掉,那么有没有好的办法发现故障Ip剔除?可以利用zookeeper的特性来干这个事情的zookeeper是什么?

目前常见的web常规的负载均衡大多数是通过nginx的upstream配置将流量转发到内部的服务机上,来分担流量过多的情况,但是这里往往出现的一个问题是,nginx上配置服务器的ip是固定的,如果某台机器出现了服务故障,那么流量有概率会打到这台机器导致出现服务不可访问的故障,这时候往往需要人工介入将故障的节点ip剔除掉,那么有没有好的办法发现故障Ip剔除?可以利用zookeeper的特性来干这个事情的

zookeeper是什么?

Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统,目前是基于这个思路去考虑的。大体的结构图:

利用zookeeper实现分布式服务故障自动剔除/服务自动注册的思路

具体思路

看到上面的树状结构大家应该想到了点上面东西了吧!那么服务自动发现具体可以这么做呢,这么利用zookeeper的这个特性去实现服务自动注册、故障剔除的原理呢!下面都是基于golang的一些特性去讲解。

1)实现一个golang版本的路由层,然后在nginx=》upstream服务器之间加一层路由服务层,这个路由服务层就是用来维护所有服务的路由表。然后再通过路由层找到相对应服务的IP,最后通过rpc协议去调用某个具体的服务器

2)实现一个golang版本的微服务,每个微服务启动的时候往zookeeper里面去注册自己属于哪个路由的,这里只要实现具体的业务逻辑即可。。

下面是一个整体的架构与微服务之间的表现:

利用zookeeper实现分布式服务故障自动剔除/服务自动注册的思路

zookeeper的树状结构:

利用zookeeper实现分布式服务故障自动剔除/服务自动注册的思路


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程珠玑(英文版・第2版)

编程珠玑(英文版・第2版)

[美] Jon Bentley / 人民邮电出版社 / 2010-8 / 39.00元

多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”。这些文章是《ACM通讯》最受欢迎的专栏文章,最终结集为两部书出版。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。 在书中,作者选取许......一起来看看 《编程珠玑(英文版・第2版)》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

MD5 加密
MD5 加密

MD5 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换