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

靖州网站建设兴趣电商平台有哪些

靖州网站建设,兴趣电商平台有哪些,有些网站为什么可以做资讯,栏目手机版 企业网站文章目录一、简单对象1. 依赖2. 生产者3. 消费者4. 配置文件5. spring版本二、复杂对象2.1. 生产者2.2. 消费者一、简单对象 1. 依赖 !--spring整合rabbitmq--dependencygroupIdorg.springframework.amqp/groupIdartifactIdspring-ra… 文章目录一、简单对象1. 依赖2. 生产者3. 消费者4. 配置文件5. spring版本二、复杂对象2.1. 生产者2.2. 消费者一、简单对象 1. 依赖 !--spring整合rabbitmq--dependencygroupIdorg.springframework.amqp/groupIdartifactIdspring-rabbit/artifactIdversion2.0.1.RELEASE/version/dependency注maven方式这一个依赖即可如果是非maven项目需要引入5个jar如下 推荐使用mavne方式简单非Maven项目先用maven把以来下载本地仓库复制到非maven的项目中即可。 2. 生产者 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:rabbithttp://www.springframework.org/schema/rabbitxsi:schemaLocationhttp://www.springframework.org/schema/rabbithttp://www.springframework.org/schema/rabbit/spring-rabbit-2.0.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsd!--生产者者配置如下--!-- 定义RabbitMQ的连接工厂 --rabbit:connection-factory idconnectionFactoryhost${rabbitmq.host}port${rabbitmq.port}username${rabbitmq.username}password${rabbitmq.password}virtual-host${rabbitmq.vhost}connection-timeout${rabbitmq.conTimeout}publisher-confirms${rabbitmq.publisher-confirms}publisher-returns${rabbitmq.publisher-returns}/!-- 管理消息队列 --rabbit:admin connection-factoryconnectionFactory/!--此处为配置文件方式 管控台配置模式需要注释 默认模式管控台 Start--!-- 定义一个队列或者多个队列 自动声明--rabbit:queue nameQueue-1 auto-declaretrue durabletrue/rabbit:topic-exchange nameexchange-1rabbit:bindings!-- 可绑定多个队列发送的时候指定key进行发送 --rabbit:binding queueQueue-1 patternws.tjqb//rabbit:bindings/rabbit:topic-exchange!--此处为配置文件方式 管控台配置模式需要注释 默认模式管控台 End--!-- 定义交换机 自动声明--rabbit:topic-exchange nameexchange-1auto-declaretrue durabletrue/!-- 5. 配置消息对象json转换类 --bean idjsonMessageConverter classorg.springframework.amqp.support.converter.Jackson2JsonMessageConverter /!-- 定义MQ消息模板1. id 定义消息模板ID2.connection-factory 把定义的连接工厂放到消息模板中3.confirm-callback confirm确认机制4.return-callback return确认机制5.mandatory #有2种状态设置为 true 后 消费者在消息没有被路由到合适队列情况下会被return监听而不会自动删除设置为 false 后 消费者在消息没有被路由到合适队列情况下会自动删除--rabbit:template idrabbitTemplateconnection-factoryconnectionFactoryexchangeexchange-1confirm-callbackconfirmCallBackListenerreturn-callbackreturnCallBackListenermandatorytruemessage-converterjsonMessageConverter/ /beanspackage com.gblfy.order.controller;import com.gblfy.order.pojo.FisCallingTrace; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.support.CorrelationData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID;RestController public class Send {public static final String EXCHANGE exchange-1;AutowiredRabbitTemplate rabbitTemplate;RequestMapping(/test)public String test() {String uuidStr UUID.randomUUID().toString();CorrelationData correlationId new CorrelationData(uuidStr);// 发送消息MapString, String map new HashMap();map.put(email, 550731230qq.com);rabbitTemplate.convertAndSend(EXCHANGE, ws.tjqb, map, correlationId);return success;}3. 消费者 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:rabbithttp://www.springframework.org/schema/rabbitxsi:schemaLocationhttp://www.springframework.org/schema/rabbithttp://www.springframework.org/schema/rabbit/spring-rabbit-2.0.xsdhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.1.xsd!--消费者配置如下--!-- 定义RabbitMQ的连接工厂 --rabbit:connection-factory idconnectionFactoryhost${rabbitmq.host} port${rabbitmq.port} username${rabbitmq.username}password${rabbitmq.password} virtual-host${rabbitmq.vhost}connection-timeout${rabbitmq.conTimeout}publisher-confirms${rabbitmq.publisher-confirms}publisher-returns${rabbitmq.publisher-returns}/!-- 管理消息队列 --rabbit:admin connection-factoryconnectionFactory/!-- 声明多个消费者对象 --bean idemailMessageListener classcom.gblfy.order.mqhandler.EmailMessageListener/!-- 监听队列1. connectionFactory 连接工厂2. manual 手动签收3. ref 消费者监听--rabbit:listener-container connection-factoryconnectionFactoryacknowledgemanualconcurrency${rabbitmq.concurrency}max-concurrency${rabbitmq.max-concurrency}rabbit:listener refemailMessageListener methodonMessage queue-namesQueue-1//rabbit:listener-container /beans package com.gblfy.order.mqhandler;import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageListener;import java.io.IOException; Component public class EmailMessageListener implements MessageListener {private static final ObjectMapper MAPPER new ObjectMapper();Overridepublic void onMessage(Message message) {try {JsonNode jsonNode MAPPER.readTree(message.getBody());String email jsonNode.get(email).asText();System.out.println(获取队列中消息 email);} catch (IOException e) {e.printStackTrace();}} }4. 配置文件 #RabbitMQ 连接信息 #IP地址 rabbitmq.host192.168.0.114 #端口 rabbitmq.port5672 #用户名 rabbitmq.usernamefis #密码 rabbitmq.passwordncl1234 #虚拟主机 rabbitmq.vhost/app/fisMQ #连接超时时间 rabbitmq.conTimeout15000 #发送确认 对应RabbitTemplate.ConfirmCallback接口 #消息发送成功 有2个重要参数 # ack 状态为true correlationId 全局唯一ID用于标识每一支队列 rabbitmq.publisher-confirmstrue #发送失败回退对应RabbitTemplate.ReturnCallback接口 rabbitmq.publisher-returnstrue #默认消费者数量 rabbitmq.concurrency10 #最大消费者数量 rabbitmq.max-concurrency20 5. spring版本 目前适配的spring版本4.2.3.RELEASE 二、复杂对象 声明配置文件不变 2.1. 生产者 package com.gblfy.order.controller;import com.gblfy.order.pojo.FisCallingTrace; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.support.CorrelationData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.UUID;RestController public class Send {public static final String EXCHANGE exchange-1;AutowiredRabbitTemplate rabbitTemplate;RequestMapping(/test)public String test() {FisCallingTrace f getFisCallingTrace();String uuidStr UUID.randomUUID().toString();CorrelationData correlationId new CorrelationData(uuidStr);// 发送消息MapString, Object map new HashMap();map.put(mReqXml, 请求报文);map.put(mResXml, 响应报文);map.put(mUUID, uuidStr);map.put(serviceName, NYHC);map.put(fisCallingTrace, f);rabbitTemplate.convertAndSend(EXCHANGE, ws.tjqb, map, correlationId);return success;}// RequestMapping(/test)// public String test() {// String uuidStr UUID.randomUUID().toString();// CorrelationData correlationId new CorrelationData(uuidStr);// // 发送消息// MapString, String map new HashMap();// map.put(email, 550731230qq.com);// rabbitTemplate.convertAndSend(EXCHANGE, ws.tjqb, map, correlationId);// return success;// }private FisCallingTrace getFisCallingTrace() {FisCallingTrace f new FisCallingTrace();f.setServicename(tjqb);f.setServicetype(1);f.setInterfacetype(2);f.setResstatus(1);f.setResremark(纽约数据回传接口);f.setReqdate(new Date());f.setReqtime(10:00:00);f.setResdate(new Date());f.setRestime(10:00:00);f.setReqxml(请求报文);f.setResxml(响应报文);return f;}} 2.2. 消费者 package com.gblfy.order.mqhandler;import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.gblfy.order.pojo.FisCallingTrace; import com.rabbitmq.client.Channel; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.Message; import org.springframework.amqp.rabbit.core.ChannelAwareMessageListener; import org.springframework.stereotype.Component;import java.io.IOException;Slf4j Component public class EmailMessageListener implements ChannelAwareMessageListener {private static final ObjectMapper MAPPER new ObjectMapper();Overridepublic void onMessage(Message message, Channel channel) throws Exception {try {JsonNode jsonNode MAPPER.readTree(message.getBody());String mReqXml jsonNode.get(mReqXml).asText();String mResXml jsonNode.get(mResXml).asText();String mUUID jsonNode.get(mUUID).asText();String serviceName jsonNode.get(serviceName).asText();System.out.println(获取队列中消息 mReqXml);System.out.println(获取队列中消息 mResXml);System.out.println(获取队列中消息 mUUID);System.out.println(获取队列中消息 serviceName);JsonNode jsonNode1 jsonNode.get(fisCallingTrace);String jsonStr MAPPER.writeValueAsString(jsonNode1);FisCallingTrace f MAPPER.readValue(jsonStr , FisCallingTrace.class);System.out.println(获取队列中消息 f.getReqxml());System.out.println(获取队列中消息 f.getResxml());// 消息的标识false只确认当前一个消息收到true确认所有consumer获得的消息channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);} catch (IOException e) {e.printStackTrace();}log.info(解析操作);log.info(落库操作);} }
http://www.yutouwan.com/news/485241/

