内容简介:目前常见的web常规的负载均衡大多数是通过nginx的upstream配置将流量转发到内部的服务机上,来分担流量过多的情况,但是这里往往出现的一个问题是,nginx上配置服务器的ip是固定的,如果某台机器出现了服务故障,那么流量有概率会打到这台机器导致出现服务不可访问的故障,这时候往往需要人工介入将故障的节点ip剔除掉,那么有没有好的办法发现故障Ip剔除?可以利用zookeeper的特性来干这个事情的zookeeper是什么?
目前常见的web常规的负载均衡大多数是通过nginx的upstream配置将流量转发到内部的服务机上,来分担流量过多的情况,但是这里往往出现的一个问题是,nginx上配置服务器的ip是固定的,如果某台机器出现了服务故障,那么流量有概率会打到这台机器导致出现服务不可访问的故障,这时候往往需要人工介入将故障的节点ip剔除掉,那么有没有好的办法发现故障Ip剔除?可以利用zookeeper的特性来干这个事情的
zookeeper是什么?
Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统,目前是基于这个思路去考虑的。大体的结构图:
具体思路
看到上面的树状结构大家应该想到了点上面东西了吧!那么服务自动发现具体可以这么做呢,这么利用zookeeper的这个特性去实现服务自动注册、故障剔除的原理呢!下面都是基于golang的一些特性去讲解。
1)实现一个golang版本的路由层,然后在nginx=》upstream服务器之间加一层路由服务层,这个路由服务层就是用来维护所有服务的路由表。然后再通过路由层找到相对应服务的IP,最后通过rpc协议去调用某个具体的服务器
2)实现一个golang版本的微服务,每个微服务启动的时候往zookeeper里面去注册自己属于哪个路由的,这里只要实现具体的业务逻辑即可。。
下面是一个整体的架构与微服务之间的表现:
zookeeper的树状结构:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 结合Ribbon实现的微服务自动故障剔除
- 游戏中遮挡剔除方案总结
- 通过剔除上下文依赖减弱封装的耦合性
- OpenGL 优化项之面剔除和注意点
- 服务端指南 服务端概述 | 微服务架构概述
- 微服务化之服务拆分与服务发现
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人人都在晒,凭什么你出彩
【美】奥斯丁•克莱恩 / 张舜芬、徐立妍 / 北京联合出版公司 / 2015-4 / 38.00
1. 《纽约时报》、亚马逊畅销书排名第1位、好评如潮的创意营销书。《出版人周刊》称其在社交网络时代“在安全范围内提供了实用的自我营销策略”。 2. TED演讲者创意分享:晒对了,全世界都为你点赞:别人在朋友圈、微博晒自拍、晒孩子、晒吃喝,你来晒创意、晒灵感、晒工作、晒收获,发出自己的声音,找到伙伴,机会也会主动找上门! 3. 10堂创意课+手绘涂鸦,所有人都能轻松读完、迅速学会的创意小......一起来看看 《人人都在晒,凭什么你出彩》 这本书的介绍吧!