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

佛山三水今日疫情百度关键词优化工具

佛山三水今日疫情,百度关键词优化工具,网站建设的销售好做吗,一般网站建设流程有哪些步骤这两天有需求需要使用rabbitMQ,正好有时间整理一下rabbitmq的使用方法 第一步, 在pom.xml中引入,这里就不写了. 第二步, 在nacos中添加rabbitmq的配置文件 ryhj:mq-queue-name: myqueueNamemq-exchange-name: myExchangeNamemq-routing-key: myKey spring:rabbitmq…

这两天有需求需要使用rabbitMQ,正好有时间整理一下rabbitmq的使用方法
第一步, 在pom.xml中引入,这里就不写了.
第二步, 在nacos中添加rabbitmq的配置文件

ryhj:mq-queue-name: myqueueNamemq-exchange-name: myExchangeNamemq-routing-key: myKey
spring:rabbitmq:host: 192.168.1.110password: mypasswordport: 5672username: yourUsername

上方的名称可以根据需要自己更改
第三步:
生产者的方法。 我们这次使用伊特TestControlller来进行测试

mport cn.hutool.json.JSON;
import cn.hutool.json.JSONUtil;
import com.apex.iot.data.model.DataModel;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.Date;@RestController
@RequestMapping("/test")
public class TestController {@Resourceprivate RabbitTemplate rabbitTemplate;// 此处是在nacos中获取的交换机名字@Value("${ryhj.mq-exchange-name}")private String mqExchangeName;// 此处是在nacos中获取的路由键@Value("${ryhj.mq-routing-key}")private String mqRoutingKey;@RequestMapping("/test")public void test(){System.err.println(1);DataModel data=new DataModel();data.setDeviceParentName("吸附机器");data.setDeviceId("XL_1");data.setDeviceName("吸附");data.setIp("127.0.0.1");data.setValue(true);data.setValueType("a");data.setCreateTime(new Date());data.setStatus(0);JSON parse = JSONUtil.parse(data);// 这一步是将数据转变为json的关键,要不然接收后会乱码String result = com.alibaba.fastjson.JSON.toJSONString(data);rabbitTemplate.convertAndSend(mqExchangeName, mqRoutingKey, result);}}

第四步,消费者写的方法:

package com.apex.iot.rabbitmq;import com.apex.iot.device.service.DeviceService;
import com.rabbitmq.client.Channel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.*;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;import javax.annotation.Resource;
import java.io.IOException;/*** rabbitMq的mq监听* @createDate 2025-03-13*/@Component
@Configuration
@Slf4j
public class RabbitMqListener {/**引入部分分别是队列名,交换机以及路由键**/@RabbitHandler@RabbitListener(bindings = {@QueueBinding(value = @Queue("#{'${ryhj.mq-queue-name}'}"),exchange = @Exchange(value = "#{'${ryhj.mq-exchange-name}'}",type = "direct"),key = "#{'${ryhj.mq-routing-key}'}")})public void process(String msg, Message message, Channel channel) throws IOException {try {//数据处理System.err.println("msg:"+msg);// 手动确认消息channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);}catch (Exception e) {try {// 拒绝消息并重新入队channel.basicNack(message.getMessageProperties().getDeliveryTag(), false, true);log.error("处理mq设备数据失败!数据:{}", msg, e);}catch (Exception ee) {log.error("处理mq设备信息失败!数据:{}", msg, ee);}}}
}

这样写完以后,mq处理基本已经完成了,但是我接收的时候会报错。报错内容如下:

2025-03-18 10:09:22.038  WARN 31944 --- [ntContainer#0-1] s.a.r.l.ConditionalRejectingErrorHandler : 
Execution of Rabbit message listener failed.org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Failed to convert message

这个错误信息表明,Spring AMQP 在处理 RabbitMQ 消息时失败了,具体原因是消息转换失败。
所以我们可以在消息监听者这边添加一个mq的配置类,具体如下:

import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitMQConfig {@Beanpublic MessageConverter jsonMessageConverter() {return new Jackson2JsonMessageConverter();}@Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory, MessageConverter messageConverter) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory); // 设置连接工厂factory.setMessageConverter(messageConverter);   // 设置消息转换器return factory;}}

这样,再次启动,就完成啦。
如果接收有乱码信息出现,如下图:

   sr cn.hutool.json.JSONObject j Nav L configt Lcn/hutool/json/JSONConfig;xr cn.hutool.core.map.MapWrapper  T#A_ r L rawt Ljava/util/Map;xpsr java.util.LinkedHashMap4 N\l   Z accessOrderxr java.util.HashMap    `  F 
loadFactorI 	thresholdxp?@     w      t deviceIdt 	QY_XFXL_1t 
deviceNamet 
吸附系列1t deviceParentNamet 吸附机器t ipt 	127.0.0.1t valuesr java.lang.Boolean  r ՜   Z valuexpt 	valueTypet at 
createTimesr java.util.Datehj KYt  xpw    	T
xt statussr java.lang.Integer8 I valuexr java.lang.Number        xp    x q ~  xsr cn.hutool.json.JSONConfig ^  L  Z checkDuplicateZ 
ignoreCaseZ ignoreErrorZ ignoreNullValueZ stripTrailingZerosZ transientSupportL 
dateFormatt Ljava/lang/String;L 
keyComparatort Ljava/util/Comparator;xp   pp

这样,我们在生产者上编辑一下json就可以了。
上方已经备注了。就这一行

String result = com.alibaba.fastjson.JSON.toJSONString(data)
http://www.dtcms.com/wzjs/255454.html

相关文章:

  • 网站设计 宽度中国女排联赛排名
  • 有什么做美食的视频网站重庆seo教程
  • 武汉比较大的做网站的公司百度指数介绍
  • 做网站 需要什么样的服务器seo优化公司
  • 微信二级分销模式seo工具大全
  • 健身餐的网站怎么做网络口碑营销案例分析
  • 网络营销推广的岗位职责有seo搜索引擎优化实战
  • 重庆的企业的网站建设广告推广语
  • 深圳餐饮网站设计山东今日头条新闻
  • 网络广告营销的特性深圳seo网站优化公司
  • 用自己的服务器做网站简述网络营销的概念
  • 做网站怎么每天更新内容百度收录网站
  • 网站开发的背景的讲解广州网站外包
  • 网站制作网站建设单位前端seo搜索引擎优化
  • 网站建设合同 保密条款360收录批量查询
  • 四川成都网站制作公司一站式快速网站排名多少钱
  • 芜湖企业做网站此网站三天换一次域名
  • 同仁微网站建设工作室优化大师网页版
  • 广州网站搭建多少钱百度搜索最多的关键词
  • vs2013 网站开发广告外链购买交易平台
  • wordpress如何设置目录权限设置鸡西seo
  • 以下哪个域名是做游戏网站的廊坊自动seo
  • 京东可以免费做特效的网站优就业seo怎么样
  • 免费看电视剧的网站2021怎么样推广自己的产品
  • 微信小程序开发平台游戏百度快速排名优化服务
  • ps彩屏做的好的网站百度官网首页登陆
  • 谁帮58同城做的网站吗提高工作效率的工具
  • 中国十佳网站建设公司火蝠电商代运营靠谱吗
  • 西安微网站制作it培训
  • 帝国cms电影网站模板陕西今日头条新闻