Linux 下 Kafka 安装与运维
Kafka 是由 LinkedIn 使用 Scala 编写的一个分布式消息系统,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础,具有高水平扩展和高吞吐量。Spack、Elasticsearch 都支持与 Kafka 集成。
·
Kafka 是由 LinkedIn 使用 Scala 编写的一个分布式消息系统,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础,具有高水平扩展和高吞吐量。Spack、Elasticsearch 都支持与 Kafka 集成。下面看一下几种分布式开源消息队列系统的对比:
ActiveMQ | RabbitMQ | Kafka | |
---|---|---|---|
所属社区/公司 | Apache | Mozilla Public License | Apache/LinkedIn |
开发语言 | Java | Erlang | Scala |
支持的协议 | OpenWire、STOMP、REST、XMPP、AMQP | AMQP | 仿AMQP |
事务 | 支持 | 不支持 | 不支持 |
集群 | 支持 | 支持 | 支持 |
负载均衡 | 支持 | 支持 | 支持 |
动态扩容 | 不支持 | 不支持 | 支持(zk) |
这里 Linux 选择 CentOS 7.2。
Kafka 集群架构:
一般不建议直接使用 Kafka 自带的 Zookeeper 建立 zk 集群,这里我们使用独立的 zk 集群,zk 集群搭建参考文章 https://blog.csdn.net/smartbetter/article/details/52778023。
# java -version //检查是否安装jdk,没有安装的话需要先安装jdk
# cd /usr/local
# mkdir kafka
# cd kafka
# wget -P /usr/local/kafka https://archive.apache.org/dist/kafka/1.1.0/kafka_2.12-1.1.0.tgz
# tar -zxvf kafka_2.12-1.1.0.tgz
# mkdir kafka-logs
# cd kafka_2.12-1.1.0/config
# vim server.properties
编辑配置文件 (配置项可以参考 http://kafka.apache.org/documentation.html#brokerconfigs) 为:
# 唯一标识,0开始
broker.id=0
# 服务器端口和ip
port=9092
host.name=192.168.2.20
# 日志数据保存的目录
log.dirs=/usr/local/kafka/kafka-logs
log.retention.hours=168
# 每条消息能够容纳的最大大小,默认1000012
message.max.bytes=5242880
# 默认的副本因子,即保存消息的副本数,默认1
default.replication.factor=2
# 取消息的最大直接数,默认1048576
replica.fetch.max.bytes=5242880
# 配置zk地址
zookeeper.connect=192.168.20.11:2181,192.168.20.12:2181,192.168.20.13:2181
启动 Kafka 之前需启动 Zookeeper,然后启动 Kafka,各个节点需单独启动:
# cd /usr/local/kafka/kafka_2.12-1.1.0/bin
# ./kafka-server-start.sh -daemon ../config/server.properties //后台启动服务
# jps //查看服务是否启动成功
# ./kafka-server-stop.sh //关闭服务
最后我们在三台不同的服务器上各部署一个 Kafka 进程,以构成一个 Kafka 集群。开始使用可以参考官方文档 http://kafka.apache.org/documentation.html#quickstart。
更多推荐
已为社区贡献2条内容
所有评论(0)