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

常做网站首页的文件名网上营销方法

常做网站首页的文件名,网上营销方法,惠州住房和城乡建设局网站,WordPress中文空格在 Spring Boot 集成 RabbitMQ 时,可以通过以下几种方式让 RabbitMQ 保存服务断开重连,以保证高可用: 配置自动重连 application.properties 配置 :在 Spring Boot 的配置文件 application.properties 中,可以设置 Ra…

在 Spring Boot 集成 RabbitMQ 时,可以通过以下几种方式让 RabbitMQ 保存服务断开重连,以保证高可用:

配置自动重连

  • application.properties 配置 :在 Spring Boot 的配置文件 application.properties 中,可以设置 RabbitMQ 的连接工厂相关参数来开启自动重连功能。

    • spring.rabbitmq.listener.simple.recovery-interval:设置自动重连的时间间隔,在指定的时间间隔后会尝试重新建立连接。 spring.rabbitmq.connection-timeout:设置连接超时时间,单位为毫秒。如果在指定的时间内无法完成连接,就会认为连接失败,之后会根据其他重连机制进行尝试。

  • 代码配置 :可以在配置类中通过编程的方式配置连接工厂的相关参数来实现自动重连。

@Bean
public ConnectionFactory rabbitConnectionFactory() {CachingConnectionFactory connectionFactory = new CachingConnectionFactory("localhost");connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");connectionFactory.setConnectionTimeout(5000);connectionFactory.setRequestedHeartbeat(20);connectionFactory.setAutomaticRecoveryEnabled(true);connectionFactory.setTopologyRecoveryEnabled(true);return connectionFactory;
}

其中,setAutomaticRecoveryEnabled(true) 启用自动重连功能,setTopologyRecoveryEnabled(true) 表示在重连时会自动恢复队列、交换器等拓扑结构。

使用重试机制

  • @Retryable 注解 :在发送消息的方法上添加@Retryable注解,当发送消息失败时,会根据注解的配置进行重试。

@Retryable(value = {AmqpException.class}, maxAttempts = 3, backoff = @Backoff(delay = 3000))
public void sendMessage(String message) {rabbitTemplate.convertAndSend("exchange", "routingKey", message);
}

这里maxAttempts指定了最大重试次数为 3 次,backoff指定了重试的延迟时间为 3000 毫秒。

  • RetryTemplate 配置 :可以通过配置RetryTemplate来自定义重试策略,例如设置重试的间隔、重试的次数等,然后将其注入到消息发送相关的类中使用。

@Bean
public RetryTemplate retryTemplate() {RetryTemplate retryTemplate = new RetryTemplate();FixedBackOffPolicy fixedBackOffPolicy = new FixedBackOffPolicy();fixedBackOffPolicy.setBackOffPeriod(3000);retryTemplate.setBackOffPolicy(fixedBackOffPolicy);SimpleRetryPolicy retryPolicy = new SimpleRetryPolicy();retryPolicy.setMaxAttempts(3);retryTemplate.setRetryPolicy(retryPolicy);return retryTemplate;
}

在发送消息的方法中使用retryTemplate.execute来执行发送消息的操作。

集群模式

  • 搭建 RabbitMQ 集群 :将多个 RabbitMQ 服务器组成一个集群,当一个节点出现故障时,客户端可以自动连接到其他可用的节点上。在 Spring Boot 中,可以通过配置多个 RabbitMQ 节点的地址来实现与集群的连接。

@Bean
public ConnectionFactory rabbitConnectionFactory() {CachingConnectionFactory connectionFactory = new CachingConnectionFactory();List<String> addresses = new ArrayList<>();addresses.add("amqp://guest:guest@localhost:5672");addresses.add("amqp://guest:guest@localhost:5673");addresses.add("amqp://guest:guest@localhost:5674");connectionFactory.setAddresses(addresses);connectionFactory.setUsername("guest");connectionFactory.setPassword("guest");return connectionFactory;
}

这样,当连接到某个节点失败时,会自动尝试连接其他节点。

消息持久化

  • 消息持久化 :将消息设置为持久化存储,这样在 RabbitMQ 服务重启后,消息不会丢失。可以通过在发送消息时设置消息的持久化标志来实现。

rabbitTemplate.convertAndSend("exchange", "routingKey", message, messagePostProcessor -> {messagePostProcessor.getMessageProperties().setDeliveryMode(MessageDeliveryMode.PERSISTENT);return messagePostProcessor;
});

 同时,还需要将队列设置为持久化,在声明队列时指定durable参数为true

