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

.vip域名的网站排名网址推广主要做些什么内容

.vip域名的网站排名,网址推广主要做些什么内容,做机械一般做那个外贸网站,多语网站wordpress子站点目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态#xff0c;只需… 目录 减少发送mq的消息体内容 增加消费者数量 批量消费消息 临时队列转移 监控和预警机制 分阶段实施 最后还有一个方法就是开启队列的懒加载 这篇文章总结一下自己知道的解决消息积压得方法。 减少发送mq的消息体内容 像我们没有必要知道一个的中间状态只需知道一个最终状态就可以了。 发送的消息体只用包含id和状态等关键信息不用发送一个完整的对象内容。 消费者收到消息之后通过id调用原服务再将完整的消息对象内容查询出来即可最后再进行消费处理。 增加消费者数量 采用动态增加消费者的数量 Configuration public class RabbitMQConfig {Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);// 设置并发消费者数量factory.setConcurrentConsumers(5); // 初始消费者数量factory.setMaxConcurrentConsumers(20); // 最大消费者数量// 动态调整消费者数量factory.setConsumerTagStrategy(queue - consumer- UUID.randomUUID());return factory;} } Service public class ConsumerManagerService {Autowiredprivate RabbitListenerEndpointRegistry registry;public void adjustConsumerCount(String queueName, int count) {MessageListenerContainer container registry.getListenerContainer(queueName);if (container instanceof SimpleMessageListenerContainer) {SimpleMessageListenerContainer simpleContainer (SimpleMessageListenerContainer) container;simpleContainer.setConcurrentConsumers(count);}} } 批量消费消息 Service public class BatchMessageConsumer {RabbitListener(queues myQueue, containerFactory batchFactory)public void processBatch(ListMessage messages, Channel channel) {try {// 批量处理消息ListMessageDTO dtos messages.stream().map(this::convertToDTO).collect(Collectors.toList());// 批量保存到数据库batchSaveToDatabase(dtos);// 获取最后一条消息的deliveryTaglong lastDeliveryTag messages.get(messages.size() - 1).getMessageProperties().getDeliveryTag();// 批量确认channel.basicAck(lastDeliveryTag, true);} catch (Exception e) {// 批量拒绝handleBatchError(messages, channel);}} }// 配置批量消费 Configuration public class BatchConsumerConfig {Beanpublic SimpleRabbitListenerContainerFactory batchFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);// 启用批量消费factory.setBatchListener(true);// 批量大小factory.setBatchSize(100);// 批量超时时间factory.setReceiveTimeout(1000L);return factory;} } 临时队列转移 Service public class MessageTransferService {Autowiredprivate RabbitTemplate rabbitTemplate;public void transferMessages(String sourceQueue, String tempQueue, int batchSize) {while (true) {// 从源队列批量获取消息ListMessage messages new ArrayList();for (int i 0; i batchSize; i) {Message message rabbitTemplate.receive(sourceQueue);if (message null) break;messages.add(message);}if (messages.isEmpty()) break;// 转移到临时队列messages.forEach(msg - rabbitTemplate.send(tempQueue, msg));}} }// 临时队列的消费者 Component public class TempQueueConsumer {RabbitListener(queues #{tempQueue.name})public void processMessage(Message message) {// 使用更高效的处理方式fastProcessMessage(message);}Beanpublic Queue tempQueue() {return new Queue(temp-queue- UUID.randomUUID(), false, false, true);} } 监控和预警机制 Service Slf4j public class QueueMonitorService {Autowiredprivate RabbitTemplate rabbitTemplate;Scheduled(fixedRate 60000) // 每分钟执行一次public void monitorQueueSize() {String queueName myQueue;// 获取队列信息Properties properties rabbitTemplate.execute(channel - channel.queueDeclarePassive(queueName));// 获取消息数量int messageCount properties.getMessageCount();// 检查消息堆积if (messageCount threshold) {// 发送告警sendAlert(queueName, messageCount);// 动态调整消费者adjustConsumers(queueName, messageCount);}}private void adjustConsumers(String queueName, int messageCount) {// 根据消息数量动态调整消费者数量int newConsumerCount calculateConsumerCount(messageCount);consumerManagerService.adjustConsumerCount(queueName, newConsumerCount);} } 分阶段实施 Service public class MessageHandlingStrategy {public void handleMessageBacklog() {// 1. 首先增加消费者数量adjustConsumerCount();// 2. 如果仍然堆积启用批量处理if (isStillBacklogged()) {enableBatchProcessing();}// 3. 如果问题持续使用临时队列if (isEmergency()) {transferToTemporaryQueue();}} } 最后还有一个方法就是开启队列的懒加载
http://www.hkea.cn/news/14411922/

相关文章:

  • wordpress 局域网访问英文seo优化包年费用
  • 南京网站推广移动端网页界面设计
  • 深圳微商城网站设计费用tk注册网站
  • 适合前端做项目的网站网站开发子账号
  • 如何做网站嵌入腾讯地图北京市建设教育协会网站
  • 网站制作的公网站开发的疑虑
  • 合肥电子商务网站建设个人证书查询网入口免费
  • 旅游网站建设的目的网站安全
  • 音乐图书馆网站建设seo排名优化公司
  • 做国际网站要多少钱wordpress js放到oss
  • 网站跳转怎么办原创服装设计师
  • 网站怎么做多级菜单网站开发费用税
  • 网站关键词排名消失陕西百度公司
  • 牡丹江3d网站开发网站备案期间可以建站
  • 网站架构分析阳泉购物网站开发设计
  • wordpress能大网站主题flash网站与html5
  • 网站建设uuluoyuan个人网页制作
  • 网站建设实践论文上海好的网站设计公司有哪些
  • 向国外支付网站开发费wordpress总结
  • 更改网站名字wordpress主题 贴吧
  • 有了源码然后如何做网站英雄联盟手游小程序被投诉
  • 网站开发广东扬州建设企业网站
  • 网站开发完没人运营平度网站整站优化外包公司
  • gateface做网站怎么让做的网站赚钱吗
  • 专业网站建设找哪家好优化系统是什么意思
  • 如何解决网站只收录首页的一些办法数据处理网站开发
  • 帝国cms更改网站ico站外推广内容策划
  • 建设大型网站制作品牌亚马逊关键词排名查询工具
  • 东营 网站建设推广网站和品牌网站的区别
  • 笑话网站代码怎样在网上做推广