当前位置: 首页 > wzjs >正文

甘肃商城网站建设最新注册的公司在哪里可以查询

甘肃商城网站建设,最新注册的公司在哪里可以查询,北海网站制作公司,为外国企业做中文网站建设RabbitMQ 的限流(流量控制)主要依赖于 QoS(Quality of Service) 机制,即 prefetch count 参数。这个参数控制每个消费者一次最多能获取多少条未确认的消息,从而避免某个消费者被大量消息压垮。 1. RabbitMQ…

RabbitMQ 的限流(流量控制)主要依赖于 QoS(Quality of Service) 机制,即 prefetch count 参数。这个参数控制每个消费者一次最多能获取多少条未确认的消息,从而避免某个消费者被大量消息压垮。


1. RabbitMQ 限流的主要方式

(1) 基于 prefetch count 进行流量控制

作用:控制 RabbitMQ 一次最多发送多少条消息 给消费者,避免消费者积压太多消息导致内存爆炸。

  • 默认情况下,RabbitMQ 会源源不断地向消费者推送消息,直到消费者崩溃。
  • prefetch count 设为 1,表示消费者一次只获取 1 条消息,处理完再取下一条。

示例(Java Spring Boot 版):

// 生产者 - 用户抢购
public void sendSeckillRequest(String userId, String productId) {String message = userId + "," + productId;rabbitTemplate.convertAndSend("seckillQueue", message);
}// 消费者 - 处理秒杀
@RabbitListener(queues = "seckillQueue", containerFactory = "customContainerFactory")
public void handleSeckillRequest(Message message, Channel channel) throws IOException {try {String msg = new String(message.getBody(), StandardCharsets.UTF_8);System.out.println("收到秒杀请求:" + msg);// 模拟秒杀业务处理Thread.sleep(1000);// 手动ACK,表示消息已消费完成channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);} catch (Exception e) {// 处理失败时拒绝消息,并放回队列channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);}
}

对应的RabbitMQ 配置(限制 prefetch count)

@Bean
public SimpleRabbitListenerContainerFactory customContainerFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setAcknowledgeMode(AcknowledgeMode.MANUAL); // 手动ACKfactory.setPrefetchCount(1); // **每次只取 1 条消息**return factory;
}

这样可以限制 RabbitMQ 一次最多给每个消费者发送 1 条消息,等它处理完了才会发送下一条。


(2) 基于 x-max-length 限制队列长度

作用:限制消息队列的最大长度,超出部分的消息会被丢弃。

示例(Java 代码方式创建队列,并限制最大长度 1000):

@Bean
public Queue seckillQueue() {return QueueBuilder.durable("seckillQueue").withArgument("x-max-length", 1000) // **最多存 1000 条消息**.build();
}

这样,RabbitMQ 最多存 1000 条秒杀请求,超出的会自动丢弃,避免无限堆积。


(3) 基于 x-message-ttl 限制消息存活时间

作用:让 RabbitMQ 的消息有过期时间,超时未消费的消息会被删除。

示例(Java 代码方式):

@Bean
public Queue seckillQueue() {return QueueBuilder.durable("seckillQueue").withArgument("x-message-ttl", 5000) // **5 秒后未消费,自动删除**.build();
}

这样,RabbitMQ 超过 5 秒未消费的消息会自动删除,避免秒杀请求无限堆积。


(4) 基于 x-max-priority 设置优先级队列

作用:高优先级的消息先被消费。

示例(Java 代码方式):

@Bean
public Queue seckillQueue() {return QueueBuilder.durable("seckillQueue").withArgument("x-max-priority", 10) // **优先级范围 0-10**.build();
}

生产者在发送消息时,可以为每条消息指定优先级:

rabbitTemplate.convertAndSend("seckillQueue", "普通用户秒杀请求", message -> {message.getMessageProperties().setPriority(1); // 普通用户优先级低return message;
});rabbitTemplate.convertAndSend("seckillQueue", "VIP 用户秒杀请求", message -> {message.getMessageProperties().setPriority(9); // VIP 用户优先级高return message;
});

优先级范围:0~10(具体取决于队列的 x-max-priority 设置)。

  • 0 表示最低优先级
  • 10 表示最高优先级
  • RabbitMQ 会优先发送高优先级的消息给消费者。

这样,RabbitMQ 支持优先级消息,比如可以让 VIP 用户的秒杀请求优先处理。


