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

余姚网站建设公司做网站公司未来的发展方向

余姚网站建设公司,做网站公司未来的发展方向,网店设计是什么,南阳公司做网站文章目录 一、项目背景二、需求分析1.核心概念2.BrokerServer核心组件3.核心API4.交换机类型5.持久化6.网络通信7.消息应答 三、消息队列模块划分 一、项目背景 什么是消息队列? 消息队列就是,基于阻塞队列,封装成一个独立的服务器程序&#…

文章目录

    • 一、项目背景
    • 二、需求分析
      • 1.核心概念
      • 2.BrokerServer核心组件
      • 3.核心API
      • 4.交换机类型
      • 5.持久化
      • 6.网络通信
      • 7.消息应答
    • 三、消息队列模块划分

一、项目背景

什么是消息队列?
消息队列就是,基于阻塞队列,封装成一个独立的服务器程序,实现跨主机使用生产者-消费者模型。生产者生产消息到消息队列,消费者从消息队列消费数据。

二、需求分析

1.核心概念

  • 生产者(Producer):生产消息的客户端
  • 消费者 (Consumer) :消费消息的客户端
  • 中间人 (Broker):消息队列服务器
  • 发布 (Publish):生产者发送消息给中间人
  • 订阅 (Subscribe) :要消费消息的消费者
  • 消费 (Consume):消费者从中间人读取消息

在这里插入图片描述在这里插入图片描述

Producer Client:生产者客户端
Broker Server:消息队列服务器
Consumer Client:消费者客户端
Publish Message:生产消息
Subscribe Messge:订阅消息

2.BrokerServer核心组件

  • 虚拟主机(VirtualHost):类似于MySQL的dataBase,用来区分不同组的业务。
  • 交换机(Exchange):生产者发送消息给BrokerServer,实际上是给某个交换机发送消息,交换机再把消息转发给队列。
  • 队列(Queue):存储消息
  • 绑定(Binding):交换机和队列之间的绑定关系(多对多)
  • 消息(Message):传递的内容

3.核心API

  • 创建交换机(exchangeDeclare)
  • 删除交换机(exchangeDelete)
  • 创建队列(queueDeclare)
  • 删除队列(queueDelete)
  • 创建绑定(queueBind)
  • 删除绑定(queueUnbind)
  • 发布消息(basicPublish)
  • 订阅消息(basicConsume)

注意,消费者得到服务器中的消息有两种方式:
一种是消费者主动从服务器中取。
一种是服务器推送消息给消费者。这里的订阅消息,只支持服务器推送消息给消费者。

  • 确认消息(basicAck)

消费者主动告诉消息队列已经收到消息了。(成功确认)

4.交换机类型

  • 直接交换机 (Direct Exchange)
    根据队列名查找队列,如果存在,转发消息;不存在,就把消息丢弃。
  • 扇出交换机(Fanout Exchange)
    转发消息至该交换机绑定的所有队列。
  • 主题交换机(Topic Exchange)
    交换机和队列绑定的时候,绑定关系中带有一个bindingKey(上联)。发送消息的时候,消息带有一个routingKey(下联)。在该交换机绑定的所有队列中查找,如果routingKey和bindingKey对上的话,就转发给该队列。没有,就丢弃消息。
    在这里插入图片描述
    在这里插入图片描述

5.持久化

当服务器重启后,内存的数据都会丢失。这个时候,需要通过持久化来保证数据不丢失。通过将数据保存到硬盘上来实现持久化。

  • 交换机、队列、绑定通过数据库来管理
  • 消息通过二进制的格式保存到文件中,重启后,从文件中读取数据到内存。
    (序列化/反序列化)

6.网络通信

生产者和消费者都是客户端,需要通过网络与服务器进行交互。这里的通信协议是基于TCP的自定义应用层协议。

在网络通信过程中,客户端要提供对应API,通过调用这个API来远程调用服务器的API,实现对服务器的操作。

客户端这边除了对应服务器的方法外,还需要实现其他的方法。

  • 创建Connection(newConnection)
  • 销毁Connection(close)

一个Connetion对象视作一次TCP连接。

  • 创建Channel (createChannel)
  • 销毁Channel(close)

Channel是一次逻辑上的连接。一个Connection里包含多个Channel。连接/断开TCP的成本太高。但是客户端和服务器的交互业务很多,所以通过多个Channel,传输不同的数据(channel之间互不相干),达到复用TCP的效果。

7.消息应答

  • 服务器推送消息给消费者的时候,自动确认。
  • 消费者手动调用basicAck这个方法。

三、消息队列模块划分

在这里插入图片描述

http://www.yayakq.cn/news/459087/

相关文章:

  • 孝感网站seo建设银行网站注册用户
  • 怎样使用网站后台的模板cad精品课网站建设
  • 房屋平面图在线制作网站网站公司怎么做业务
  • 企业网站建设ppt介绍网站建设违约补充协议
  • 网站的倒计时怎么做的西安到北京的高铁时刻表查询
  • 高端网站建设怎么做电商网站开发需要多少钱
  • 南宫网站建设阿里云服务器租用
  • 产品推广网站哪个好wordpress搭建视频
  • 江苏省建设执业资格注册中心网站企业网站建设和运营
  • 公司网站开发有哪些h5跳转小程序
  • 网站怎么做好中国农技推广网
  • 中国优秀网站设计成都网站建设策划
  • 淘宝网 商务网站建设目的婚纱摄影类网站模板
  • iis建设个人网站西安 医疗网站建设
  • 网站开发我嵌入式开发做网站不赚钱了
  • 贾汪微网站开发网站规划与设计大作业
  • 推广网站方案西安注册公司在哪个网站系统
  • 开发公司岗位职责网络关键字优化
  • 抖音做我女朋友网站广州汽车网络推广服务
  • 网站 案例展示asp.net实用网站开发
  • 怎么用安卓机顶盒做网站服务器模板网站 seo
  • 手机网站源码教程四川网络推广
  • 淄博网站制作升级优化wordpress缩略图质量
  • 百度一直不收录网站产品展示类网站
  • 怎样做网站教程优化师简历
  • 商城网站建设定制响应式网站设计原理
  • 目前主流网站开发所用软件网站建设简图
  • 郑州网站优化哪家好怎么建设QQ网站
  • 什么是电子商务网站怎么做网页签到
  • 兰州网站运营嵌入式工程师证书怎么考