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

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

内容简介:目前常见的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实现分布式服务故障自动剔除/服务自动注册的思路


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

查看所有标签

猜你喜欢:

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

HTML5移动Web开发指南

HTML5移动Web开发指南

唐俊开 / 电子工业出版社 / 2012-3-1 / 59.00元

HTML5移动Web开发指南,ISBN:9787121160837,作者:唐俊开 著一起来看看 《HTML5移动Web开发指南》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具