Mac 安装ZooKeeper+kafka基本使用

这篇具有很好参考价值的文章主要介绍了Mac 安装ZooKeeper+kafka基本使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么 Kafka 依赖 ZooKeeper?

下面ZooKeeper基本介绍:

1、基本功能

ZooKeeper 为分布式系统提供了一种配置管理的服务:集中管理配置,即将全局配置信息保存在 ZooKeeper 服务中,方便进行修改和管理,省去了手动拷贝配置的过程,同时还保证了可靠和一致性。

2、命名服务

  在分布式系统中,经常需要对应用或者服务进行统一命名,便于识别和区分开来,而 ZooKeeper 就提供了这种服务。

3、分布式锁

  锁应该都不陌生,没有用过也听说过,在多个进程访问互斥资源的时候,需要加上一道锁。在分布式系统中,分布式程序分布在各个主机上的进程对互斥资源进行访问时也需要加锁。

  分布式锁应当具备以下条件:

  • 在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
  • 高可用的获取锁与释放锁;
  • 高性能的获取锁与释放锁;
  • 具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误);
  • 具备锁失效机制,防止死锁;
  • 具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
4、集群管理

  在分布式系统中,由于各种各样的原因,例如机器故障、网络故障等,导致集群中的节点增加或者减少,集群中有些机器需要感知到这种变化,然后根据这种变化做出对应的决策。

我们需要知道以下几点:

  • Client 表示客户端,是请求发送方,数量不限;
  • Server 表示服务端,是请求接收方,数量不限;
  • Client 可以连接到每个 Server,每个 Server 中的数据都是一样的;
  • ZooKeeper 启动时,会从所有 Server 中选取一个作为 leader(Paxos 协议),每个 follower 都会和 leader 建立连接;
  • leader 负责进行数据更新等操作,并将数据同步到 follower 中,以此实现数据一致性。

znode( ZooKeeper 的数据节点) 有四种类型 :

1)PERSISTENT(持久节点

  默认的节点类型。持久化保存的节点,创建节点的客户端与 ZooKeeper 断开连接后,该节点依旧存在 。

2)PERSISTENT_SEQUENTIAL(持久顺序节点)

  所谓顺序节点,就是在创建节点时,ZooKeeper 根据创建的时间顺序给该节点名称进行编号,适合用于分布式锁、分布式选举等场景。创建时添加 -s 参数即可。

3)EPHEMERAL(临时节点)

  和持久节点相反,当创建节点的客户端与 ZooKeeper 断开连接后,临时节点会自动删除,适用于心跳、服务发现等场景。创建时添加参数-e 即可。

4)EPHEMERAL_SEQUENTIAL(临时顺序节点)

  顾名思义,该类节点结合了临时节点和顺序节点的特征,在创建节点时,ZooKeeper 根据创建的时间顺序给该节点名称进行编号,当创建节点的客户端和 ZooKeeper 断开连接后,节点自动删除。创建时添加 -e -s 参数即可。

ZooKeeper 实现分布式锁就是利用了临时顺序节点。

 首先在 ZooKeeper 中创建一个持久节点 ParentLock,每当有客户端想要获得锁时,就在 ParentLock 下创建一个临时顺序节点,如果该节点是第一个,则获得锁,如果不是,则找到排序比它靠前的一个节点并注册 Watcher,用于监听节点是否存在。若第一个节点运行完毕,其客户端会调用指令删除该节点,或者其客户端崩溃,第一个节点也会自动删除,而第二个节点监听到该节点被删除,再经过查询确认就能获得锁了。不难发现 ZooKeeper 实现的分布式锁相当于是一个等待锁的队列,能够提升抢锁的效率,但是因为需要创建和删除节点,导致性能较低。

Mac 安装ZooKeeper+kafka基本使用,Java,Zookeeper,kafka,分布式,zookeeper

为什么 Kafka 依赖 ZooKeeper?_kafka依赖zookeeper_freshru的博客-CSDN博客

