当前位置: 首页 > 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.dnsts.com.cn/news/165656.html

相关文章:

  • 南京百度网站快速优化天津百度建网站
  • 湛江网站制作江网站制作静态页面加wordpress
  • 装饰公司营销网站建设设计师网站十大网站
  • 沙田东莞网站建设免费做网站有哪些
  • 常德天鹰建设有限公司网站从化营销网站建设
  • 在哪网站建设手机优化怎么关闭
  • 企业网站管理系统 软件著作权注册公司费用深圳
  • 企业网站做的好网站前期准备
  • 凡客vancl的网站标题2018做网站 工具
  • 上海专业网站建设渠道网址提交大全
  • 公司的论坛与网站绑定网站如何做收款二维码
  • 网站建设最新时讯如何加强门户网站建设
  • 做网站策划薪酬娱乐网站 建站软件
  • 搜狗网站提交万网企业邮箱登陆界面如何嵌入到自己的网站
  • 网站模块源码设计方案表网站名称
  • 中国建设教育网站网站的二维码怎么做
  • 自己做一个网站需要什么网站建设哪里找
  • 网站怎么制作商城网站建设的主要工作有哪些
  • 网站建设制作浩森宇特前端开发工程师是什么专业
  • google收录网站百度seo权重
  • 网站开发宣传图片wordpress分类目录标题使用自定义
  • 怎么做网络乞丐网站百度app营销软件
  • 做网站 需要了解什么网站域名免费申请
  • 山东网站建设是什么企业网站策划书
  • 太原建南站wordpress后台美化插件
  • 做美食网站的目的意义做网站购买什么
  • 可以做app的网站网页设计素材收集教学设计
  • 给网站做app上海企业信用网查询
  • 网站开发培训课程表社交网站实名备案
  • 做网站好不好网站开发 链接指向文件夹