
消息队列
文章平均质量分 91
hellozhxy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis、Kafka 和 Pulsar 消息队列对比
导语 |市面上有非常多的消息中间件,rabbitMQ、kafka、rocketMQ、pulsar、 redis等等,多得令人眼花缭乱。它们到底有什么异同,你应该选哪个?本文尝试通过技术演进的方式,以redis、kafka和 pulsar为例,逐步深入,讲讲它们架构和原理,帮助你更好地理解和学习消息队列。文章作者:刘德恩,腾讯IEG研发工程师。一、最基础的队列最基础的消息队列其实就是一个双端队列,我们可以用双向链表来实现,如下图所示: push_front:添加元素到队.转载 2021-08-10 11:24:58 · 195 阅读 · 0 评论 -
从基础到高级讲解Kafka
1、为什么有消息系统 解耦合 异步处理 例如电商平台,秒杀活动。一般流程会分为:1:风险控制、2:库存锁定、3:生成订单、4:短信通知、5:更新数据通过消息系统将秒杀活动业务拆分开,将不急需处理的业务放在后面慢慢处理;流程改为:1:风险控制、2:库存锁定、3:消息系统、4:生成订单、5:短信通知、6:更新数据 流量的控制 3.1 网关在接受到请求后,就把请求放入到消息队列里面 3.2 后端的服务从消息队列里面获取到请求,完成后续的秒杀处理流程。然后再给用户返回结果。优点:控制了流.转载 2021-05-11 17:25:13 · 167 阅读 · 0 评论 -
如何通过事务消息保障抢购业务的分布式一致性?
前言在电商领域,抢购和秒杀是非常普遍业务模式,抢购类业务在快速拉升用户流量并为消息者带来实惠的同时,也给电商系统带来了巨大考验。在高并发、大流量的冲击下,系统的性能和稳定性至关重要,任何一个环节出现故障,都会影响整体的购物体验,甚至造成电商系统的大面积崩溃。和电商领域抢购场景极为类似的业务模式还有很多,比如大型赛事和在线教育的报名系统,以及各类购票系统等。针对抢购类业务在技术上带来的挑战,业界有一系列解决方案,通过不同维度来提升系统的性能与稳定性,包括动静分离、定时上架、异步处理、令牌队列、多级缓存转载 2021-04-25 19:37:04 · 169 阅读 · 0 评论 -
Kafka Connect简介
一. Kafka Connect简介 Kafka是一个使用越来越广的消息系统,尤其是在大数据开发中(实时数据处理和分析)。为何集成其他系统和解耦应用,经常使用Producer来发送消息到Broker,并使用Consumer来消费Broker中的消息。Kafka Connect是到0.9版本才提供的并极大的简化了其他系统与Kafka的集成。Kafka Connect运用用户快速定义并实现各种Connector(File,Jdbc,Hdfs等),这些功能让大批量数据导入/导出Kafka很方便。 ..转载 2021-04-19 12:08:13 · 1009 阅读 · 0 评论 -
Kafka Connect简介
一. Kafka Connect简介 Kafka是一个使用越来越广的消息系统,尤其是在大数据开发中(实时数据处理和分析)。为何集成其他系统和解耦应用,经常使用Producer来发送消息到Broker,并使用Consumer来消费Broker中的消息。Kafka Connect是到0.9版本才提供的并极大的简化了其他系统与Kafka的集成。Kafka Connect运用用户快速定义并实现各种Connector(File,Jdbc,Hdfs等),这些功能让大批量数据导入/导出Kafka很方便。 ..转载 2021-04-19 12:00:03 · 1788 阅读 · 0 评论 -
Kafka Consumer多线程消费
概述 OrdinaryConsumer类 ConsumerWorker.java MultiThreadedConsumer.java MultiThreadedRebalanceListener.java Test.java上一篇《Kafka Consumer多线程实例续篇》修正了多线程提交位移的问题,但依然可能出现数据丢失的情况,原因在于多个线程可能拿到相同分区的数据,而消费的顺序会破坏消息本身在分区中的顺序,因而扰乱位移的提交。这次我使用KafkaConsumer的pause和resum.转载 2021-03-10 12:16:44 · 1358 阅读 · 0 评论 -
正确处理kafka多线程消费的姿势
最近项目开发过程使用kafka作为项目模块间负载转发器,实现实时接收不同产品线消息,分布式准实时消费产品线消息。通过kafka作为模块间的转换器,不仅有MQ的几大好处:异步、解耦、削峰等几大好处,而且开始考虑最大的好处,可以实现架构的水平扩展,下游系统出现性能瓶颈,容器平台伸缩增加一些实例消费能力很快就提上来了,整体系统架构上不用任何变动。理论上,我们项目数据量再大整体架构上高可用都没有问题。在使用kafka过程中也遇到一些问题:1. 消息逐渐积压,消费能力跟不上;2.某个消费者实例因为某些异常..转载 2021-03-10 12:07:41 · 2207 阅读 · 0 评论 -
Kafka Consumer多线程实例
Kafka 0.9版本开始推出了Java版本的consumer,优化了coordinator的设计以及摆脱了对zookeeper的依赖。社区最近也在探讨正式用这套consumer API替换Scala版本的consumer的计划。鉴于目前这方面的资料并不是很多,本文将尝试给出一个利用KafkaConsumer编写的多线程消费者实例,希望对大家有所帮助。 这套API最重要的入口就是KafkaConsumer(o.a.k.clients.consumer.KafkaConsumer),普通的单线程使用..转载 2021-03-10 12:02:57 · 1795 阅读 · 0 评论 -
kafka rebalance与数据重复消费问题
问题和现象:某个程序在消费kafka数据时,总是重复消费相关数据,仿佛在数据消费完毕之后,没有提交相应的偏移量。然而在程序中设置了自动提交:enable.auto.commit为true检查日志,发现日志提示:2020-03-26 17:20:21.414 WARN 28800 --- [ntainer#2-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator : [Consumer clientId=consumer-1,groupId=test-c...转载 2021-03-10 11:46:49 · 2655 阅读 · 0 评论 -
kafka一直rebalance故障,重复消费
今天我司线上kafka消息代理出现错误日志,异常rebalance,而且平均间隔2到3分钟就会rebalance一次,分析日志发现比较严重。错误日志如下08-09 11:01:11 131 pool-7-thread-3 ERROR [] - commit failed org.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already r.转载 2021-03-10 11:38:56 · 2779 阅读 · 0 评论 -
Kafka重复消费场景及解决方案
Kafka消费者以消费者组(Consumer Group)的形式消费一个topic,发布到topic中的每个记录将传递到每个订阅消费者者组中的一个消费者实例。Consumer Group 之间彼此独立,互不影响,它们能够订阅相同的一组主题而互不干涉。生产环境中消费者在消费消息的时候若不考虑消费者的相关特性可能会出现重复消费的问题。在讨论重复消费之前,首先来看一下kafka中跟消费者有关的几个重要配置参数。enable.auto.commit 默认值true,表示消费者会周期性自动提交消费的offse转载 2021-03-09 21:36:58 · 1741 阅读 · 0 评论 -
困扰许久的Kafka Rebalance问题
前提本文的分析基于kafka0.9版本的client,0.10.1.0中已经修改心跳线程为后台线程,并支持设置max.poll.records,参见ChangeLog。使用场景Kafka是一个高吞吐量的分布式消息系统,在APM的移动端请求数据的处理中,使用了Kafka。Kafka数据使用多线程阻塞的方式进行消费,即每个线程通过poll()的形式消费一个或者多个partition, 每次得到的消息集处理完成之后才会继续进行下一次poll()操作,同时使用了自动提交offset...转载 2021-03-09 21:29:11 · 3007 阅读 · 0 评论 -
基于 Kafka 技术栈构建和部署实时搜索引擎的实践
在 Koverhoop,我们正在保险、医疗、房地产和离线分析领域建立一些大型项目。在我们其中一个多租户团体保险经纪平台 klient.ca,我们计划构建一个强大的搜索功能,希望能在用户输入内容的同时同步呈现搜索结果。下面是我们能够实现的效果,我将在这篇文章讨论这一功能的核心基础设施,包括如何完全自动化部署及如何快速完成构建工作。来自作者的动图: 搜索能力这个系列文章分为两部分,我将分别讨论以下内容: 第 1 部分:了解用于支持此搜索能力的技术栈,并使用 Docker 和 D...转载 2021-02-24 11:44:25 · 372 阅读 · 0 评论 -
kafka原理
作者:腾讯技术工程链接:https://www.zhihu.com/question/34243607/answer/1629280133来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。背景部门的开发同学最近在开发一个活动的过程中,需要关注大量的应用后台逻辑,捕捉各种事件的触发。在设计时打算采用kafka消息队列进行业务逻辑的解耦,这样活动开发和后台开发同学的工作就分离开了。但是使用的同学不是很熟悉其原理,担心以下几个问题:我什么业务场景下使用消息队列 .转载 2020-12-16 12:10:40 · 373 阅读 · 0 评论 -
腾讯 VS 阿里 VS 携程消息中间件设计方案及思路
目标:可靠性(保证消息不丢失)、异步、解耦(无需同时在线、不需要知道对方是谁)。数据的存储级别:内存中的数据(断电丢数据)=》持久化磁盘(磁盘损坏)=》冗余备份(一致性问题)业界MQ设计方案如下:1.阿里Notify架构特点:Notify之间不互相通讯。 支持水平扩展。 客户端通过Config Server获得Notify地址列表。 客户端自动感知Notify的增加或减少。 发布者、消费者、Notify Server都支持集群。 消息根据不同的安全级别选择存放到不同的地方(如转载 2020-10-29 16:11:53 · 264 阅读 · 1 评论 -
掌握 Kafka
Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点。较之传统的消息中间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容错的特性,非常适合大规模消息处理应用程序。Kafka 官网:http://kafka.apa...转载 2020-05-08 15:57:51 · 181 阅读 · 0 评论 -
RocketMQ的分布式事务解决方案
前言在系统变的复杂后,分布式、微服务等架构技术,就要考虑到应用在系统中了。尤其数据量大了后,就需要对数据库进行拆分。如:注册的用户数据,量大了后,就需要考虑分库分表一旦数据库进行了分拆,那就出现很多头疼的问题,其中之一就是事务问题。那我们就来看看问题是怎么出现的?场景先来上个图进行数据拆分后,就类似上面的架构上图中我们就拿用户的数据进行举例,用户量...转载 2020-03-23 17:32:02 · 880 阅读 · 0 评论 -
分布式事务:RocketMQ实现分布式事务原理
之前讲过有关分布式事务2PC、3PC、TCC的理论知识,博客地址:1、分布式事务(1)---2PC和3PC原理2、分布式事务(2)---TCC原理这篇讲有关RocketMQ实现分布式事务的理论知识,下篇也会示例 通过SpringCloud来实例RocketMQ实现分布式事务的项目。一、举个分布式事务场景列子:假设A给B转100块钱,同时它们不是同一个服务上。目标:...转载 2020-03-23 17:30:17 · 402 阅读 · 0 评论 -
kafka优秀设计
优秀设计之基于NIO编程Kafka 底层的 IO 用的是 NIO,这个事虽然简单,但是也需要提一提。我们开发一个分布式文件系统的时候避免不了需要思考需要什么样的 IO?BIO 性能较差,NIO 性能要比 BIO 要好很多,而且编程难度也不算大,当然性能最好的那就是 AIO 了,但是 AIO 编程难度较大,代码设计起来较为复杂,所以 Kafka 选择的是 NIO,也是因为这些原因,目前我们...原创 2020-01-14 20:51:59 · 547 阅读 · 0 评论 -
Kafka原理总结
KafkaKafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Li...转载 2019-12-24 20:59:22 · 1419 阅读 · 0 评论 -
kafka读写速度快的原因
KAFKA是分布式发布-订阅消息系统,是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。现在被广泛地应用于构建实时数据管道和流应用的场景中,具有横向扩展,容错,快等优点,并已经运行在众多大中型公司的生产环境中,成功应用于大数据领域,本文分享一下我所了解的KAFKA。【KAFKA高吞吐率性能揭秘】KAFKA的第一个突出特定就是“快”,而且是那...转载 2019-12-19 19:47:18 · 1442 阅读 · 1 评论 -
Kafka 基本原理
《Java 2019 超神之路》 《Dubbo 实现原理与源码解析 —— 精品合集》 《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》 《Spring MVC 实现原理与源码解析 —— 精品合集》 《Spring Boot 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》 《Java 面试题 —— 精品合集》 ...转载 2019-12-16 13:54:54 · 163 阅读 · 0 评论 -
Kafka设计解析(六)- Kafka高性能架构之道
原创文章,转载请务必将下面这段话置于文章开头处。本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/high_throughput/摘要上一篇文章《Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告》从测试角度说明了Kafka的性能。本文从宏观架构层面和具体实现层面分析了Kafka如何实现高性能。宏观架构层面利用Pa...转载 2018-10-24 17:11:12 · 301 阅读 · 0 评论 -
Kafka设计解析(八)- Exactly Once语义与事务机制原理
本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/transaction/写在前面的话本文所有Kafka原理性的描述除特殊说明外均基于Kafka 1.0.0版本。为什么要提供事务机制Kafka事务机制的实现主要是为了支持Exactly Once即正好一次语义 操作的原子性 有状态操作的可恢复性Exactly Once《Kafk...转载 2018-10-25 11:09:39 · 346 阅读 · 0 评论 -
Kafka深度解析
本文转发自技术世界,原文链接 http://www.jasongj.com/2015/01/02/Kafka深度解析背景介绍Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息...转载 2018-10-22 17:43:03 · 215 阅读 · 0 评论 -
kafka架构
kafka的组件介绍Topic :消息根据Topic进行归类 Producer:发送消息者 Consumer:消息接受者 broker:每个kafka实例(server) Zookeeper:依赖集群保存meta信息。1.Topics组件介绍Topic:一类消息,每个topic将被分成多个partition(区),在集群的配置文件中配置。 partition:在存储层...转载 2018-09-13 10:22:06 · 1341 阅读 · 0 评论 -
Kafka实践:到底该不该把不同类型的消息放在同一个主题中
如果你使用了像Kafka这样的流式处理平台,就要搞清楚一件事情:你需要用到哪些主题?特别是如果你要将一堆不同的事件作为消息发布到Kafka,是将它们放在同一个主题中,还是将它们拆分到不同的主题中?Kafka主题最重要的一个功能是可以让消费者指定它们想要消费的消息子集。在极端情况下,将所有数据放在同一个主题中可能不是一个好主意,因为这样消费者就无法选择它们感兴趣的事件——它们需要消费所有的消息。...转载 2018-08-27 11:38:22 · 1303 阅读 · 0 评论 -
Kafka设计解析(七)- Kafka Stream
本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/kafka_stream/Kafka Stream背景Kafka Stream是什么Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature。它是提供了对存储于Kafka内的数据进行流式处理和分析的功能。Kafka Stream的特点如下:Kafka S...转载 2018-10-24 21:03:01 · 821 阅读 · 0 评论 -
kafka丢消息
kafka会丢消息主要集中在两个环节 消息落盘时机 消息落盘有异步刷新和同步刷新两种,明显异步刷新的可靠性要高很多。但在某些场景下追求性能而忽略可靠性,可以启用。 消息存储维护 持久化存储,这句话不是说来玩的。Oracle/MySQL做了这么久的存储,其中的灾难恢复工具等都非常完备并形成体系(出问题你能找到人并能解决问题)kafka的存储谁特么知道~工具又特么的少!另外就是...原创 2019-02-26 15:52:26 · 848 阅读 · 0 评论 -
Kafka的优化建议
Kafka的优化建议producer端: 设计上保证数据的可靠安全性,依据分区数做好数据备份,设立副本数等。 push数据的方式:同步异步推送数据:权衡安全性和速度性的要求,选择相应的同步推送还是异步推送方式,当发现数据有问题时,可以改为同步来查找问题。 flush是kafka的内部机制,kafka优先在内存中完成数据的交换,然后将数据持久化到磁盘.kafka首先会把数据缓存...原创 2019-02-26 16:24:17 · 995 阅读 · 0 评论 -
MQ中间件
消息队列有什么优点和缺点?为什么使用消息队列?假设你的业务场景遇到个技术挑战,如果不用 MQ 可能会很麻烦,但是你用了 MQ 之后会带给你很多好处。消息队列 MQ 的常见使用场景其实有很多,但是比较核心的有如下三个:解耦 异步 削峰解耦:A 系统发送个数据到 BCD 三个系统,接口调用发送,那如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?现在 A 系统又要发送...转载 2019-03-19 20:17:55 · 2151 阅读 · 0 评论 -
为什么一定要用MQ中间件
这篇文章我们会把消息中间件这块高频的面试问题来给大家说一下,也会涵盖一些 MQ 中间件常见的技术问题。假如说面试官看你简历里写了 MQ 中间件的使用经验,很可能会有如下的问题:你们公司生产环境用的是什么消息中间件? 为什么要在系统架构中引入消息中间件? 引入消息中间件之后会有什么好处以及坏处?好,下面我们一个个的来分析!你们公司生产环境用的是什么消息中间件?这个首先你可...转载 2019-03-19 20:19:21 · 734 阅读 · 0 评论 -
Kafka如何实现每秒上百万的超高并发写入?
这篇文章来聊一下 Kafka 的一些架构设计原理,这也是互联网公司面试时非常高频的技术考点。Kafka 是高吞吐低延迟的高并发、高性能的消息中间件,在大数据领域有极为广泛的运用。配置良好的 Kafka 集群甚至可以做到每秒几十万、上百万的超高并发写入。那么 Kafka 到底是如何做到这么高的吞吐量和性能的呢?这篇文章我们来详细说一下。页缓存技术 + 磁盘顺序写首先 Kafka ...转载 2019-03-20 20:50:26 · 2618 阅读 · 0 评论 -
Kafka是靠什么机制保持高可靠,高可用的?
面试大厂时,一旦简历上写了 Kafka,几乎必然会被问到一个问题:说说 Acks 参数对消息持久化的影响?这个 Acks 参数在 Kafka 的使用中,是非常核心以及关键的一个参数,决定了很多东西。所以无论是为了面试还是实际项目使用,大家都值得看一下这篇文章对 Kafka 的 Acks 参数的分析,以及背后的原理。如何保证宕机的时候数据不丢失?如果想理解这个 Acks 参数的...转载 2019-06-18 20:58:56 · 895 阅读 · 0 评论 -
Kafka设计原理看了又忘,忘了又看?
什么是消息队列?简单来说,消息队列是存放消息的容器。客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息。作者:lbzhello来源:博客园|2019-07-18 09:17什么是消息队列?简单来说,消息队列是存放消息的容器。客户端可以将消息发送到消息服务器,也可以从消息服务器获取消息。今天,我将围绕如下几个问题进行分享:为什么需要消息系统? Kafka...转载 2019-08-06 19:55:23 · 267 阅读 · 0 评论 -
Kafka文件存储机制
Kafka是什么Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。1.前言一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标...转载 2018-05-14 16:46:32 · 179 阅读 · 0 评论