分布式水平扩展是什么样的结构,zookeeper等到底是如何治理服务的?
我知道单一应用项目做分布式,做水平扩展,就是直接复制项目实例,用一定的负载分发机制代理请求,比如用nginx+多台tomcat的形式,每台tomcat部署相同的项目,使用redis管理session,保证session的一致性。
但是现在单一应用慢慢无法满足项目的需求,缺点这里就不介绍了,于是有了微服务架构,有了rpc,resful等soa的方式,如将单一应用拆分为多个服务,使用dubbo +zookeeper 的方式进行管理。
我的问题是,无论是dubbo还是motan这类rpc框架,都能将单个服务注册到多个zookeeper实例上,如下:
<motan:registry regProtocol="zookeeper" name="my_zookeeper"
address="127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183"/>
<motan:service interface="quickstart.FooService" ref="serviceImpl"
registry="my_zookeeper" export="8002" />
那么这样就算水平扩展了吗?只用扩展多个zookeeper实例?还是服务也要构建多个实例?相同服务注册到zookeeper是否只不能重复?具体结构是怎么样的?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
服务的高可用是通过zk来协调的; zk本身也需要高可用。