Kafka

来源:互联网 发布:手机相片加密软件 编辑:程序博客网 时间:2024/05/29 04:36

Kafka,一种分布式的,基于发布/订阅的消息系统。


MQ产品:

rabbitMQ:支持很多的协议,AMQP,XMPP, SMTP, STOMP,正因如此,它太重量级了。

Redis:可用作数据库,高速缓存和消息队列代理,但是作为消息队列时,出队性能非常好,入队在数据大的情况下就很让人失望了。

  ZeroMQ:号称是最快的MQ,但是好像没有提供持久化,

  kafka:

  • 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒。保证TB级以上数据保证常数时间复杂度的访问性能
  • 可扩展性:kafka集群支持热扩展
  • 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
  • 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
  • 高并发:支持数千个客户端同时读写


概念:

topic:消息的主题,

Producer:生产者,

Consumer:消费者,

Broker:服务实例


kafka的两种api:high-level api和sample-api

sample是一个原生的api,可以灵活的指定offset,high-level是封装以后的,并且支持以组的形式消费topic。

消息可靠性:producer发送后等待broker的返回值。


安装测试

1.下载并解压后,修改server.properties文件

broker.id=0       log.dirs=/usr/local/kafka_2.11-1.0.0/logs    //日志地址zookeeper.connect=master:2181,slave1:2181,slave2:2181
2.打开zookeeper
./zkServer.sh start./zkServer.sh status

3.启动服务

nohup bin/kafka-server-start.sh config/server.properties&

4.打开两个终端分别执行

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testbin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning


原创粉丝点击