Kafka——安装Kafka

要事先行

选择操作系统
Kafka 是使用Java 开发的应用程序, 所以它可以运行在Windows 、MacOS 和Linux 等多种操作系统上。本章将着重介绍如何在Linux 上安装和使用Kafka ,因为把Kafka 安装在Linux 系统上是最为常见的。

安装Java
在学习zookeeper的时候已经安装。

安装Zookeeper
在昨天的文章里,我们已经安装。不过某些配置需要变化。
我们先输入telnet localhost 2181查看我们的zookeeper是否安装正确。再输入srvr
在这里插入图片描述
Zookeeper 群组( Ensemble)
Zoo keeper 集群被称为群组。Zookeeper 使用的是一致性协议,所以建议每个群组里应该包含奇数个节点(比如3 个、5 个等),因为只有当群组里的大多数节点(也就是越定人数)处于可用状态, Zookeeper 才能处理外部的请求。
不过,也不建议一个群组包含超过7 个节点,因为Zookeeper 使用了一致性协议,节点过多会降低整个群组的性能。

群组需要有一些公共配置,下面列出了所有服务器的清单,并且每个服务器还要在数据目录中创建一个myid 文件,用于指明自己的ID 。如果群组里服务器的机器名是 zoo1.example.comzoo2.example.comzoo3.example.com ,那么配置文件可能是这样的:
在这里插入图片描述
在这里插入图片描述
在这个配置中:

  • initLimit表示用于在从节点主节点之间建立初始化连接的时间上限
  • syncLimit 表示允许从节点与主节点处于不同步状态的时间上限
    这两个值都是tickTime的倍数,所以initLimit是10*2000ms ,也就是20s,而syncLimit是10秒。
  • 配置里还列出了群组中所有服务器的地址。服务器地址遵循server.X=hostname:peePort:leaderPort的格式。
    • X表示服务器的id,不一定要求从0开始,也不一定连续。
    • hostname表示服务器的机器名或IP地址
    • peerPort:用于节点通信的TCP端口
    • leederPort:用于首领选举的TCP端口

除了公共的配置文件外,每个服务器都必须在data Dir 目录中创建一个叫作myid 的文件,文件里要包含服务器ID , 这个ID 要与配置文件里配置的D 保持一致。完成这些步骤后,就可以启动服务器,让它们彼此间进行通信了。

如果还是不知道怎么做,看看下面这个教程:
https://blog.csdn.net/yiifaa/article/details/77844402

伪集群如下:
在这里插入图片描述

安装Kafka Broker

配置好Java 和Zookeeper 之后,接下来就可以安装Kafka了。
在这里插入图片描述
或者也可以修改kafka的server.properties文件,把log的目录修改为自己想要的目录。

server.properties参数说明
https://blog.csdn.net/lizhitao/article/details/25667831

一且Kafka 创建完毕,就可以对这个集群做一些简单的操作来验证它是否安装正确,比如创建一个测试主题,发布一些消息,然后读取它们。(必须先开启zookeeper,开启kafka,然后才create主题)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181116164655762.png
往测试主题上发布消息:
在这里插入图片描述
从测试主题上读取消息:
在这里插入图片描述

broker配置

Kafka 有很多配置选项,活及安装和调优的方方面面。

常规配置

  • broker.id
    每个broker 都需要有一个标识符,使用 broker.id 来表示。它的默认值是0 ,也可以被设置成其他任意整数。这个在整个Kafka 集群里必须是唯一的。
  • port
    如果使用配置样本来启动Kafka ,它会监听9092 端口。修改port配置参数可以把它设置成其他任意可用的端口。要注意,如果使用1024 以下的端口,需要使用root 权限启动Kafka ,不过不建议这么做。
  • zookeeper.connect
    用于保存broker元数据的Zookeeper地址是通过zookeeper.connect来指定的。
  • log.dirs
    日志存放目录。

主题的默认配置
暂略。

硬件的选择

Kafka 本身对硬件没有特别的要求,它可以运行在任何系统上。不过,如果比较关注性能,那么就需要考虑几个会影响整体性能的因素:磁盘吞吐量和容量、内存、网络和CPU 。在确定了性能关注点之后,就可以在预算范围内选择最优化的硬件配置。

穷,暂略

Kafka集群

单个Kafka 服务器足以满足本地开发或POC 要求,不过集群也有它的强大之处。使用集群最大的好处是可以跨服务器进行负载均衡,再则就是可以使用复制功能来避免因单点故障造成的数据丢失。在维护Kafka 或底层系统时,使用集群可以确保为客户端提供高可用性。
在这里插入图片描述

需要多少个broker
一个Kafka 集群需要多少个broker 取决于以下几个因素。
首先,需要多少磁盘空间来保留数据,以及单个broker 有多少空间可用。如果整个集群需要保留10TB 的数据, 每个broker可以存储2 TB ,那么至少需要5 个broker。如果启用了数据复制,那么至少还需要一倍的空间。
第二个要考虑的因素是集群处理请求的能力。如果单个broker 的网络接口在高峰时段可以达到80 % 的使用量,并且有两个消费者,那么消费者就无桂保持峰值,除非有两个broker 。如果集群启用了复制功能,则要把这个额外的消费者考虑在内。因磁盘吞吐量低和系统内存不足造成的性能问题,也可以通过扩展多个broker 来解决。

broker配置
要把一个broker 加入到集群里,只需要修改两个配置参数。
首先,所有broker 都必须配置相同的zookeeper.connect, 该参数指定了用于保存元数据的Zookeeper 群组和路径。
其次,每个broker 都必须为 broker.id 参数设置唯一的值。

操作系统调优
暂略

生产环境的注意事项

暂略

猜你喜欢

转载自blog.csdn.net/No_Game_No_Life_/article/details/84137607