[rocketmq]如何保证消息有序性?
[rocketmq]如何保证消息有序性?
|
0 评论
RocketMQ创建topic时可以指定多个MessageQueue,生产者发送消息时默认情况下会均衡得往topic中的所有MessageQueue发送消息,所以如果发送的消息有前后顺序要求的话,那么默认的情况下消息生产者不能保证消息的有序性,因为需要保证有序的这些消息会分布到不同的MessageQ
[rocketmq]重试队列&死信队列
[rocketmq]重试队列&死信队列
|
0 评论
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("test-consumer-group");consumer.setNamesrvAddr("192.168.253.100:9876");
[rocketmq]RocketMQ事务消息的实现
[rocketmq]RocketMQ事务消息的实现
|
0 评论
RocketMQ通过两阶段提交的方式实现事务消息,MQ生产者首先向RocketMQ发送half消息(prepare),RocketMQ响应之后生产者执行本地事务,然后根据本地事务执行情况再向RocketMQ发送Commit或者Rollback消息。如果这个过程中,RocketMQ一直没有收到生产者发
[rocketmq]RocketMQ如何持久化消息数据的?
[rocketmq]RocketMQ如何持久化消息数据的?
|
0 评论
消息生产者发送消息时,Broker把消息存入到CommitLog中,每个CommitLog大小为1GB,CommitLog是一个顺序读写的文件,而且CommitLog并不会直接保存在磁盘中,而是保存在OS PageCache,OS PageCache性能接近内存,然后默认情况下以异步刷入的方式从OS
[rocketmq]RocketMQ生产者到底如何发送消息的?
[rocketmq]RocketMQ生产者到底如何发送消息的?
|
0 评论
生产者Producer在发送消息的时候需要指定Topic,例如Message message = new Message(“test-topic”, buildString().getBytes(RemotingHelper.DEFAULT_CHARSET)); 通常Topic需要先提前创建好,在创
[rocketmq]记一次RocketMQ的压测过程
[rocketmq]记一次RocketMQ的压测过程
|
0 评论
一、应该如何压测对RocketMQ的压测不能只关注RocketMQ的TPS,如果TPS达到峰值的同时,服务器的资源负载,比如CPU负载、内存使用率、磁盘IO负载、JVM GC频率以及网络流量负载都非常高,那么其实这个RocketMQ的TPS并不是最合适的峰值,因为有可能会导致服务器宕机,因此我们在压
[RocketMQ]调整OS内核参数和JVM参数
[RocketMQ]调整OS内核参数和JVM参数
|
0 评论
一、OS内核参数(1)vm.overcommit_memoryLinux内存分配策略,可选值为0、1、2,默认为0.0:表示内核将检查是否有足够的可用内存供应用进程使用,如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用程序。1:表示内核允许分配所有的物理内存,而不管当前的内
[RocketMQ]技术架构
[RocketMQ]技术架构
|
0 评论
RocketMQ架构上主要分为四部分:Producer:消息生产者,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费者,支持分布式集群方式部署。支持以push推,pull拉两种模式对
[RocketMQ]订单系统存在的问题以及如何解决
[RocketMQ]订单系统存在的问题以及如何解决
|
0 评论
一、订单系统存在的常见问题1、用户取消支付用户提交订单之后订单系统会锁定库存,然后创建订单,这是订单的状态为待支付,然后跳转到支付页面,如果用户取消支付,那么订单的状态会一直都是待支付状态,而且对应库存被锁定,那么订单系统会保存该状态一段时间,比如一天,如果这段时间内,用户还没支付该订单,那么系统会
[redis]运行模式
[redis]运行模式
|
0 评论
一、单机1、部署(1)安装$ wget https://download.redis.io/releases/redis-6.2.6.tar.gz$ tar xzf redis-6.2.6.tar.gz$ cd redis-6.2.6$ make PREFIX=/usr/local/redis-6.