随笔分类 -  MQ

摘要:提高系统性能首先考虑的是数据库的优化,但是数据库因为历史原因,横向扩展是一件非常复杂的工程,所有我们一般会尽量把流量都挡在数据库之前。 不管是无限的横向扩展服务器,还是纵向阻隔到达数据库的流量,都是这个思路。阻隔直达数据库的流量,缓存组件和消息组件是两大杀器。 1. MQ简介 MQ:Message 阅读全文
posted @ 2022-10-09 23:29 snail灬 阅读(321) 评论(0) 推荐(0) 编辑
摘要:Kafka Kafka架构由broker和zookeeper组成,如下图: 注意:Kafka2.8版本可以不依赖Zookeeper独立运行了 Pulsar Pulsar的架构如下: Pulsar Broker会在本地缓存消息,并且支持TTL(消息的存活时间) 从上面的2个架构我们看到,Kafka和P 阅读全文
posted @ 2022-10-08 22:58 snail灬 阅读(1272) 评论(0) 推荐(0) 编辑
摘要:发布订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖他的对象都将得到通知。 RocketMQ的消息订阅分为两种模式: Push模式(MQPullConsumer): Broker 主动向消费者推送。 Pull模式(MQPushConsumer): 消费 阅读全文
posted @ 2022-10-07 11:40 snail灬 阅读(1200) 评论(0) 推荐(0) 编辑
摘要:有序消息 有序消息又叫顺序消息(FIFO消息) 是指消息的消费顺序和生产顺序相同,在有些业务逻辑下,必须保证顺序。 比如订单的生成、付款、发货,这个消息必须按照顺序处理才行。 顺序消息分为全局顺序和分区顺序 全局顺序 一个Topic内所有的消息都发送到同一个queue,按照先进先出的顺序进行发布和消 阅读全文
posted @ 2022-09-28 00:12 snail灬 阅读(67) 评论(0) 推荐(0) 编辑
摘要:批量消息 为什么使用批量消息? 在很多调优的时候,比如数据库批量处理,有些请求进行合并发送等都是类似批量的实现 RocketMQ 批量发送也是为了追求性能,特别在消息数量特别大的时候,批量效果就非常明显 使用批量消息的限制? 同一批次的消息应该具有相同主题、相同的消息配置 不支持延迟消息 建议一个批 阅读全文
posted @ 2022-09-28 00:05 snail灬 阅读(160) 评论(0) 推荐(0) 编辑
摘要:一、单实例安装&启动 下载rocketmq安装包: cd /opt/soft # 下载二进制安装包 wget https://archive.apache.org/dist/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip # 如果没有安装 unzi 阅读全文
posted @ 2022-09-26 23:53 snail灬 阅读(565) 评论(0) 推荐(0) 编辑
摘要:1、功能 支持事务消息 顺序消费 kafka 实现顺序, 批量消息 定时消息 消息回溯 2、概念 gruop、topic、queue 3、系统组成 Producer Consumer Broker NameSever,类似于zookeeper,做注册中心用。 Producer:rocketmq提供多 阅读全文
posted @ 2022-09-25 23:33 snail灬 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Apache Kafka的流行归功于它设计和操作简单、存储系统高效、充分利用磁盘顺序读写等特性、非常适合在线日志收集等高吞吐场景。 Apache Kafka特性之一是它的复制协议。对于单个集群中每个Broker不同工作负载情况下,如何自动调优Kafka副本的工作方式是比较有挑战的。它的挑战之一是要知 阅读全文
posted @ 2022-09-23 00:16 snail灬 阅读(493) 评论(0) 推荐(0) 编辑
摘要:名词解释 要想说明白kafka的HA机制,我们必须先搞明白几个缩写名词, 1、AR、ISR、OSR AR:Assigned Replicas,某分区的所有副本(这里所说的副本包括leader和follower)统称为 AR。 ISR:In Sync Replicas,所有与leader副本保持"一定 阅读全文
posted @ 2022-09-23 00:01 snail灬 阅读(221) 评论(0) 推荐(0) 编辑
摘要:kafka offset 的存储 老的方式: 小于 0.9版本 存在 zookeeper 大于 0.9版本 kafka本身,需要做第一次消费,kafka会在内部维护一个__comsumer_offset 的topic 因为kafka设计的时候向下兼容,高版本的client api适配了低版本。 /c 阅读全文
posted @ 2022-09-22 00:40 snail灬 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Kafka Stream 概述 Kafka Streams是一个客户端库,用于构建任务关键型实时应用程序和微服务,其中输入和/或输出数据存储在Kafka集群中。Kafka Streams结合了在客户端编写和部署标准Java和Scala应用程序的简单性以及Kafka服务器端集群技术的优势,使这些应用程 阅读全文
posted @ 2022-09-07 23:48 snail灬 阅读(76) 评论(0) 推荐(0) 编辑
摘要:安装Zookeeper docker run --name zookeeper -d -p 2181:2181 -v /etc/localtime:/etc/localtime library/zookeeper 安装Kafka docker run -d --name kafka -p 9092: 阅读全文
posted @ 2022-09-06 00:20 snail灬 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Apache Kafka是 一个分布式流处理平台 流处理平台特性 可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。 可以储存流式的记录,并且有较好的容错性。 可以在流式记录产生时就进行处理。 Kafka组件 Topic和 Logs Kafka 通过 topic 对存储的流数据进 阅读全文
posted @ 2022-08-07 23:05 snail灬 阅读(179) 评论(0) 推荐(0) 编辑
摘要:ActiveMQ、RabbitMQ、Kafka对比 | | ActiveMQ | RabbitMQ | Kafka | | | : : | : : | : : | | 所属社区/公司 | Apache | Mozilla Public License | Apache/LinkedIn | | 开发 阅读全文
posted @ 2022-08-07 18:05 snail灬 阅读(193) 评论(0) 推荐(0) 编辑
摘要:消费端限流 假设一个场景,首先,我们 Rabbitmq 服务器积压了有上万条未处理的消息,我们随便打开一个消费者客户端,会出现这样情况: 巨量的消息瞬间全部推送过来,但是我们单个客户端无法同时处理这么多数据! 当数据量特别大的时候,我们对生产端限流肯定是不科学的,因为有时候并发量就是特别大,有时候并 阅读全文
posted @ 2022-07-12 23:09 snail灬 阅读(1649) 评论(0) 推荐(0) 编辑
摘要:RabbitMQ消息的可靠性投递主要两种实现: 1、通过实现消费的重试机制,通过@Retryable来实现重试,可以设置重试次数和重试频率; 2、生产端实现消息可靠性投递。 两种方法消费端都可能收到重复消息,要求消费端必须实现幂等性消费。 消息的可靠投递 生产端 在使用 RabbitMQ 的时候,作 阅读全文
posted @ 2022-07-07 00:12 snail灬 阅读(315) 评论(0) 推荐(0) 编辑
摘要:持久化 RabbitMQ 的持久化分交换器持久化、队列持久化和消息持久化。 定义持久化交换器,通过第三个参数 durable 开启/关闭持久化 channel.exchangeDeclare(exchangeName, exchangeType, durable) 定义持久化队列,通过第二个参数 d 阅读全文
posted @ 2022-07-06 21:30 snail灬 阅读(719) 评论(0) 推荐(1) 编辑
摘要:多机多节点集群部署(普通模式) 一、 环境准备 准备三台安装好RabbitMQ 的机器,安装方法见 安装步骤 10.10.1.41 10.10.1.42 10.10.1.43 提示:如果使用虚拟机,可以在一台VM上安装好RabbitMQ后,创建快照,从快照创建链接克隆,会节省很多磁盘空间 二、修改配 阅读全文
posted @ 2022-07-04 22:24 snail灬 阅读(1661) 评论(0) 推荐(0) 编辑
摘要:AMQP ( Advanced Message Queuing Protocol)高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 AMQP结构 Module Layer:位于协议最高层,主要定义了一些供客户端调用的命令,客户端可以利用这些命令实现自己的业务逻辑。 例如,客户端 阅读全文
posted @ 2022-07-03 22:33 snail灬 阅读(647) 评论(0) 推荐(0) 编辑
摘要:一、安装依赖环境 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本 在 https://github.com/rabbitmq/erlang-rpm/releases 页面找到需要下载的erlang版本 阅读全文
posted @ 2022-07-03 11:26 snail灬 阅读(452) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示