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

电子商务网站设计总结友情链接买卖平台

电子商务网站设计总结,友情链接买卖平台,wordpress修改网站icon,wordpress 限制访问背景 这里后补直接上代码 最佳实践 主要从两个方面保证消息不丢失 RabbitMQ方面 创建队列时开启持久化创建交换器时开启持久化创建镜像队列(可选)开启延迟队列(可选) 代码层面 开启生产者到交换器回调参数开启交换器到队列…

背景

这里后补直接上代码

最佳实践

主要从两个方面保证消息不丢失

RabbitMQ方面

  1. 创建队列时开启持久化
  2. 创建交换器时开启持久化
  3. 创建镜像队列(可选)
  4. 开启延迟队列(可选)

代码层面

  1. 开启生产者到交换器回调参数
  2. 开启交换器到队列回调参数
  3. 开启消费者手动ack
  4. 注意消费端打印日志,考虑手动补偿(可选)

实现代码

RabbitMQ配置文件

package com.jndj.core.config;import com.rabbitmq.client.ConnectionFactory;
import org.springframework.amqp.core.AcknowledgeMode;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;@Configuration
@EnableAutoConfiguration
public class RabbitMQAutoConfiguration {@Value("${spring.rabbitmq.host}")public String rmHost;@Value("${spring.rabbitmq.port}")public int rmPort;@Value("${spring.rabbitmq.username}")public String rmUsername;@Value("${spring.rabbitmq.password}")public String rmPassword;@Value("${spring.rabbitmq.virtual-host}")public String virtualHost;@Beanpublic CachingConnectionFactory connectionFactory() throws NoSuchAlgorithmException, KeyManagementException {ConnectionFactory rabbitConnectionFactory = new ConnectionFactory();rabbitConnectionFactory.setHost(rmHost);rabbitConnectionFactory.setPort(rmPort);rabbitConnectionFactory.setUsername(rmUsername);rabbitConnectionFactory.setPassword(rmPassword);rabbitConnectionFactory.setVirtualHost(virtualHost);rabbitConnectionFactory.useSslProtocol();CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory(rabbitConnectionFactory);cachingConnectionFactory.setPublisherReturns(true);cachingConnectionFactory.setPublisherConfirms(true);return cachingConnectionFactory;}@Beanpublic RabbitTemplate rabbitTemplate(CachingConnectionFactory connectionFactory) {RabbitTemplate rabbitTemplate = new RabbitTemplate();rabbitTemplate.setConnectionFactory(connectionFactory);rabbitTemplate.setMandatory(true);rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {@Overridepublic void confirm(CorrelationData correlationData, boolean ack, String cause) {System.out.println("ConfirmCallback:     " + "相关数据:" + correlationData);System.out.println("ConfirmCallback:     " + "确认情况:" + ack);System.out.println("ConfirmCallback:     " + "原因:" + cause);}});rabbitTemplate.setReturnCallback(new RabbitTemplate.ReturnCallback() {@Overridepublic void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) {System.out.println("ReturnCallback:     " + "消息:" + message);System.out.println("ReturnCallback:     " + "回应码:" + replyCode);System.out.println("ReturnCallback:     " + "回应信息:" + replyText);System.out.println("ReturnCallback:     " + "交换机:" + exchange);System.out.println("ReturnCallback:     " + "路由键:" + routingKey);}});rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());return rabbitTemplate;}@Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(CachingConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setAcknowledgeMode(AcknowledgeMode.MANUAL);return factory;}}

生产者

    public AjaxResult insertStuResults(@RequestBody MyoResults model) {try {rabbitTemplate.convertAndSend(RabbitMQConstant.EX_STU_RESULTS_MANUAL, RabbitMQConstant.Q_STU_RESULTS_MANUAL, model);return AjaxResult.success("上送成功");} catch (Exception e) {return AjaxResult.error(e.getMessage());}}

消费者

    @RabbitListener(queues = RabbitMQConstant.Q_STU_RESULTS_MANUAL)@RabbitHandlerpublic void getManualMsg(Message message, Channel channel) throws IOException {String jsonString = new String(message.getBody(), StandardCharsets.UTF_8);ObjectMapper objectMapper = new ObjectMapper();MyoResults model = objectMapper.readValue(jsonString, MyoResults.class);iStuResultsService.insertMongodb(model);channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);}
http://www.dtcms.com/wzjs/125828.html

相关文章:

  • 电子商务做网站百度关键词如何优化
  • 绵阳网站建设费用如何规划企业网络推广方案
  • 张店党风廉政建设网站网络宣传方式有哪些
  • 手机版网站开发电商网站建设定制
  • 深圳住房和建设局网站融悦居百度普通下载
  • 网站制作月薪多少百度seo排名优化是什么
  • 自己做网站需要多少钱百度下载安装2022最新版
  • wordpress用户登录显示请求失败长沙网站优化效果
  • 成都专业做网站推广电话天津网站优化软件
  • 哈尔滨如何做网站推广优化郑州靠谱seo电话
  • 专门做品牌折扣的网站有哪些自己怎样推广呢
  • 怎么样做网站代站内seo是什么意思
  • wordpress 幻灯片代码在哪里seochinaz查询
  • 高端设计引擎优化seo
  • 成都的网站建设公司哪家好企业培训师资格证报考2022
  • 建设银行行号查询网站找一个免费域名的网站
  • 想建一个网站爱廷玖达泊西汀
  • 官网应用商店网站推广与优化平台
  • 课程网站建设的设计报告厦门网络推广培训
  • 云南房产网站建设山东seo首页关键词优化
  • 小企业来说 电子商务网站服务器的建设方案中文域名注册官网
  • 学校网站建设过程搜索引擎营销的主要方式有
  • 怎样建设赌博网站免费b站推广网站短视频
  • dw网站轮播效果怎么做seo关键词排名优化系统
  • 北京做网站的公司商集客电话广州seo顾问seocnm
  • 怎样做淘宝券网站最好的关键词排名优化软件
  • 相册网站源码php网络推广的平台有哪些
  • 佛山企业网站建设咨询花西子网络营销案例分析
  • 云南网站做的好的公司简介湖南优化电商服务有限公司
  • wordpress注册邀请码企业网站优化解决方案