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

苏州住房建设局网站网站专业性免费评价工具

苏州住房建设局网站,网站专业性免费评价工具,茂名专业网站制作公司,自己做网站制作需要多少钱目录 基本介绍 适用场景 springboot代码演示 演示架构 工程概述 RabbitConfig配置类#xff1a;创建队列及交换机并进行绑定 MessageService业务类#xff1a;发送消息及接收消息 主启动类RabbitMq01Application#xff1a;实现ApplicationRunner接口 基本介绍 Fa…目录 基本介绍 适用场景 springboot代码演示  演示架构 工程概述 RabbitConfig配置类创建队列及交换机并进行绑定 MessageService业务类发送消息及接收消息 主启动类RabbitMq01Application实现ApplicationRunner接口 基本介绍 Fanout Exchange交换机当一个Msg发送到扇形交换机X上时则扇形交换机X会将消息分别发送给所有绑定到X上的消息队列。扇形交换机将消息路由给绑定到自身的所有消息队列也就是说路由键在扇形交换机里没有作用故消息队列绑定扇形交换机时路由键可为空。 扇形交换机将消息路由给绑定到他身上的所有队列给不理会绑定的路由键。某个扇形交换机上当有消息发送到该扇形交换机上时交换机会将消息的拷贝分别发送给这所有与之绑定的队列中。 Fanout交换机转发消息是最快的Fanout Exchange交换机可以简单的理解为广播站。 适用场景 适用于广播消息的场景群聊功能广播消息给当前群聊中的所有人大型多人在线游戏的游戏积分排行榜更新体育新闻客户端实时更新分数分布式系统可以广播各种状态和配置更新 springboot代码演示  演示架构 生产者发送消息道fanout交换机上面队列A和队列B绑定一个fanout交换机消费则对队列A和队列B进行消费 工程概述 工程采用springboot架构主要用到的依赖为 !-- rabbit的依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependency application.yml配置文件如下 server:port: 8080 spring:rabbitmq:host: 123.249.70.148port: 5673username: adminpassword: 123456virtual-host: /RabbitConfig配置类创建队列及交换机并进行绑定 创建 RabbitConfig类这是一个配置类 Configuration public class RabbitConfig {} 定义交换机 Beanpublic FanoutExchange fanoutExchange(){return new FanoutExchange(exchange.fanout);} 定义队列  Beanpublic Queue queueA(){return new Queue(queue.fanout.a);}Beanpublic Queue queueB(){return new Queue(queue.fanout.b);} 绑定交换机和队列 Beanpublic Binding bindingA(FanoutExchange fanoutExchange,Queue queueA){return BindingBuilder.bind(queueA).to(fanoutExchange);}Beanpublic Binding bindingB(FanoutExchange fanoutExchange,Queue queueB){return BindingBuilder.bind(queueB).to(fanoutExchange);} MessageService业务类发送消息及接收消息 Component Slf4j public class MessageService {Resourceprivate RabbitTemplate rabbitTemplate;} 发送消息方法 Resourceprivate RabbitTemplate rabbitTemplate;public void sendMsg(){String msghello world;Message messagenew Message(msg.getBytes(StandardCharsets.UTF_8));rabbitTemplate.convertAndSend(exchange.fanout,,message);log.info(消息发送完毕....);} MessageConvert 涉及网络传输的应用序列化不可避免发送端以某种规则将消息转成 byte 数组进行发送接收端则以约定的规则进行 byte[] 数组的解析RabbitMQ 的序列化是指 Message 的 body 属性即我们真正需要传输的内容RabbitMQ 抽象出一个 MessageConvert 接口处理消息的序列化其实现有 SimpleMessageConverter默认、Jackson2JsonMessageConverter 等 接受消息 RabbitListener(queues {queue.fanout.a,queue.fanout.b})public void receiveMsg(Message message){byte[] body message.getBody();String msgnew String(body);log.info(接收到消息:msg);} Message 在消息传递的过程中实际上传递的对象为 org.springframework.amqp.core.Message 它主要由两部分组成 MessageProperties // 消息属性 byte[] body // 消息内容 RabbitListener 使用 RabbitListener 注解标记方法当监听到队列 debug 中有消息时则会进行接收并处理 消息处理方法参数是由 MessageConverter 转化若使用自定义 MessageConverter 则需要在 RabbitListenerContainerFactory 实例中去设置默认 Spring 使用的实现是 SimpleRabbitListenerContainerFactory 消息的 content_type 属性表示消息 body 数据以什么数据格式存储接收消息除了使用 Message 对象接收消息包含消息属性等信息之外还可直接使用对应类型接收消息 body 内容但若方法参数类型不正确会抛异常 application/octet-stream二进制字节数组存储使用 byte[]application/x-java-serialized-objectjava 对象序列化格式存储使用 Object、相应类型反序列化时类型应该同包同名否者会抛出找不到类异常text/plain文本数据类型存储使用 Stringapplication/jsonJSON 格式使用 Object、相应类型 主启动类RabbitMq01Application实现ApplicationRunner接口 /*** author 风轻云淡*/ SpringBootApplication public class RabbitMq01Application implements ApplicationRunner {public static void main(String[] args) {SpringApplication.run(RabbitMq01Application.class, args);}Resourceprivate MessageService messageService;/*** 程序一启动就会调用该方法* param args* throws Exception*/Overridepublic void run(ApplicationArguments args) throws Exception {messageService.sendMsg();} } 在SpringBoot中提供了一个接口ApplicationRunner。 该接口中只有一个run方法他执行的时机是spring容器启动完成之后就会紧接着执行这个接口实现类的run方法。 由于该方法是在容器启动完成之后才执行的所以这里可以从spring容器中拿到其他已经注入的bean。 启动主启动类后查看控制台 2023-09-26 10:46:35.975 INFO 24900 --- [ main] c.e.rabbitmq01.service.MessageService : 消息发送完毕.... 2023-09-26 10:46:36.020 INFO 24900 --- [ntContainer#0-1] c.e.rabbitmq01.service.MessageService : 接收到消息:hello world 2023-09-26 10:46:36.020 INFO 24900 --- [ntContainer#0-1] c.e.rabbitmq01.service.MessageService : 接收到消息:hello world
http://www.zqtcl.cn/news/910730/

