- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 11、kafka 的 Consumer API
目录引入pom依赖简单使用重置offset关闭自动提交offset后,手动提交offset引入pom依赖<!-- kafka --><dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>1.0.0</version><
2021-02-26 23:21:21 171
原创 10、kafka 的 Producer API
目录原理引入pom简单的发数据带有回调的发数据不同的分区策略同步发送数据自定义分区器自定义拦截器原理kafka 的 Producer 发送消息采用的是异步发送的方式。在消息发送的过程中,涉及到了 两个线程 main 线程 和 Sender 线程,以及一个线程共享变量缓冲区 RecordAccumulator。 main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取 消息发送到 Kafka b
2021-02-26 23:09:50 179
原创 9、kafka的事务机制
目录Producer 事务Consumer 事务Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上,生产和消费可以跨分区和会话,要么全部成功,要么全部失败。Producer 事务为了实现跨分区跨会话的事务,需要引入一个全局唯一的 Transaction ID,并将 Producer 获得的PID 和Transaction ID 绑定。这样当 Producer 重启后就可以通过正在进行的 Transaction..
2021-02-26 22:38:15 200
原创 8、kafka高效的读写数据
分布式kafka支持集群,支持分区,以此提高读写效率顺序写磁盘Kafka 的 producer 生产数据,要写入到 log 文件中,写的过程是一直追加到文件末端, 为顺序写。官网有数据表明,同样的磁盘,顺序写能到 600M/s,而随机写只有 100K/s。这 与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间。零拷贝技术以前的模式:用户系统 要和 操作系统交流后实现拷贝复制标题kafka的模式:减少了步骤,直接让操作系统实现拷贝...
2021-02-26 22:32:59 101
原创 7、kafka在zk中的存储模型
存储模型kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线,所有 topic 的分区副本分配 和 leader 选举等工作。Controller 的管理工作都是依赖于 Zookeeper 的。partition 的 leader 选举流程...
2021-02-26 22:27:59 71
原创 6、kafka消费者
消费者消费方式consumer 采用 pull(拉)模式从 broker 中读取数据。push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。 它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull(拉) 模式则可以根据 consumer 的消费能力以适当的速率消费消息。 pull (拉) 模式不足之处是,如果 kafka 没有数据,消费者可能会陷入循环中,一直返回空数据。针对这一
2021-02-24 23:35:11 91
原创 5、kafka生产者
目录生产者的分区策略(也就是按什么策略往partition里面写数据)生产者发送数据可靠性ISRack应答机制(设置不同的可靠性级别解决数据的丢失和数据重复)HW(保证数据的一致性)Exactly Once 实现幂等性,保证数据既不丢失也不重复生产者的分区策略(也就是按什么策略往partition里面写数据)我们需要将 producer 发送的数据封装成一个 ProducerRecord 对象指明 partition 的情况下,直接将指明的值直接作为 parti.
2021-02-24 23:11:03 77
原创 4、kafka基本命令行操作
目录列出所有topic创建topic删除topic查询topic的描述信息模拟生产者模拟消费者列出所有topic# 通过 zk 集群中的一个列出所有 topicbin/kafka-topics.sh --list --zookeeper 10.10.2.60:2181创建topic# 注意创建的分区数是可以大于brokers的个数,但是创建的副本数只能 <= brokers的个数 bin/kafka-topics.sh --create...
2021-02-24 22:36:45 80
原创 3、kafka的集群配置
集群部署,直接修改配置文件 server.properties即可,搭建集群需要奇数服务器broker.id=81 # 唯一iddelete.topic.enable=true # 设置为 true 时,删除 topic 时是立即删除,而不是标记删除listeners=PLAINTEXT://10.10.2.81:9092 # 本机地址host.name=10.10.2.81 # 本机地址num.partitions=3 # 分区个数log.retention.hours=168 # to.
2021-02-24 22:25:49 70
原创 2、kafka原理
目录架构图名词解析工作流程文件内部存储数据和索引架构图名词解析Producer:消息生产者,就是向kafkabroker发消息的客户端; Consumer:消息消费者,向kafkabroker拉取消息的客户端; ConsumerGroup(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有的消费者都属于某个消费者组,即消费...
2021-02-24 22:09:36 112
原创 1、kafka和消息队列概述
目录定义消息队列概述使用场景好处模式:定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),不是一个存储系统,数据有时限,默认存7天就是168个小时消息队列概述使用场景好处解耦:允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束 可恢复性:系统的一部分组件失效时,不会影响到整个系统。消息队列降低了进程间的耦合度,所 以即使一个处理消息的进程挂掉,加入队列中的消息仍然可以在系统恢复后被处理...
2021-02-24 15:37:19 362
原创 使用goEasy实现web消息实时推送
1.web消息实时推送实现- - -goEasy实现web消息实时推送的方式有多种:goEasy实现(有数量限制,而且必须在线,因为要解析浏览器去cdn加载goeasy.js)ajax实现轮询的方式(就是使用js中设置定时任务ajax访问)html5的webscoket实现web消息实时推送goEasy是解决web消息实时推送的一个框架,但是有连接数量的限制,当然,有钱就解决了。而且需要ap
2016-11-10 10:53:50 3660
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人