相关文章:

  • 优秀电商设计网站有哪些内容wordpress 经典案例
  • 网站负责人核验照片小程序定制开发哪家好
  • 旅游网站模板html免费下载网络优化有哪些主要流程
  • 无锡网站制作网站建设石家庄住房和城乡建设部网站
  • 一键制作单页网站郑州专业高校网站建设公司
  • 可以建网站的平台襄阳网站建设公司招聘
  • 绍兴模板建站代理网站空间怎么弄
  • 站长数据国外媒体报道
  • 古典 网站模板江苏省建筑工程集团有限公司
  • 浙江久天建设有限公司网站网站的结构类型
  • 教育网站官网入口重庆市建设工程信息网官网打不开
  • 百度网站做不做无锡网站制作优化
  • 网站备案被注销微信网站域名
  • 青岛南丰网站建设公司qq空间个人网站
  • 进度跟踪网站开发百度网盟网站有哪些
  • 医院网站实例莱芜都市网官网
  • 网站 语言切换怎么做暗色系网站
  • 学做网站有没有前途网站怎么营销推广
  • 河南省建设工程质量安全监督网站seo优化网站查询
  • asp网站镜像代码梅河口市住房和城乡建设局网站
  • 佛山网站提升排名注册公司需要哪些条件
  • 手机建设网站制作网站建设制作经验足
  • 专门做电脑壁纸网站兰州微商城搭建
  • 济南网站营销怎样优化推广
  • 常州做网站包括哪些英文网站建设一般多少钱
  • 成都个人网站制作怎么可以做自己的网站
  • 哪些编程语言适合网站开发网站正在建设中html
  • 网站直播是未开票收入怎么做实物黄金哪个网站做的好
  • 设计方案表网站名称建设网站重庆
  • 越秀建设网站竞价排名的服务模式是