zooKeeper

#下载到目录usr/local下解压并且重命名

wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.1/apache-zookeeper-3.8.1-bin.tar.gz

tar zxvf apache-zookeeper-3.8.1-bin.tar.gz



#创建data目录
#修改.cfg文件
cd zookeeper
mkdir data

cd conf 
mv mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改
/data路径为
/usr/local/zookeeper/data
根据需求添加端口号配置
admin.serverPort=1234




# bin目录下
./zkServer.sh start  # 启动,这样启动是单机启动。
./zkServer.sh close  # 关闭
./zkServer.sh status # 查看状态



设置开机自启
cd /etc/rc.d/init.d
vim zookeeper
#!/bin/bash
#chkconfig:2345 20 90
#description:zookeeper
#processname:zookeeper
export JAVA_HOME=/usr/local/jdk/jdk8
case $1 in
        start) su root /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zoo.cfg;;
        stop) su root /usr/local/zookeeper/bin/zkServer.sh stop;;
        status) su root /usr/local/zookeeper/bin/zkServer.sh status;;
        restart) su /usr/local/zookeeper/bin/zkServer.sh restart;;
        *) echo "require start|stop|status|restart" ;;
esac



# 启动服务
chkconfig --add zookeeper 
service zookeeper start



# 进入zookeeper的目录
//启动zookeeper服务端 -指定配置文件cong/zoo.cfg
sudo ./bin/zkServer.sh --config conf start
//启动zookeeper客户端   
sudo ./bin/zkCli.sh -server 127.0.0.1:2181
//查看zookeeper启动状态
./bin/zkServer.sh status



# 使用zookeeper命令,测试是否启动成功 
//创建节点key
 create /queue
//创建临时顺序节点
create -e -s /queue/host1
//查看创建的节点信息
 ls -R /queue

1、下载kafka安装包

使用kafka集成zookeeper
 cd /usr/local/kafka/kafka_2.12-3.1.0/bin 

//启动zookeeper应用程序

./zookeeper-server-start.sh ../config/zookeeper.properties

如果启动报错:INFO ZooKeeper audit is disabled. 

修改../config/zookeeper.properties
添加audit.enable=true

然后重新启动

Apache Download Mirrors https://www.apache.org/dyn/closer.cgi?path=/kafka/3.1.0/kafka_2.12-3.1.0.tgz

将压缩文件移动到自己的software

mv kafka_2.12-3.1.0.tgz /Users/xiansongliu/Downloads/kafka 

解压压缩文件

tar -zxvf kafka_2.12-3.1.0.tgz 

将安装包移动到/usr/local

sudo mv kafka_2.12-3.1.0 /usr/local/kafka



启动kafka
./bin/kafka-server-start.sh -daemon config/server.properties

kafka消息交互

1、创建一个topic

 ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test 

2、查看创建的topic

./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

消息通信

 ./bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test 

1、在kafka服务端发送消息 

Mac 安装ZooKeeper+kafka基本使用,Java,Zookeeper,kafka,分布式,zookeeper

./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test

2、此时客户端接收到消息

Mac 安装ZooKeeper+kafka基本使用,Java,Zookeeper,kafka,分布式,zookeeper

 zookeeper安装教程_zookpeer安装_北漂人Java的博客-CSDN博客

mac 安装kafka教程_mac安装kafka_北漂人Java的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-709420.html

