消息系统
kafka:支持协议仿AMQP,动态扩容(支持zk),支持负载均衡、集群。
(事物:多个全部提交,要么全部成功,要么全部失败。)
AMQP: 高级消息队列 advanced message queue protocol。
三个组件:
broker即为一个实例
kafka0.8 : 增加备份功能。
官方文档: kafka.apache.org/documentation.html#quickstart
kafka集群搭建:
1、搭建
2、配置文件介绍
软件环境:linux ,需要有zookeeper集群, 版本选择0.8.1 ,kafka_源码包
配置文件:
server.properties
(不推荐使用默认的zookeeper)
broker.id=0 实例id 集群中的唯一标示
prot=9092
host.name=2.2.2.2 (把配置的话 ,会进行dns解析,会产生文件句柄数泄露,导致故障)
message.max.byte=5M 每条消息最大5M
log.dirs=dir1,dir2 消息
default.replication.factor=2 默认副本数
replica.fethc.max.bytes=5M
zookeeper.connect=1.1.1.1:2188,1.1.1.2:2188,1.1.1.3:2188 (zookeeper集群)
log.retention.hours=168 默认存储7天。
log.segment.bytes=111111111 文件大小
log.cleaner.enable=false log压缩功能
consumer.properties
group.id=test1group
producer.properties
producer.type=sync 同步 发送方式
compression.codec 压缩方式
日志:
server.log 运行日志
controler.log 控制机器日志
启动:
kafka-server-start.sh -daemon .../config/server.properties
以后台进程方式启动
创建一个topic:
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 1 --topic test
查看topic:
./kafka-topic.sh --list --zookeeper localhost:2181
启动comsumer.sh程序 (消息订阅)
./kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
启动producer程序 (消息发送)
./kafka-console-producer.sh --broker-list 2.2.2.2:9092 --topic test
查询topic: