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