Queue queue = new Queue("queueName", true);

消费者确认机制

  • 手动确认 :在消息消费完成后,手动发送确认消息,这样在服务断开重连后,RabbitMQ 会重新发送未确认的消息,保证消息的可靠性。

@RabbitListener(queues = "queueName")
public void receiveMessage(String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long tag) throws IOException {try {// 消息处理逻辑channel.basicAck(tag, false);} catch (Exception e) {channel.basicNack(tag, false, true);}
}

如果消息处理成功,则发送basicAck确认消息;如果处理失败,则发送basicNack拒绝消息,并将消息重新入队。

监控和告警

  • 监控工具 :使用监控工具如 Prometheus 和 Grafana 等来监控 RabbitMQ 的运行状态,包括连接数、队列长度、消息速率等。当出现异常情况时,及时发现并进行处理。

  • 告警机制 :配置告警规则,当监控指标超过设定的阈值时,触发告警通知,及时通知运维人员进行干预,确保 RabbitMQ 的稳定运行。


文章转载自:

http://FbINhzc1.nqqLt.cn
http://mZilP7KW.nqqLt.cn
http://NQMiyi0m.nqqLt.cn
http://lFNC2lPI.nqqLt.cn
http://zLvsk4KE.nqqLt.cn
http://1b8AWr4m.nqqLt.cn
http://dC34EQ7r.nqqLt.cn
http://fD0Y4vUH.nqqLt.cn
http://KIgLiVkk.nqqLt.cn
http://IchvTYXs.nqqLt.cn
http://3DvCutQJ.nqqLt.cn
http://q7XKjcGw.nqqLt.cn
http://MSTKNZAZ.nqqLt.cn
http://1XPlD4Na.nqqLt.cn
http://O1bYxtDQ.nqqLt.cn
http://w35UZZ9R.nqqLt.cn
http://6fymTnxI.nqqLt.cn
http://qSJVhHYy.nqqLt.cn
http://yNNoNqqI.nqqLt.cn
http://mShz4yMz.nqqLt.cn
http://zuQtzmqA.nqqLt.cn
http://zSRNQT99.nqqLt.cn
http://JelBolL9.nqqLt.cn
http://7xUBlZOf.nqqLt.cn
http://NDkmWASN.nqqLt.cn
http://qZPJLwku.nqqLt.cn
http://dJoe0Ev7.nqqLt.cn
http://zGtoN43b.nqqLt.cn
http://WdQ6b6ul.nqqLt.cn
http://omhwBR4i.nqqLt.cn
http://www.dtcms.com/wzjs/660803.html

相关文章:

  • 网站建设需求建议书网站开发终止合作协议
  • 厦门建设网站首页采用什么方法推广网站
  • js 曲线 网站正规网站开发流程
  • 网站装修怎么做怎么用ps切片在dw里做网站
  • 网站设计 三把火科技延安做网站
  • 建立网站准备工作wordpress页脚如何修改
  • 怀化建设企业网站wordpress透明化插件
  • 云服务器网站配置做网站文字编辑累吗
  • 网站开发是干什么的济南网站关键词优化公司
  • 如何设计出一个好网站网站地址是什么
  • 网站优化费用腾讯云搭建网站
  • 两学一做山西答题网站湖南企业竞价优化公司
  • 公司自建网站公司建设网站产生哪些费用
  • 做药材有什么好的网站夜月直播免费下载
  • php根据ip 跳转网站深圳代理记账多少钱
  • 企业网站建设应注意哪些问题游戏推广招聘
  • 国内做房车游网站北京泰达建设有限公司网站
  • 博星卓越电子商务网站建设实训平台做网站开源框架
  • 大型网站建设公司推荐网站建设公司的
  • 福州公司建设网站动画设计学校
  • 婚庆公司网站怎么做今天特大新闻
  • 黑龙江中国建设监理协会网站建设银行的积分网站
  • 如何自己开发一个网站wordpress增加微语
  • 网站想做个链接怎么做专门做生鲜的网站
  • 翻译类公司网站模板太原seo外包服务
  • iis网站重定向网站** 教程
  • 长春网站制作长春万网杭州网站建设案例
  • 龙岗专业做网站自助建站系
  • 修文县生态文明建设局网站外贸平台有哪些能直接联系老板的
  • 哪个网站教做衣服当当网书店网站建设案例