spring cloud之Zookeeper09

spring cloud之Zookeeper09

zookeeper简介

zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 google chubby 的开源实现,是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

zookeeper 有几种部署模式?

zookeeper 有三种部署模式:

  • 单机部署:一台集群上运行;

  • 集群部署:多台集群运行;

  • 伪集群部署:一台集群启动多个 zookeeper 实例运行

zookeeper 都有哪些功能?

  • 集群管理:监控节点存活状态、运行请求等。

  • 主节点选举:主节点挂掉了之后可以从备用的节点开始新一轮选主,主节点选举说的就是这个选举的过程,使用 zookeeper 可以协助完成这个过程。

  • 分布式锁:zookeeper 提供两种锁:独占锁、共享锁。独占锁即一次只能有一个线程使用资源,共享锁是读锁共享,读写互斥,即可以有多线线程同时读同一个资源,如果要使用写锁也只能有一个线程使用。zookeeper可以对分布式锁进行控制。

  • 命名服务:在分布式系统中,通过使用命名服务,客户端应用能够根据指定名字来获取资源或服务的地址,提供者等信息。

    zookeeper 怎么保证主从节点的状态同步?

    zookeeper 的核心是原子广播,这个机制保证了各个 server 之间的同步。实现这个机制的协议叫做 zab 协议。 zab 协议有两种模式,分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,zab 就进入了恢复模式,当领导者被选举出来,且大多数 server 完成了和 leader 的状态同步以后,恢复模式就结束了。状态同步保证了 leader 和 server 具有相同的系统状态。

1,启动zk,到linux上

2,创建新的pay模块,

单独用于注册到zk中

名字 : cloud_pay_8003

1,pom依赖

2,配置文件

3,主启动类

4,controller

5,然后就可以启动

此时启动,会报错,因为jar包与我们的zk版本不匹配

解决: 修改pom文件,改为与我们zk版本匹配的jar包

此时8003就注册到zk中了

我们在zk上注册的node是临时节点,当我们的服务一定时间内没有发送心跳
    那么zk就会`将这个服务的node删除了

这里测试,就不写service与dao什么的了

3,创建order消费模块注册到zk

1,创建项目

名字: cloud_order_zk_80

2,pom

3,配置文件

4主启动类:

5,RestTemolate

6,controller

然后启动即可注册到zk

8,集群版zk注册:

只需要修改配置文件:

这个connect-string指定多个zk地址即可

connect-string: 1.2.3.4,2.3.4.5

猜你喜欢

转载自blog.csdn.net/weixin_45442617/article/details/110203412