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

网站规划的意义教做高级料理的网站

网站规划的意义,教做高级料理的网站,网络平台有哪些,张家界建设网站的公司构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代#xff0c;消息队列系统扮演着至关重要的角色#xff0c;它们被广泛应用于分布式系统、微服务架构… 构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代消息队列系统扮演着至关重要的角色它们被广泛应用于分布式系统、微服务架构以及异步通信等领域。RabbitMQ作为最流行的开源消息队列之一具有高可用性、可靠性和灵活性本篇博客将深入探讨RabbitMQ的高级应用包括简介介绍、安装配置以及实际案例分析。 1. RabbitMQ简介介绍 1.1 什么是RabbitMQ RabbitMQ是一个开源的消息代理软件实现了高级消息队列协议AMQP并提供了可靠的消息传递、灵活的路由、消息确认机制等特性。它是一个强大的工具用于构建分布式系统中的异步通信和解耦同时也适用于构建大规模的数据处理系统。RabbitMQ的核心概念包括交换机、队列、绑定等通过这些概念可以实现灵活的消息路由和处理。在分布式系统中RabbitMQ能够提供高可用性、可靠性和灵活性使得系统能够更好地应对高并发和大规模数据处理的挑战。 1.2 RabbitMQ的核心特性 消息持久化RabbitMQ允许消息持久化到磁盘即使在代理重启后也不会丢失。这对于关键业务数据的可靠性至关重要。消息确认机制RabbitMQ支持消息的确认机制生产者可以收到消息代理已经成功接收消息的确认确保消息不会丢失。灵活的路由规则RabbitMQ的灵活的路由规则允许消息根据不同的条件被路由到不同的队列从而实现复杂的消息处理逻辑。高可用性RabbitMQ支持集群和镜像队列可以实现高可用性的消息队列系统即使某个节点发生故障系统仍然能够正常运行。可靠性RabbitMQ通过消息确认机制和持久化等特性保证了消息传递的可靠性即使在网络故障或者节点故障的情况下也能够保证消息不丢失。 1.3 RabbitMQ与AMQP RabbitMQ是一个实现了高级消息队列协议AMQP的消息代理软件。AMQP是一种面向消息的中间件标准协议旨在提供统一的消息传递模型以便不同的消息中间件系统可以进行互操作。、 RabbitMQ完全实现了AMQP 0-9-1版本这意味着它遵循了AMQP协议定义的消息格式、交换机、队列、绑定等核心概念同时也支持AMQP定义的高级特性如事务、确认机制等。 通过遵循AMQP协议RabbitMQ能够与其他支持AMQP的消息中间件系统进行无缝集成实现跨平台、跨语言的消息传递。这使得开发人员可以更加灵活地选择适合自己业务需求的消息中间件系统同时也为系统的可扩展性和互操作性提供了保障。 2.安装RabbitMQ 拉取Rabbitmq镜像 docker pull rabbitmq:managemen开启两个端口,5672,15672 firewall-cmd --zonepublic --add-port5672/tcp --permanent firewall-cmd --zonepublic --add-port15672/tcp --permanent更新防火墙 firewall-cmd --reload查看开放端口 firewall-cmd --zonepublic --list-ports然后创建容器 docker run -d \ --name my-rabbitmq \ -p 5672:5672 -p 15672:15672 \ --hostname my-rabbitmq-host \ -e RABBITMQ_DEFAULT_VHOSTmy_vhost \ -e RABBITMQ_DEFAULT_USERadmin \ -e RABBITMQ_DEFAULT_PASSadmin \ --restartalways \ rabbitmq:management创建好了就可以访问了 创建用户 给他分配一个my_vhost权限 现在RabbitMQ安装设置好了 3.消息队列实践 创建一个空项目 并创建两个maven项目,分别对应着消费者和生产者 分别写好yml文件 消费者8999,生产者8888(端口号) server:port: 8888 spring:rabbitmq:host: 192.168.238.129password: 123456port: 5672username: springvirtual-host: my_vhost在生产者项目中放一个消息队列,并取名,firstQueue是队列名字 Configuration SuppressWarnings(all) public class RabbitConfig { Bean public Queue firstQueue() { return new Queue(firstQueue); }public Queue secondQueue() {return new Queue(secondQueue);} }导这个包 然后准备一个发消息的Controller package com.example.publiuse;import org.springframework.amqp.core.AmqpTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** author 叶秋* site* company 卓京公司* create 2024-01-19 20:10*/ RestController public class TestController {Autowiredprivate AmqpTemplate amqpTemplate;RequestMapping(/send1)public String send1(){//向消息队列发送消息amqpTemplate.convertAndSend(firstQueue,hello);return 哈哈;;} } 访问一手 消息队列显示 消费者监听 Component SuppressWarnings(all) Slf4j RabbitListener(queues firstQueue) public class Receiver { RabbitHandler public void process(String msg) { log.warn(接收到: msg); } }http://localhost:8888/send1 访问几次 然后被监听 这样就大大解除了代码的耦合性 另一个案例 新建一个User类,生成消费都需要 SuppressWarnings(all) Data AllArgsConstructor NoArgsConstructor public class User implements Serializable{ private String username; private String userpwd; }生产者事件 RequestMapping(/send2)public String send2() throws Exception{//向消息队列发送消息User user new User(yh, 123);String string objectMapper.writeValueAsString(user);amqpTemplate.convertAndSend(secondQueue,string);return 哈哈;;}消费者监听 package com.example.consumer;import com.fasterxml.jackson.databind.ObjectMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitHandler; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component;Component SuppressWarnings(all) Slf4j RabbitListener(queues secondQueue) public class Receiver2 {Autowiredprivate ObjectMapper objectMapper; RabbitHandler public void process(String string) throws Exception{User user objectMapper.readValue(string, User.class);log.warn(接收到: user); } }总结 通过本篇博客的学习读者将深入了解RabbitMQ的核心概念、高级特性以及实际应用场景掌握如何搭建高可用的消息队列系统为构建稳定、可靠的分布式系统提供有力支持。
http://www.w-s-a.com/news/928082/

相关文章:

  • 建设网站案例分析做网站代理怎么赚钱
  • 唯品会网站建设特色域名备案期间 网站访问
  • 郑东新区建设局网站怎么做万网网站
  • 阿里云上传的网站 服务器路径试用网站开发
  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表
  • 漫画交流网站怎么做开发微信小程序公司
  • 网站建设马鞍山怎么建立局域网网站
  • 开源 网站开发框架哪些网站可以做图片链接
  • 大良制作网站网站设计的能力要求
  • 前端设计除了做网站还能做什么江苏高校品牌专业建设工程网站
  • 做二手房产网站多少钱用户权限配置wordpress
  • 做亚马逊网站需要租办公室吗小型企业网站模板
  • 网站全屏视频怎么做个人公司注册网上申请
  • 如何k掉别人的网站搜索引擎优化与关键词的关系
  • 百度推广 网站吸引力做网站开发的薪酬怎么样
  • js网站开发工具软件营销方案
  • 做网站的天空网云南省建设厅网站怎么进不去