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

做网站公司郑州汉狮建网站和做微信哪个好

做网站公司郑州汉狮,建网站和做微信哪个好,桂平网站制作,武建安装公司新闻背景#xff1a; 为了减轻服务器的压力#xff0c;现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求#xff0c;项目的代码属于线上生产代码#xff0c;直接用于生产即可#xff01; 此项目采用MQ发送消息模式为:路由模式#xff0c;如果对RabbitM… 背景 为了减轻服务器的压力现在原有项目的基础上集成消息队列来异步处理消息! 此项目是企业真实需求项目的代码属于线上生产代码直接用于生产即可 此项目采用MQ发送消息模式为:路由模式如果对RabbitMQ不熟悉请学习RabbitMQ专栏进行相关知识点的学习遇到问题可以给我留言看到后定会回复 文章目录一、RabbitMQ 路由模式快速入门1. RabbitMQ 路由模式简述2. RabbitMQ 路由符模式图示3. MQ角色组成二、SSM集成RabbitMQ2.1. 引依赖2.2. 生产者配置文件2.3. 消费者配置文件2.4. 连接配置文件2.5. 生产者代码2.6 消费者2.7 MQ工具类三、管控台队列绑定交换机3.1. 复制队列名称3.2. 队列绑定交换机四、验证测试4.1. 启动项目4.2. 清空控制台4.4. 生产者①请求4.5. 生产者②请求五、启动RabbitMQ5.1. 进入sbin目录双击运行5.2. 启动图示一、RabbitMQ 路由模式快速入门 1. RabbitMQ 路由模式简述 生产者申明一个direct类型交换机然后发送消息到这个交换机指定路由键。 消费者指定消费这个交换机的这个路由键即可接收到消息其他消费者收不到。 2. RabbitMQ 路由符模式图示 3. MQ角色组成 序号说明角色①生产者PRODUCER②消费者CONSUMER③消息队列QUEUE④交换机EXCHANGE⑤路由routingKeyROUTINGKEY⑥交换机和队列绑定EXCHANGE和ROUTINGKEY绑定⑦消息区配规则区配一个词还是多个词 二、SSM集成RabbitMQ 2.1. 引依赖 !--spring整合rabbitmq--dependencygroupIdorg.springframework.amqp/groupIdartifactIdspring-rabbit/artifactIdversion1.4.0.RELEASE/version/dependency2.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-1.4.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}/!-- 管理消息队列 --rabbit:admin connection-factoryconnectionFactory/!-- 定义交换机 自动声明--rabbit:direct-exchange nameORDER-TRACE-EXCHANGEauto-declaretrue durabletrue/!-- 定义MQ消息模板 --rabbit:template idrabbitTemplateconnection-factoryconnectionFactory exchangeORDER-TRACE-EXCHANGE/ /beans2.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-1.4.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}/!-- 管理消息队列 --rabbit:admin connection-factoryconnectionFactory/!-- 定义一个队列或者多个队列 --rabbit:queue nameORDER-MENU-CATEGORY-QUEUE auto-declaretrue durabletrue/!-- 声明多个消费者对象 --bean idmQSimpleMsgHandler classcom.gblfy.order.mqhandler.MQSimpleMsgHandler/!-- 监听队列 --rabbit:listener-container connection-factoryconnectionFactoryrabbit:listener refmQSimpleMsgHandler methodexecute queue-namesORDER-MENU-CATEGORY-QUEUE//rabbit:listener-container /beans2.4. 连接配置文件 rabbitmq.host127.0.0.1 rabbitmq.port5672 rabbitmq.usernameadmin rabbitmq.passwordadmin rabbitmq.vhost/admin2.5. 生产者代码 package com.gblfy.order.controller;import com.gblfy.order.utils.MQSendMsgUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody;import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date;Controller Slf4j public class SimpleMQMsgSendController {Autowiredprivate MQSendMsgUtils mqSendMsgUtils;RequestMapping(value /sendSimpleMQMsg, method RequestMethod.GET)ResponseBodypublic String snedSimpleMQMsg() {/*** 模拟发送数据* 1. serviceName 接口名称* 2. type 路由routingKey*/String serviceName my name serviceName;String type menu;//发送消息到MQ的交换机通知其他系统mqSendMsgUtils.sendMsg(serviceName, type);return snedSimpleMQMsg success !!!;}RequestMapping(value /sendSimpleMQMsg2, method RequestMethod.GET)ResponseBodypublic String snedSimpleMQMsg2() {/*** 模拟发送数据* 1. serviceName 接口名称* 2. type 路由routingKey*/String serviceName my name serviceName2;String type category;//发送消息到MQ的交换机通知其他系统mqSendMsgUtils.sendMsg(serviceName, type);return snedSimpleMQMsg success !!!;}public static void main(String[] args) {DateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);System.out.println(dateFormat.format(new Date()));} } 2.6 消费者 package com.gblfy.order.mqhandler;import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j;Slf4j public class MQSimpleMsgHandler {private static final ObjectMapper MAPPER new ObjectMapper();/*** 接收MQ消息** param msg*/public void execute(String msg) {try {JsonNode jsonNode MAPPER.readTree(msg);String serviceName jsonNode.get(serviceName).asText();String routingKey jsonNode.get(routingKey).asText();String currentDate jsonNode.get(currentDate).asText();log.info(接口名称: serviceName);log.info(路由routingKey: routingKey);log.info(当前时间: currentDate);} catch (Exception e) {e.printStackTrace();}} }2.7 MQ工具类 package com.gblfy.order.utils;import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.databind.ObjectMapper; import com.gblfy.order.pojo.FisCallingTrace; import com.gblfy.order.pojo.RequestInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map;/*** MQ发送消息公用工具类* p* MQ发送消息模式采用 通配符模式* order.* 区配一个词* order.# 区配一个或者多个词* p** author gblfy*/ Component Slf4j public class MQSendMsgUtils {//格式化时间public static final DateFormat dateFormat new SimpleDateFormat(yyyy-MM-dd);// 日期格式//引入json工具类private static final ObjectMapper MAPPER new ObjectMapper();Autowired//注入发送消息模板private RabbitTemplate rabbitTemplate;/*** 发送MQ消息公用类** param mFisCallingTrace 轨迹保存的数据对象* param type 路由routingKey 字符串拼接* param reqXml 请求报文* param resXml 响应报文* param uuid 随机生成的uuid*/public void sendMsg(FisCallingTrace mFisCallingTrace, String type, String reqXml, String resXml, String uuid) {try {RequestInfo requestInfo new RequestInfo().builder().fisCallingTrace(mFisCallingTrace).mReqXml(reqXml).mResXml(resXml).mUUID(uuid).serviceName(mFisCallingTrace.getServicename()).type(type).build();//发送消息到MQ的交换机通知其他系统String jsonStr JSON.toJSONString(requestInfo);rabbitTemplate.convertAndSend(order. type, jsonStr);} catch (Exception e) {e.printStackTrace();}}/*** 发送MQ消息公用类** param serviceName 接口名称* param type 路由routingKey*/public void sendMsg(String serviceName, String type) {try {//发送消息到MQ的交换机通知其他系统MapString, Object msg new HashMapString, Object();msg.put(serviceName, serviceName);msg.put(routingKey, type);msg.put(currentDate, dateFormat.format(new Date()));rabbitTemplate.convertAndSend(order. type, MAPPER.writeValueAsString(msg));} catch (Exception e) {e.printStackTrace();}}// public static void main(String[] args) { // //使用fastjson 实体类对象转jsonStr // User ly new User().builder() // .id(1) // .name(ly) // .build(); // String jsonStr JSON.toJSONString(ly); // log.info(转换后jsonStr的用户: jsonStr); // // //使用fastjson 进行jsonObject转实体类对象 // String userString {\id\:1,\name\:\ly\}; // // JSONObject userJson JSONObject.parseObject(userString); // User user JSON.toJavaObject(userJson, User.class); // // log.info(用户姓名: user.getName()); // log.info(用户ID: user.getId()); // } } 三、管控台队列绑定交换机 3.1. 复制队列名称 3.2. 队列绑定交换机 点击声明的交换机 配置文件中声明的交换机 在交换机中绑定【ORDER-MENU-CATEGORY-QUEUE】队列和路由key(order.category) 在交换机中绑定【ORDER-MENU-CATEGORY-QUEUE】队列和路由key(order.menu) 在交换机菜单中查看绑定的队列 在队列菜单中查看绑定的交换机 四、验证测试 4.1. 启动项目 4.2. 清空控制台 4.4. 生产者①请求 http://localhost:8888/sendSimpleMQMsg 4.5. 生产者②请求 http://localhost:8888/sendSimpleMQMsg2 五、启动RabbitMQ 5.1. 进入sbin目录双击运行 5.2. 启动图示
http://www.pierceye.com/news/209737/