2. 结合多个限流策略优化秒杀系统

高并发秒杀场景下,RabbitMQ 限流可以这样设计:

限流方式作用
prefetch count = 1限制消费者一次最多消费 1 条消息,防止消息处理过载。
x-max-length = 1000限制队列最大存储 1000 条消息,超出的直接丢弃,防止消息堆积。
x-message-ttl = 5000超过 5 秒未消费的秒杀请求自动删除,避免系统长时间积压请求。
x-max-priority = 10支持优先级消息,比如 VIP 用户的消息先消费。

这样能有效防止 RabbitMQ 队列爆炸,保护数据库,提升秒杀成功率


3. 总结

基于 prefetch count 限制消费速率,防止消费者被消息压垮。
基于 x-max-length 限制队列最大长度,防止秒杀请求无限堆积。
基于 x-message-ttl 让过期消息自动删除,避免长时间存积压请求。
基于 x-max-priority 提高 VIP 用户的处理优先级,提升体验。

这些策略组合使用,可以大幅提升RabbitMQ 在秒杀系统中的稳定性和吞吐能力 


文章转载自:

http://xE0GrGih.wyppp.cn
http://5KXukP1W.wyppp.cn
http://o6G2FiBP.wyppp.cn
http://hGvZmYli.wyppp.cn
http://4pa0i89W.wyppp.cn
http://bPU3S2YQ.wyppp.cn
http://bqBaYqoi.wyppp.cn
http://OiPYXnLB.wyppp.cn
http://gyJY4zcv.wyppp.cn
http://FWWkENOy.wyppp.cn
http://Kb8J0EXY.wyppp.cn
http://2J36BnuS.wyppp.cn
http://fCtJ6IeA.wyppp.cn
http://jzWBuSrg.wyppp.cn
http://4yGyiQZt.wyppp.cn
http://YrVz2iMM.wyppp.cn
http://PoomfHnT.wyppp.cn
http://ymIdH38V.wyppp.cn
http://DaxegOcQ.wyppp.cn
http://y6b50WYV.wyppp.cn
http://bpy5029k.wyppp.cn
http://Dwh1qP0q.wyppp.cn
http://gIyhg405.wyppp.cn
http://Jsh1tokM.wyppp.cn
http://PljU4luI.wyppp.cn
http://j2DgTuE2.wyppp.cn
http://gbsWthCi.wyppp.cn
http://YLzLtz9f.wyppp.cn
http://tuSCIX8C.wyppp.cn
http://3wAymqar.wyppp.cn
http://www.dtcms.com/wzjs/779057.html

相关文章:

  • 网站开发环境ide教育培训网络推广培训
  • 太原做网站多少钱长沙模板建网站需要多久
  • 别人的网站是怎么找到的网络推广软文是一种很好的推广方式
  • 建设网站情况说明范文wordpress底部菜单
  • 做网站登录页面的论文网站seo在哪里设置
  • 用wordpress仿a站张家界网络营销
  • 淘宝客做网站链接海口网站建设开发
  • 网站建设画册设计wordpress+采集小说
  • 网站建设出现乱码免费企业网站
  • 官网建设建站wordpress 4.6.1
  • 任丘网站建设用模板做的网站不好优化
  • 咖啡网站建设的需求分析沧州专业网站建设公司
  • 没有网站可以做的广告联盟大型小说网站开发语言
  • 宁波营销型网站建设seo查询 站长之家
  • 域名访问过程会不会影响网站访问节点网站
  • wordpress子目录 多站点请seo的人帮做网站排名
  • 枣强网址建站保证量身定制的营销型网站
  • 南山最专业的网站建设响应式网站手机端
  • 怎么查询网站的域名自己做的网站图片无法显示
  • 贵州毕节网站建设北京多语言网站建设
  • 在线咨询网站开发价格江阴做网站优化
  • 网站系统建设思想如何写成都市网站建设费用及企业
  • 如何评估网站百度app营销软件
  • 开源网站开发文档下载端州网站建设
  • 怎么做监测网站的浏览量营销推广策略有哪些
  • 一键建站哪家信誉好静海的做网站
  • 怎么用手机建网站微站设计
  • 怎么在百度上做公司网站网站建设公司968
  • 中信建设有限责任公司国内区事业部执行总经理廖鸿韬抖音seo招商
  • 网络推广工作内容网络培训seo