一个存放消息的组件
生服务器托管网产者, 消费者, broker三部分
消息队列的两种模式
*生产者和消费者(消费者主动拉取信息,然后删除)
*发布订阅()
kafka基础架构*一个topic有多个partition(副本(信息非全量),有分leader和follower)
*消费者组(只消费leader的)(一个分区一个消费者处理)
*zookeeper()
安装
修改broker id
修改ZK地址
修改数据存放路径
生产者原理:
流程:数据服务器托管网——缓存——集群
数据量先写道缓存 到达指定批次数量(batch)(默认16K),或等待时间(linger)(默认0秒)就发送
*可以异步发送
*可以异步发送回调
*同步发送
分区
*1有指定的-指定partution
*2有key的-根据key和toipc的partition数取余,
*3啥没有的-粘性分区(随机,批次满了或时间到在随机下一个)
怎么提高吞吐量
*加大批次(batch)(默认16K)
*等待时间(linger)(默认0
*压缩
*修改缓冲区大小(默认32M)
幂等性:(无论发送多少次,都只保存一条)
去重性(最多一次)配置acks
可靠性(最少一次)
有序性(开启幂等性,或者设置单分区)
架构
消费者
broker
broker
topic
partition分区
可靠性(副本(leader,folloer))
生产者和消费者只对leader操
一个分区只有一个消费者
消费者
zookeeper
broker.ids
leader
辅助选举
生产者API
*send()异步发送
*可以回调可以实现同步
*批量发送设置(batch)(默认16K),或等待时间(linger)默认0)
*配置acks
(acks=0或者1)最多一次(去重)
(acks=-1或者retries>0)最少一次(可靠)
消费者API
可以自动提交或者手动提交(单条或者批量提交)
支持事务y
隔离级别 读未提交,读提交
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 在Springboot中操作Redis——五大数据类型
在Java中操作Redis Redis的Java客户端 前面我们讲解了Redis的常用命令,这些命令是我们操作Redis的基础,那么我们在java程序中应该如何操作Redis呢?这就需要使用Redis的Java客户端,就如同我们使用JDBC操作MySQL数据库…