到了这里,关于Mac 安装ZooKeeper+kafka基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows下安装使用Kafka(使用Kafka内置的ZooKeeper)

    Kafka2.8版本才开始自带了Zookeeper,所以注意下版本 kafka官网:https://kafka.apache.org kafka配置快速入门:https://kafka.apache.org/quickstart kafka下载页面:https://kafka.apache.org/downloads 下载完成后解压到当前目录 修改config下的zookeeper.properties 修改config下的server.properties 进入 /bin/windows 下 使用

    2024年02月06日
    浏览(44)
  • 分布式应用:Zookeeper 集群与kafka 集群部署

    目录 一、理论 1.Zookeeper   2.部署 Zookeeper 集群 3.消息队列  4.Kafka 5.部署 kafka 集群 6.Filebeat+Kafka+ELK 二、实验 1.Zookeeper 集群部署 2.kafka集群部署 3.Filebeat+Kafka+ELK 三、问题          1.解压文件异常 2.kafka集群建立失败 3.启动 filebeat报错 4.VIM报错 5. kibana无法匹配 四、总结

    2024年02月14日
    浏览(62)
  • 分布式应用之zookeeper集群+消息队列Kafka

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

    2024年02月06日
    浏览(66)
  • zookeeper+kafka分布式消息队列集群的部署

    目录 一、zookeeper 1.Zookeeper 定义 2.Zookeeper 工作机制 3.Zookeeper 特点 4.Zookeeper 数据结构 5.Zookeeper 应用场景 (1)统一命名服务 (2)统一配置管理 (3)统一集群管理 (4)服务器动态上下线 6.Zookeeper 选举机制 (1)第一次启动选举机制 (2)非第一次启动选举机制 7.部署zookeepe

    2024年02月14日
    浏览(52)
  • zookeeper安装教程及其基本使用

    目录 zookeeper下载: zookeeper下载官网: 本地安装配置: 启动zookeeper:  开启服务端: 启动客户端: 查看zookeeper的状态: zoo.cfg文件解读: zookeeper的集群安装: 报错分析: 选举机制---第一次启动: 部分概念: 选举机制---非第一次启动: ZK集群的启动与停止脚本: 客户端命

    2024年02月14日
    浏览(41)
  • Zookeeper 【下载与安装,基本使用】

    目录 1. 什么是zookeeper 2. zookeeper下载与安装 3. Zookeeper 测试 zookeeper实际上是yahoo开发的,用于分布式中一致性处理的框架。最初其作为研发Hadoop时的副产品。 由于分布式系统中一致性处理较为困难,其他的分布式系统没有必要费劲重复造轮子,故随后的分布式系统中大量应用

    2024年01月24日
    浏览(44)
  • 在Windows上搭建Kafka环境的步骤,包括安装Java、下载Kafka、配置Zookeeper和Kafka、启动Zookeeper和Kafka、创建主题和生产者/消费者等

    1. 安装Java Kafka需要Java环境支持。可以从Oracle官网下载JDK,或者使用OpenJDK。 2. 下载Kafka 可以从Kafka官网下载Kafka二进制压缩包。解压后可以看到bin、config、libs等目录。 3. 配置Zookeeper Kafka依赖Zookeeper实现分布式协作。可以使用Kafka自带的Zookeeper,也可以独立安装Zookeeper。 如果使

    2024年02月11日
    浏览(45)
  • 分布式锁设计选型 不可重入锁建议使用ZooKeeper来实现 可重入锁建议使用Redis来实现 分布式锁:ZooKeeper不可重入锁 Java优化建议

    在设计分布式锁时,需要考虑业务场景和业务需求,以保证锁的正确性和可用性。 例如,在一个电商系统中,每个商品都有一个库存量。为了避免多个用户同时购买同一件商品导致库存出现不一致的情况,可以为每个商品设置一个分布式锁,确保同一时间只能有一个用户购买

    2024年02月08日
    浏览(49)
  • 【简单认识zookeeper+kafka分布式消息队列集群的部署】

    Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已

    2024年02月13日
    浏览(42)
  • kafka3.X集群安装(不使用zookeeper)

    在本专栏的之前的一篇文章《kafka3种zk的替代方案》已经为大家介绍过在kafka3.0种已经可以将zookeeper去掉。 上图中黑色代表broker(消息代理服务),褐色/蓝色代表Controller(集群控制器服务) 左图(kafka2.0):一个集群所有节点都是broker角色,kafka从三个broker中选举出来一个Cont

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包