相关文章:

  • 在线html网站开发广州网站排名优化公司
  • 如何在免费网站上做推扩自己怎么来建设网站
  • 福安市教育局建设网站做架构图简单的网站
  • 如何快速进行网站开发seo是什么东西
  • 网站建设需要具备哪些学编程多少钱学费
  • 建设工程许可证在那个网站办金融行业网站制作
  • 邢台专业做网站价格信息流广告是什么
  • 网站开发的母的目的和意义.建设购物平台网站
  • 立方米网站建设做淘宝客网站用什么程序好
  • 怎样做网站挣钱建筑资料软件
  • 涿州建设局网站苏州市高新区建设局网站
  • 个人soho要怎么做企业网站成都包装设计公司
  • 网站开发 chrome浏览器崩溃ruhe用dw做网站
  • 全屏网站 图片优化个人网站cms系统
  • 做我女朋友程序网站邵东做网站
  • 建设网站如何挂到网上wordpress首页添加幻灯
  • 汕头正规网站建设模板总部城乡建设网站 资料员
  • vs 2017c 怎么建设网站网站建设的数字化和互联网化
  • 南昌网站设计公司海南营销网站建设
  • 购物网站素材个人搭建网站教程
  • 青岛网站建设哪里好模板建站服务公司
  • 青色网站欣赏wordpress中文购物
  • 建站培训全国住房与城乡建设部网站
  • 唐山网站建设方案策划沧州网站建设联系电话
  • 网页制作和网站开发实验报告logo设计品牌
  • 摄影后期教程网站百度指数1000搜索量有多少
  • wp网站建设模板什么是网站的原型
  • 园林绿化网站建设上海著名室内设计公司
  • 大连市住房与城乡建设部网站公司要制作网站
  • 郑州做网站七彩科技企业网站做的漂亮