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

网站开发任务分解国家住房城乡建设部网站

网站开发任务分解,国家住房城乡建设部网站,wordpress可视化插件下载,教学网站的设计一、MQ 1、概念#xff1a; MQ 全称为 Message Queue (消息队列)#xff0c;是一种应用程序对应用程序的通信方法。MQ 允许应用程序将消息写入队列#xff0c;其他应用程序从队列中读取并处理这些消息#xff0c;不需要它们之间直接相互联系。消息队列可用于实现异步通信…一、MQ 1、概念 MQ 全称为 Message Queue (消息队列)是一种应用程序对应用程序的通信方法。MQ 允许应用程序将消息写入队列其他应用程序从队列中读取并处理这些消息不需要它们之间直接相互联系。消息队列可用于实现异步通信、解耦应用程序、提高系统性能适用于处理一些不需要即时响应的任务。 ● 产品Kafka RabbitMQ RocketMQ 2、特性 ① 解耦性通过消息传递来实现应用程序之间的通信应用程序之间不需要直接相互联系 ② 冗余性通过负载均衡和数据同步来存储请求信息防止数据丢失 ③ 扩展性适应不断增长的负载和需求以应对更多的应用程序和用户 ④ 削峰填谷在高负载时期消息队列接收并存储大量的消息使系统不会被突然的大量请求压垮这些消息在队列中等待处理 在低负载时期系统逐渐处理在高负载时期积累的消息。 ⑤ 顺序保证在消息队列中消息的处理和传递遵循特定的顺序确保消息按照它们被发送到队列的顺序进行处理 3、模式 (1) P2P 模式 ① 基本原理 P2P模式包含三个角色消息队列 (Queue)、发送者 (Sender)、接收者 (Receiver) 在点对点模式中消息被发送者发送到队列然后由一个特定的接收者消费者从队列中接收和处理消息。 ② 特点 P2P 模式每条消息只能被一个接收者消费一对一 接收者在成功接收消息之后需向队列应答成功 P2P 模式每个消息都会被成功处理。 (2) Pub/Sub 模式 ① 基本原理Pub/Sub 模式包含三个角色主题 (Topic)、发布者 (Publisher)、订阅者 (Subscriber) 在 Pub/Sub 模式中消息被发送到一个主题topic多个消费者可以订阅这个主题以接收消息。 ② 特点 Pub/Sub 模式每条消息可以被多个订阅者同时接收一对多 Pub/Sub 模式适用于需要将消息广播给多个接收者的场景。 二、RabbitMQ 介绍 1、概念 RabbitMQ是一个在 AMQP (Advanced Message Queuing Protocol) 基础上实现的可复用的企业消息系统支持多种协议和客户端支持高并发和可扩展。 ● AMQP 协议是一个提供统一消息服务的应用层标准高级消息队列协议基于此协议的客户端与消息中间件可传递消息不受客户端/中间件不同产品不同的开发语言等条件的限制。 2、RabbitMQ 架构 消息生产者、消息队列内部组件、队列程序、消息消费者 3、RabbitMQ 通信过程 ① Message消息由消息头和消息体组成。消息头是消息的元数据通常包含与消息有关的一些属性和标识 消息体是消息中包含的实际数据这是消息的主要内容。 ② Publisher消息生产者向交换机发送消息的客户端程序。 ③ Exchange交换机 (消息队列的组件)用于接收生产者发送的消息再将这些消息路由发送给服务器中的队列。 ④ Queue消息队列是消息的容器用来保存消息将消息发送给消费者。 ⑤ Bingding绑定将交换器和消息队列连接起来的路由规则用于消息队列和交换器之间的关联。 ⑥ Virtual Host虚拟主机是一种逻辑隔离机制它允许将消息队列和相关资源隔离到不同的逻辑单元中。每个虚拟主机都是一个相互独立的消息队列环境拥有自己的队列、交换机、绑定、用户权限等。 ⑦ Brokerrabbitmq 的服务器实体。 ⑧ Connection连接rabbitmq 与应用程序建立的TCP的连接。 ⑨ Channel信道是TCP里的虚拟连接一条TCP连接可以包含很多条的Channel。 ⑩ Consumer从消息队列中获取消息的应用程序。 4、消息 (1) 消息的传输和分发 rabbitmq 采用信道的方式传输消息 消费者通过订阅队列来接收消息若多个消费者订阅同一个队列rabbitmq 则使用轮询round-robin来决定哪个消费者将接收到队列中的下一条消息。 (2) 消息路由规则 rabbitmq 使用交换机Exchange和绑定Binding来进行消息路由。消息的路由过程包括以下步骤 ① 生产者发布消息 消息首先由生产者发布到一个特定的交换机并且指定一个消息的路由键Routing Key ② 交换机根据绑定进行路由绑定是交换机和队列之间的规则 交换机会根据消息的路由键以及与它绑定的队列来决定将消息路由到哪些队列 ③ 消息发送到队列 一旦消息被交换机路由到一个或多个队列它就会被存储在这些队列中等待消费者来处理。 (3) 常见的交换机类型和它们的路由规则 ① 直连交换机Direct Exchange 这种交换机使用精确的路由键匹配只将消息发送到与消息的路由键完全匹配的队列。 ② 主题交换机Topic Exchange 主题交换机使用通配符形式的路由键匹配允许使用通配符符号*和#来匹配多个路由键。 ③ 扇出交换机Fanout Exchange 扇出交换机将消息广播到与它绑定的所有队列忽略路由键。 (4) 如何保证消息正确地发送至 rabbitmq 将信道设置成confirm模式发送方确认模式发送方在信道上发布的消息都会被分配一个唯一的消息 IDdelivery tag。一旦消息成功投递到目标队列或者消息被写入磁盘持久化的消息信道会向发送方发送一个包含消息ID确认消息。 如果 rabbitmq 发生内部错误或其他原因导致消息丢失它会发送一条 nacknot acknowledged未确认消息以通知发送方发生了问题。 (5) 如何确认接收方消费了消息 rabbitmq 可以确保消息在成功被消费者接收和处理后才会被标记为已接收并从队列中删除。 (6) 如何避免消息重复传递或重复消费 ● 内部消息标识符inner-msg-id每个消息生产者发送的消息都附带一个内部消息标识符用于在消息传递过程中唯一标识每条消息消息中间件可以使用这个标识符来确保消息不会被重复传递。 ● 业务标识符bizId在消费者端每个消息体都必须包含一个业务标识符bizId消息消费者可以使用业务标识符来检测并拒绝重复消息。 (7) 如何确保消息不丢失 将 rabbitmq 消息设置为持久化使 rabbitmq 服务器重启时消息不会丢失。 ● 把队列的 durable 属性设置为true表示设置的是持久队列 ● 在消息发布前把消息的 “投递模式” 选项设置为2持久将消息标记成持久化。 三、RabbitMQ 单机部署 1、环境 设置主机名和域名解析 192.168.198.131rabbitmq1 192.168.198.132rabbitmq2 192.168.198.133rabbitmq3 2、部署 Erlang Rabbitmq 是基于 Erlang 构建的部署 Rabbitmq 系统环境需要提供 Erlang 环境 Erlang下载地址rabbitmq/erlang - Packages · packagecloud wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.7-1.el7.x86_64.rpm/download.rpm?distro_version_id140 rpm -Uvh erlang-23.3.4.7-1.el7.x86_64.rpm 3、部署 rabbitmq RabiitMQ 安装需要先安装 socat 插件yum install -y socat rabbitmq 下载地址rabbitmq/rabbitmq-server - Packages · packagecloud wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.10.0-1.el7.noarch.rpm/download.rpm?distro_version_id140 rpm -Uvh rabbitmq-server-3.10.0-1.el7.noarch.rpm 4、rabbitmq web 界面 rabbitmq-plugins enable rabbitmq_management 端口为 15672 ① 添加用户rabbitmqctl add_user 用户名 密码 ② 分配角色rabbitmqctl set_user_tags 用户名 角色 ● 超级管理员 administrator可登陆管理控制台可查看所有的信息并且可以对用户策略进行操作。 ● 监控者 monitoring可登陆管理控制台同时可以查看rabbitmq节点的相关信息 (进程数内存使用情况磁盘使用情况等) ● 策略制定者 policymaker可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息。 ● 普通管理者 management仅可登陆管理控制台无法看到节点信息也无法对策略进行管理。无法登陆管理控制台通常就是普通的生产者和消费者。 ③ 授予权限rabbitmqctl set_permissions -p / 用户名 .* .* .* (后面三个”*”代表用户拥有配置、写、读全部权限) 四、RabbitMQ 集群部署 1、简介 rabbitmq 集群部署是将多个 rabbitmq 节点组合在一起通过增加更多的节点来提高系统的可用性和可靠性形成一个能够提供更强大功能的整体。 2、原理 (1) cookie ● rabbitmq 底层是通过 Erlang 架构来实现的所以 rabbitmqctl 会启动 Erlang 节点并基于 Erlang节点来 rabbitmq 节点。cookie 是一个密钥令牌用于 rabbitmq 集群中的节点认证。Erlang的集群中各节点通过这个 cookie 来实现相互认证从而保证消息的可靠传输。 ● 在部署 rabbitmq 集群时需要保证各节点的 cookie 文件使用的是同一个值所以部署 rabbitmq 分布式集群时要先安装 Erlang并把其中一个服务的cookie 复制到另外的节点 而且文件的权限是400以保证节点之间能够正确通信。 (2) 内存节点和磁盘节点 ① 内存节点将数据存储在内存。内存节点主要负责提供高性能的消息传递加快消息的传递速度 ② 磁盘节点将数据存储在磁盘上。磁盘节点主要负责确保数据的可靠性即使在节点故障后也能恢复数据。 (3) 普通模式和镜像模式 ① 普通模式对于两个节点 rabbit01、rabbit02 来说消息实体只存在于其中一个节点 (例如 rabbit01)当 consumer 从 rabbit02 节点消费时RabbitMQ 会临时在 rabbit01、rabbit02 间进行消息传输把1中的消息实体取出并经过2发送给 consumer。 ② 镜像模式消息实体会主动在镜像节点之间实现同步而不是像普通模式那样在 consumer 消费数据时临时读取但集群内部的同步通讯会占用大量的网络带宽。 3、集群配置 (1) 设置 erlang 运行节点 将 rabbitmq1 的 .erlang.cookie 文件拷贝到 2、3使三台 rabbitmq 的 cookie 内容保持一致文件权限为400 (只读)。 scp -r /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie scp -r /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie 重启服务systemctl restart rabbitmq-server (2) rabbitmq2、3关闭节点 关闭 rabbitmq 运行节点rabbitmqctl stop 设置为独立节点rabbitmq-server -detached 查看节点状态rabbitmqctl cluster_status (3) rabbitmq2、3添加集群 停止应用rabbitmqctl stop_app 添加集群rabbitmqctl join_cluster rabbitrabbitmq1 开启应用rabbitmqctl start_app 查看集群状态rabbitmqctl cluster_status
http://www.zqtcl.cn/news/225550/

