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

深圳城乡和住房建设局网站大连最好的做网站的公司

深圳城乡和住房建设局网站,大连最好的做网站的公司,开发网站的技术风险,网站建设设计有哪些1. 消息队列 消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信 而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的…

1. 消息队列

消息队列是指利用队列这种数据结构进行消息发送、缓存、接收,使得进程间能相互通信,是点对点的通信

而消息代理是对消息队列的扩展,支持对消息的路由,是发布-订阅模式的通信,消息的发送者并不清楚消息的接收者,消息可以被多个消费者接收。

使用消息队列的作用如下

异步:对于一些用户的请求,可能包含一些发送短信,发送邮件等系统处理,此时可以不需要等待短息发送完成或者邮件发送完成,而是通过消息队列通知这些模块即可返回,避免用户长时间等待

解耦:将数据发送到消息队列,对该数据感兴趣的系统自行订阅该消息即可,这种做法可以降低代码的耦合度。

消峰填谷:将瞬时高并发请求打到消息队队列上,作为数据库请求的缓冲,避免短时间大量的数据库请求导致数据库奔溃。

2. RabbitMQ简介

RabbitMQ是一种开源的多协议消息代理软件,它将消息发布者(发布消息的应用程序,也称为生产者)接收消息并将它们路由到消费者(处理消息的应用程序)。

RabbitMQ支持多种消息传递协议,其中AMQP 0-9-1是核心,并以插件的形式支持STOM,MQTT,AMQP 1.0。

AMQP,即Advanced Message Queuing Protocol,中文名称是高级消息传递协议。

AMQP 0-9-1 模型如下图所示

消息生产者producer和消费者consumer均通过TCP连接消息代理broker,生产者producer将消息投递到交换机exchange,消息代理根据消息队列queue和交换机exchange的绑定关系bind将消息推送到对应的消息队列queue,最后消费者consumer消费感兴趣消息队列中的数据。

2.1 RabbitMQ中的相关概念

Producer:消息生产者

Consumer:消息消费者

Broker:消息代理,这里指即RabbitMQ,通过消息代理可以将消息从生产者投递到消费者

Virtual host:虚拟主机,使单个消息代理能提供了多个相对隔离的环境,隔离的资源包括交换机、队列等

Exchange:交换机,作用相当于现实生活的快递公司,生产者的消息实际时先投递到交换机,交换机再根据类型和绑定关系拷贝消息副本到指定队列,交换机的类型有direct, topic, headers and fanout

Queue: 队列,先进先出的优先级队列,充当了一个缓冲区的角色,作用相当于现实生活中的菜鸟驿站等代收点

Binding:交换机和队列的绑定关系,交换机投递消息到指定队列的规则,作用相当于现实生活中寄快递时填写的地址

Connection: 消息生产者和消费者通过TCP连接到虚拟主机,确保数据传输到可靠性

Channel:共享单个TCP连接的轻量级的Connection,不同Channel通过Channel ID隔离开,互不影响,通常一个进程可以只建立一个TCP连接,减少TCP的资源开销

2.2 RabbitMQ特性

可靠性(Reliablity):使用TCP连接进行数据传输、且提供了消息持久化、队列持久化、生产者发送确认、消费者消费确认等机制保证消息的可靠

灵活的路由(Flexible Routing):提供了多种类型的交换机Exchange

消息集群(Clustering):多个RabbitMQ服务器可以组成一个集群,形成一个逻辑消息代理Broker

高可用(Highly Avaliable Queues):队列可以在集群中的机器上进行镜像,使得在部分节点出问题的情况下队列仍然可用

多种协议(Multi-protocol):支持多种消息队列协议,核心是AMQP,通过插件形式支持STOMP、MQTT等

多种语言客户端(Many Clients):几乎支持所有常用语言,比如Java、Python、Golang等

管理界面(Management UI):提供了易用的用户界面,使得用户可以监控和管理消息Broker的许多方面

跟踪机制(Tracing):如果消息异常,RabbitMQ提供了消息的跟踪机制,使用者可以找出发生了什么

插件机制(Plugin System):提供了许多插件,来从多方面进行扩展,也可以编辑自己的插件

3. RabbitMQ安装

3.1 安装Docker

参考Install Docker Desktop on Mac安装docker,安装完成后点击Docker图标以启动Docker服务

这里简单介绍几个常用的docker命令

docker ps -a可以看到Docker启动过的容器

 
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8918b9e8bae2 rabbitmq:3-management "docker-entrypoint.s…" 2 days ago Up 2 days 4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 15691-15692/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp some-rabbit

docker stop CONTAINER ID停止运行中的容器

 
$ docker stop 8918b9e8bae2
8918b9e8bae2

docker restart CONTAINER ID重启容器

 
$ docker restart 8918b9e8bae2
8918b9e8bae2

docker exec -it CONTAINER ID /bin/bash 可以进入运行容器的终端

 
$ docker exec -it 8918b9e8bae2 /bin/bash
root@my-rabbit:/#

3.2 RabbitMQ安装及启动

打开终端,在终端中输入

docker run -d --hostname my-rabbit --name some-rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3-management

通过http://localhost:15672可以访问管理后台,默认账号和密码均是guest

5672AMQP 0-9-1使用的端口

4. 管理后台

管理后台提供了监控和管理RabbitMQ节点和集群的能力。

管理后台如下图所示

通过该管理后台,可以查看当前活跃的Connection, Channel, Exchange, Queue等信息,从图片可以看出当前活跃的Exchange共有7个,具体的类型覆盖了direct, topic, headers and fanout四种。

通过这个管理后台也可以创建或者删除Connection, Channel, Exchange, Queue

http://www.dt0577.cn/news/27315.html

相关文章:

  • 做网站实时数据用接口郑志平爱站网创始人
  • 做网站挂靠服务器什么好上海百度竞价点击软件
  • 广州建设企业网站国外友链买卖平台
  • 北京做网站的大公司南京今天重大新闻事件
  • 部门网站建设总结西安网站seo技术厂家
  • 百度采购网官方网站最新重大新闻
  • 新疆建设局网站首页网络营销的主要方式和技巧
  • 贵阳网站建设企业百度客户端电脑版
  • 北京网站的优化如何在百度免费发布广告
  • wordpress网站搬视频营销案例
  • 请人做网站要注意什么网站seo置顶
  • 北京市朝阳区网站制作公司网络营销推广合作
  • 在互易上做的网站如何修改搜索引擎
  • seo网站优化推广怎么做软文营销的三个层面
  • 网站页面可以用什么框架做seo推广经验
  • wordpress 导出 新闻巢湖seo推广
  • 金华做公司网站沈阳网站seo
  • 洛阳市网站建设网络营销考试题目及答案2022
  • 邯郸做wap网站价格注册教育培训机构需要什么条件
  • 郑州做网站企业汉狮深圳推广平台有哪些
  • 温州网站公司深圳优化公司统高粱seo
  • wordpress 缩略图 剪裁 位置海外seo是什么
  • 阜宁做网站工作室长春网站seo哪家好
  • 丰田车营销网站建设的纲要计划书创建网站
  • 动漫制作专业专升本去哪个专业成都网站优化排名推广
  • 昆明做网站推永州网站seo
  • 如何做网站答题领红包链接搜索引擎排名优化方法
  • 百度快照替代百度首页关键词优化
  • 建站网站和维护需要会什么兰州网络推广与营销
  • 惠州网页建站模板推广赚钱