注册中心原理:
注册中心三大角色:
1:服务提供者
2:服务消费者
3:注册中心
注册中心的架构图如下:
注册中心各角色的关系如下:
- 各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。
- 服务消费者从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。
- 各个微服务与(可理解为客户端)注册中心(可理解为服务端)使用一定机制(例如心跳)通信。如果注册中心与某微服务长时间无法通信,就会注销该实例。
- 微服务网络地址发送变化(例如实例增加或IP变动等)时,会重新注册到注册中心。这样,服务消费者就无需人工修改提供者的网络地址了。
ZooKeeper介绍:
ZooKeeper是由雅虎开发并开源的分布式协调服务。ZooKeeper提供了统一命名服务、配置管理、分布式锁等基础服务,基于这些基础服务,我们可以实现集群管理、软负载、发布/订阅、命名服务等功能。
此篇文章中作者只对zookeeper(后面简称为zk)做简单的搭建以及使用,不谈及其具体实现原理,若各位朋友有兴趣可自行百度学习。
zk服务端搭建及配置方式:
可参考地址:
或者
https://www.jianshu.com/p/1a99eebdf075
其中单机版搭建和集群模式搭建都包含于此。
比如作者在三台服务器中搭建了zk集群:
可用性查看
命令:
./zkServer.sh status
很明显,一个leader,两个follower。
至此服务端集群已部署完成,
可以开始在项目中增加客户端了:
jar包增加完毕后需要在yml文件中增加相应配置信息:
配置完毕后,进行微服务启动即可完成注册。
备注:下一章作者则详细讲解zkui和zk关联的详细使用及如何使用动态配置及zkui源码公布,免费的哦~,所以本篇文章理解起来稍简单点,主要是为了给下一篇文章做铺垫,感兴趣的朋友可对zk原理自行百度学习,会对下一篇文章有更深刻的理解。
整套架构初步规划包含技能点:
springcloud、springboot、mybatis、分环境打包、mybatis-plus、动态数据源、druid、增删改查一键生成、quartz集群、注册中心:zookeeper+zkui和nacos、gateway网关、feign的使用、熔断机制、如何防止雪崩、分布式+集群、一个项目如何进行zk和nacos同时使用、动态配置:一个配置,所有集群节点共同热点使用。