- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
kafka,分布式集群架构下,高性能的流式事件数据(主要是消息)集成、发布(生产)和订阅(分发、消费)组件(中间件)。
kafka依赖zooeeper(数据后端),这里有Windows下安装配置启动zookeeper的 文章(1):
Windows 10环境zookeeper单机伪集群部署和配置_Zhang Phil-CSDN博客Windows 10环境zookeeper单机伪集群部署和配置1,首先到zookeeper项目主页地址下载项目包,https://archive.apache.org/dist/zookeeper/本文基于zookeeper-3.5.52,本例目的是在一台Windows 10(64位)机器上,部署三个zookeeper节点,因此把第1步解压后的包:复...
https://blog.csdn.net/zhangphil/article/details/99990669
如果zookeeper过于陈旧,需要更新,那么zookeeper最新的下载链接:
Apache ZooKeeper
https://zookeeper.apache.org/releases.html#download
kafka最新下载链接:
Apache Kafka
https://kafka.apache.org/downloads.html
实际上最新版的kafka已经内置、集成了zookeeper,可以按照kafka官方文档的快速启动文档跳过zookeeper配置,直接投入使用kafka,发布和订阅消息。不过鉴于系统各个关键组件和模块要解耦的思想,本文单独基于独立安装配置启动的zookeeper,然后由kafka连接到zookeeper,然后再启动kafka。
(第一部分)安装配置启动zookeeper。
这里重新简单介绍一下如何配置安装配置启动zookeeper。具体可参考文章(1)。
(1)解压从Apache下载的zookeeper压缩包后,进入/cof目录,里面有有一个zoo_sample.cfg文件,这个文件是zookeeper的配置文件,重命名该文件为zoo.cfg,并修改这个文件里面的内容,修改dataDir:
dataDir=E:/zk/tmp/data
这里存放zookeeper存储的数据。
(2)新增log日志存放目录:
dataLogDir=E:/zk/tmp/log
(3)本例只使用集群中的一个机器,所以简单配置一个:
server.1=127.0.0.1:2889:3889
(4)写一个叫做 myid的文件,把该文件复制一份,myid里面写入(3)中的 1,放到/tmp/data/目录下面。
(5)启动zookeeper。
通过Windows控制台,进入/bin目录下,运行zkServer.bat,即启动了zookeeper:
(第二部分)安装配置启动kafka。
如果是一台单点机器,kafka配置文件可不用修改,直接到bin目录下启动kafka-server-start即可。若是分布式集群,就需要配置kafka。
找到config\server.properties文件,里面的zookeeper.connect即为kafka要连接的zookeeper的地址,根据自己部署的zookeeper地址进行配置:
log.dirs配置自己设备上用于存放kafka日志的路径:
以上配置完成后,进入bin/windows目录下,找到kafka-server-start.bat文件,启动:
kafka-server-start.bat E:/kafka/config/server.properties
启动成功。
(第三部分)基于命令行,在kafka中发布消息/订阅查看消息。
(1)创新主题topic。
kafka创建主题topic需要配置两个核心参数:
replication-factor
partitions
replication-factor:表示副本数量。每个topic可以有多个副本,副本位于集群中不同的broker上,副本的数量不能超过broker数量,否则创建主题会失败。
partitions:主题topic的分区数。kafka通过分区策略,把不同分区分配在集群中的broker上,一般会分散在不同的broker上,当只有一个broker时,所有分区就只分配到该broker上。消息会通过负载均衡发布到不同的分区上,消费者监控偏移量感知哪个分区有新数据,然后从该分区拉取新消息数据。
在旧版kafka中,创建主题topic需要,新版的kafka不需要。创建一个叫做zhangphil_demo的主题topic:
kafka-topics.bat --create --topic zhangphil_demo --bootstrap-server localhost:9092
创建成功后系统输出:
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
Created topic zhangphil_demo.
查看刚才新建的主题zhangphil_demo的详细信息:
kafka-topics.bat --describe --topic zhangphil_demo --bootstrap-server localhost:9092
输出:
(2)在主题topic写入/发布数据(生产者),消费/订阅数据(消费者)。
kafka-console-producer.bat --topic zhangphil_demo --bootstrap-server localhost:9092
该命令是在名为zhangphil_demo的主题topic下写入数据。
为了观察效果,最好先启动kafka的消费者(订阅者),订阅主题topic:zhangphil_demo:
kafka-console-consumer.bat --topic zhangphil_demo --from-beginning --bootstrap-server localhost:9092
即,先启动kafka的订阅消费者,接受来自主题zhangphil_demo的消息。这时候,再在主题zhangphil_demo写入消息,如图:
没在主题zhangphil_demo里面写入一条消息,hello,world! x,订阅者/消费者就能收到发布者的消息。
我最近安装了一个带有 Exhibitor 的新 ZK 节点,它开始正常。当我执行 telnet localhost 2181 然后运行 stats 以查看版本时,即使我安装了 3.4.11,我仍然
每 the zookeeper docs , 可以创建一种以“ super ”用户身份访问 Zookeeper 集合的方法。这样做的方向在配置和连接方法方面都有些模糊。它确实巧妙地表明这只能通过 Ja
场景如下: Znode 创建:create/config 12345(例如创建于12/12/12) 更新此配置,设置/config 34567(例如在 2013 年 12 月 12 日修改) 一个月后
使用Zookeeper API,是否可以知道当前服务器是否是Zookeeper集群的leader? 文档提到领导者看到了所有追随者中最高的zxid。。是否有可能以某种方式检查? 最佳答案 您可以从不同
我正在学习 ZooKeeper 并研究备份存储在 ZooKeeper 中的数据的选项。 ZooKeeper 写入两个数据文件,快照和事务日志。人们经常提到快照是“模糊的”,需要重放事务日志以获取最新状
用例:一个池中有 100 个服务器;我想在每个服务器上启动一个 ZooKeeper 服务,服务器应用程序(ZooKeeper 客户端)将使用 ZooKeeper 集群(读/写)。那么就没有单点故障。
我正在运行 3 节点 zookeeper 集群来处理 Storm 和 kafka.Zookeeper 数据目录占用了我系统中的所有空间。我不知道如何清理它。因为,我不想完全删除数据,因为我会丢失进程的
我是 Zookeeper 的新手,试图了解它是否适合我的用例。 我有 1000 万个分层数据,我想将它们存储在 Zookeeper 中。 10M 键值对,键值对大小分别为 1KB。 因此,在没有复
在 here 有人说: "even if you read from a different follower every time, you'll never see version 3 of th
Zookeeper 临时节点是否写入磁盘? 我知道在 Zookeeper 确认写入客户端之前,正常的 Zookeeper 节点已写入磁盘。 但是,临时节点仅在客户端 session 期间持续,因此如果
在开发阶段使用zookeeper大约6个月后,虽然运行良好,但其数据目录的大小增长到 6 GIG !而且还在增加。下面列出了一些系统规范: zookeeper version: 3.4.6 numbe
我试图了解 Apache ZooKeeper 在裂脑情况下的内部工作原理。假设有一个由 5 个服务器组成的集群:A、B、C、D 和 E,其中 A 是领导者。现在假设子簇 {A, B} 与子簇 {C,
动物园管理员专家。 我问的问题对你来说可能很基础,但我是 ZK 的新手,我还没有掌握该工具,所以请原谅。考虑到这一点,这是我的问题。 假设我有一个由 5 个服务器组成的 ZK 集群,我有 3 个法定人
我正在尝试了解 Zookeeper 中的分层仲裁。文档 here 举了一个例子,但我仍然不确定我是否理解它。我的问题是,如果我有一个双节点 Zookeeper 集群(我知道不推荐这样做,但为了这个例子
我们使用的是2.3.0版本的curator-framework连接pom文件中的zookeeper。 org.apache.curator curator-fram
我们在开发机器上有一个独立的 zookeeper 设置。除了这台 testdev 机器之外,它适用于所有其他开发机器。 尝试通过 testdev 连接到 zookeeper 时,我们一遍又一遍地收到此
zookeeper 事务日志变得非常大(数千兆字节!)并且集群的每台机器中始终存在一个或最多两个事务日志文件,因为知道可能存在多个快照! .. 引入 autopurge.purgeInterval 和
本文整理了Java中org.apache.flink.shaded.zookeeper.org.apache.zookeeper.ZooKeeper.getSessionId()方法的一些代码示例,展
我需要一些帮助来使用 zookeeper-shell.sh 验证 znode(path) 是否存在于 zookeeper 中 示例:bin/zookeeper-shell.sh zk:9091 ls/
我需要使用 tcpdump 调试我的 kafka 消费者和 zookeeper 之间交换的数据。我浏览了 zookeeper 文档,但找不到任何关于 zookeeper 通信协议(protocol)的
我是一名优秀的程序员,十分优秀!