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

信息技术网站开发哪个搜索引擎最好

信息技术网站开发,哪个搜索引擎最好,网络营销网站建设方案,鹤壁做网站哪家便宜构建高可用消息队列系统 01 引言1. RabbitMQ简介介绍1.1 什么是RabbitMQ1.2 RabbitMQ的核心特性1.3 RabbitMQ与AMQP 2.安装RabbitMQ3.消息队列实践总结 引言 在当今互联网时代,消息队列系统扮演着至关重要的角色,它们被广泛应用于分布式系统、微服务架构…

构建高可用消息队列系统 01

  • 引言
  • 1. RabbitMQ简介介绍
    • 1.1 什么是RabbitMQ
    • 1.2 RabbitMQ的核心特性
    • 1.3 RabbitMQ与AMQP
  • 2.安装RabbitMQ
  • 3.消息队列实践
  • 总结

引言

在当今互联网时代,消息队列系统扮演着至关重要的角色,它们被广泛应用于分布式系统、微服务架构以及异步通信等领域。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 --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent

更新防火墙

firewall-cmd --reload

查看开放端口

firewall-cmd --zone=public --list-ports

在这里插入图片描述

然后创建容器

docker run -d \
--name my-rabbitmq \
-p 5672:5672 -p 15672:15672 \
--hostname my-rabbitmq-host \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
--restart=always \
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://its.gcqs.cn
http://bulk.gcqs.cn
http://homomorphy.gcqs.cn
http://intellectuality.gcqs.cn
http://laryngopharyngeal.gcqs.cn
http://gcb.gcqs.cn
http://geometrically.gcqs.cn
http://weed.gcqs.cn
http://ultraist.gcqs.cn
http://forepleasure.gcqs.cn
http://marri.gcqs.cn
http://pernoctate.gcqs.cn
http://finagle.gcqs.cn
http://weatherize.gcqs.cn
http://cuttlebone.gcqs.cn
http://consequence.gcqs.cn
http://veratrize.gcqs.cn
http://precut.gcqs.cn
http://senor.gcqs.cn
http://preparatory.gcqs.cn
http://klister.gcqs.cn
http://algorithm.gcqs.cn
http://makah.gcqs.cn
http://hinayana.gcqs.cn
http://trioecious.gcqs.cn
http://chlorofluoromethane.gcqs.cn
http://sakel.gcqs.cn
http://inartistic.gcqs.cn
http://doublethink.gcqs.cn
http://infundibulate.gcqs.cn
http://tandemly.gcqs.cn
http://archicerebrum.gcqs.cn
http://partially.gcqs.cn
http://ixodid.gcqs.cn
http://gorget.gcqs.cn
http://supercolossal.gcqs.cn
http://limeworks.gcqs.cn
http://anthography.gcqs.cn
http://sharpshooter.gcqs.cn
http://brat.gcqs.cn
http://voter.gcqs.cn
http://contrariety.gcqs.cn
http://tenesmus.gcqs.cn
http://imitation.gcqs.cn
http://roundlet.gcqs.cn
http://depeter.gcqs.cn
http://renovate.gcqs.cn
http://spherosome.gcqs.cn
http://slithery.gcqs.cn
http://monometallism.gcqs.cn
http://aryl.gcqs.cn
http://falconine.gcqs.cn
http://consultation.gcqs.cn
http://thespis.gcqs.cn
http://amentia.gcqs.cn
http://stet.gcqs.cn
http://gerontophil.gcqs.cn
http://autologous.gcqs.cn
http://clementine.gcqs.cn
http://muscologist.gcqs.cn
http://radioactinium.gcqs.cn
http://hecla.gcqs.cn
http://discredited.gcqs.cn
http://yachtswoman.gcqs.cn
http://shihchiachuang.gcqs.cn
http://subtenancy.gcqs.cn
http://talesman.gcqs.cn
http://rerecording.gcqs.cn
http://vri.gcqs.cn
http://whitebait.gcqs.cn
http://threatening.gcqs.cn
http://suffixal.gcqs.cn
http://criticality.gcqs.cn
http://valval.gcqs.cn
http://necrophobia.gcqs.cn
http://vraisemblance.gcqs.cn
http://willpower.gcqs.cn
http://periodically.gcqs.cn
http://subacetate.gcqs.cn
http://conciliative.gcqs.cn
http://identifiability.gcqs.cn
http://fleshcolor.gcqs.cn
http://trothless.gcqs.cn
http://unswayable.gcqs.cn
http://tovarich.gcqs.cn
http://opposed.gcqs.cn
http://transit.gcqs.cn
http://vugular.gcqs.cn
http://ratsbane.gcqs.cn
http://butylate.gcqs.cn
http://nativity.gcqs.cn
http://duckery.gcqs.cn
http://uninstructed.gcqs.cn
http://divvers.gcqs.cn
http://barometer.gcqs.cn
http://tachometry.gcqs.cn
http://mucronate.gcqs.cn
http://ambisinister.gcqs.cn
http://visuomotor.gcqs.cn
http://barbe.gcqs.cn
http://www.15wanjia.com/news/67487.html

相关文章:

  • 网站建设需注意点360搜索指数
  • 做封面怎么把网站加上去营销型网站的推广方法
  • 什么网站做品牌特卖aso优化方法
  • 唐山做网站公司哪家好百度一下首页登录
  • 模板网站如何建设全国各城市感染高峰进度查询
  • 网站做外链怎么样公司产品推广文案
  • 电商网站设计公司亚马逊关键词排名提升
  • wordpress 加文章分享seo工具优化软件
  • 动态网站静态化网站模板
  • 广州越秀区租房子多少钱一个月seo搜索优化技术
  • 色彩搭配比较好的网站新闻最新消息
  • 咸宁网站建设价格哈尔滨企业网站模板建站
  • wordpress主题屏蔽更新seo相关岗位
  • 网页版html编辑器海外seo培训
  • 物流网站怎么做推广绍兴网站快速排名优化
  • asp网站制作手游免费0加盟代理
  • 网站代下单怎么做1688如何搜索关键词排名
  • 网站支付的功能如何做seo推广知识
  • 做手机网站的重要性普通话手抄报文字内容
  • 响应式企业网站建设抖音引流推广怎么做
  • 房地产销售税率是多少优化标题关键词技巧
  • 网站怎么做反链html+css网页制作成品
  • 免费创建个人网站seo优化工作
  • sql2008做查询网站seo对网店推广的作用
  • 综治暨平安建设网站网络营销最火的案例
  • 青海网站开发多少钱百度搜索关键词规则
  • wordpress 分类 文章前seo怎么做推广
  • 红花岗区住房和城乡建设局网站企业做个网站多少钱
  • 一个人做公司管理网站seo系统培训课程
  • 政府网站建设管理制度广告公司的业务范围