相关文章:

  • 外贸网站建设双语网站建设红色大气网络公司企业网站源码_适合广告设计
  • 温州哪里有做网站的阳朔到桂林机场
  • 商务网站建设详细流程小程序商城服务好的商家
  • 苏州建站模板搭建南京地铁最新消息
  • wordpress建网站教程威海建设招聘信息网站
  • 如何制作一网站企业中标信息查询网
  • 百度推广咨询seo搜索引擎优化平台
  • 建设网站要不要投资钱哪里建设网站最好
  • 长沙网站制作公司地址农业推广作业
  • 网站创意设计公司定制网站开发价格
  • 专业网站建设加盟合作怀化seo快速排名
  • 房山区网站建设wordpress自动采集翻译插件怎么用
  • 郴州做网站 郴网互联网站制作公司起名
  • 织梦做的的网站首页显示空白查企业营业执照的网站
  • 葫芦岛公司做网站外贸西班牙语网站建设
  • 广西住房和城乡建设厅培训中心网站首页wordpress建导航
  • 企业建立网站需要提供什么建立网站需要多长钱
  • 科技企业网站源码下载网页设计公司哪家效果好
  • 成都龙泉工程建设有限公司网站网络科技有限公司网站建设策划书
  • 温州网站建设对比赣州招聘网最新招聘
  • 网站建设什么时候好商丘创小资网络有限公司
  • 做网站不切片可以吗wordpress导入表单
  • 广告公司的网站建设价格wordpress简洁淘宝客免费主题
  • 内蒙古建设安全监督站的网站做网站排名多少钱
  • 自学网站平面设计友链大全
  • go语言做的网站哪个公司搭建网站
  • 网站地图抓取正邦设计创始人
  • 济南建网站公司佛山做营销型网站建设
  • 网站总体策划的内容有哪些做网站排名seo
  • 网站备案上传照片几寸上海网站排名提升