相关文章:

  • 网站建设丷金手指专业十五户县规划建设和住房保障局网站
  • 普通门户网站开发价格怎么查公司信息
  • 广告传媒公司网站怎么做高品质的网站开发公司
  • 建设品牌型网站制作一起做玩具网站
  • 中山品牌网站设计自建站怎么做
  • 最牛免费网站建设wordpress 相册功能
  • 网站开发是培训网站开发毕业设计评审表
  • 网站对网友发帖隐私做处理网站怎么上传模板
  • 网站建设大神级公司网站 百度地图
  • 网站营销定义高端网站建设免费分析
  • 韩国网站建站html5修改器下载
  • 网站做联盟广告能赚钱吗如何制作微信小程序教程
  • 免费网页代理浏览器1广州seo效果
  • 网站开发所需基础知识学网络营销有前途吗
  • php网站怎么做集群wordpress添加产品图
  • 公司怎么建立网站吗聊城高端网站建设
  • 女生做网站编辑wordpress 办公主题
  • 接单做网站的从什么网站建网站好
  • 服务器如何发布网站正能量不良网站进入窗口免费阅读
  • 深圳个性化建网站服务商百度秒收录神器
  • 金华做公司网站wordpress会员可见插件
  • 访问自己做的网站河南百度推广公司
  • Wordpress+仿站+工具建筑材料采购网站
  • 汕头免费建设网站制作阆中市网站建设
  • 怎样做网站表白墙网站设计的一般流程是什么
  • 河北手机网站制作企业网页设计的基本步骤和流程
  • 企业网站内容如何更新软件开发公司网站模板
  • 北京网站建设收费长沙有哪个学校可以学网站建设
  • 南江网站建设中国最好的app开发公司
  • 简单旅游网站开发建立网站的三种方式