平台网站建设方案苏州市建设局网站

web/2025/9/30 20:47:29/文章来源:
平台网站建设方案,苏州市建设局网站,网站建设平台合同模板下载,摄影工作室网站源码一、消息队列概述 消息队列中间件是分布式系统中重要的组件#xff0c;主要解决应用解耦#xff0c;异步消息#xff0c;流量削锋等问题#xff0c;实现高性能#xff0c;高可用#xff0c;可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ#xff0c;Rabbit…一、消息队列概述 消息队列中间件是分布式系统中重要的组件主要解决应用解耦异步消息流量削锋等问题实现高性能高可用可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQRabbitMQZeroMQKafkaMetaMQRocketMQ 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理应用解耦流量削锋和消息通讯四个场景。 2.1异步处理 场景说明用户注册后需要发注册邮件和注册短信。传统的做法有两种 1.串行的方式2.并行方式 a、串行方式将注册信息写入数据库成功后发送注册邮件再发送注册短信。以上三个任务全部完成后返回给客户端。 b、并行方式将注册信息写入数据库成功后发送注册邮件的同时发送注册短信。以上三个任务完成后返回给客户端。与串行的差别是并行的方式可以提高处理的时间 假设三个业务节点每个使用50毫秒钟不考虑网络等其他开销则串行方式的时间是150毫秒并行的时间可能是100毫秒。 因为CPU在单位时间内处理的请求数是一定的假设CPU1秒内吞吐量是100次。则串行方式1秒内CPU可处理的请求量是7次1000/150。并行方式处理的请求量是10次1000/100 小结如以上案例描述传统的方式系统的性能并发量吞吐量响应时间会有瓶颈。如何解决这个问题呢 引入消息队列将不是必须的业务逻辑异步处理。改造后的架构如下 按照以上约定用户的响应时间相当于是注册信息写入数据库的时间也就是50毫秒。注册邮件发送短信写入消息队列后直接返回因此写入消息队列的速度很快基本可以忽略因此用户的响应时间可能是50毫秒。因此架构改变后系统的吞吐量提高到每秒20 QPS。比串行提高了3倍比并行提高了两倍。 2.2 应用解耦 场景说明用户下单后订单系统需要通知库存系统。传统的做法是订单系统调用库存系统的接口。如下图 传统模式的缺点假如库存系统无法访问则订单减库存将失败从而导致订单失败订单系统与库存系统耦合 如何解决以上问题呢引入应用消息队列后的方案如下图 订单系统用户下单后订单系统完成持久化处理将消息写入消息队列返回用户订单下单成功 库存系统订阅下单的消息采用拉/推的方式获取下单信息库存系统根据下单信息进行库存操作 假如在下单时库存系统不能正常使用。也不影响正常下单因为下单后订单系统写入消息队列就不再关心其他的后续操作了。实现订单系统与库存系统的应用解耦 2.3 流量削锋 流量削锋也是消息队列中的常用场景一般在秒杀或团抢活动中使用广泛。 应用场景秒杀活动一般会因为流量过大导致流量暴增应用挂掉。为解决这个问题一般需要在应用前端加入消息队列。 a、可以控制活动的人数 b、可以缓解短时间内高流量压垮应用 2.4 日志处理 日志处理是指将消息队列用在日志处理中比如Kafka的应用解决大量日志传输的问题。架构简化如下 日志采集客户端负责日志数据采集定时写受写入Kafka队列 Kafka消息队列负责日志数据的接收存储和转发 日志处理应用订阅并消费kafka队列中的日志数据 2.5 消息通讯 消息通讯是指消息队列一般都内置了高效的通信机制因此也可以用在纯的消息通讯。比如实现点对点消息队列或者聊天室等 点对点通讯 客户端A和客户端B使用同一队列进行消息通讯。 聊天室通讯 客户端A客户端B客户端N订阅同一主题进行消息发布和接收。实现类似聊天室效果。 以上实际是消息队列的两种消息模式点对点或发布订阅模式。模型为示意图供参考。 三、消息中间件示例 3.1 电商系统 消息队列采用高可用可持久化的消息中间件。比如Active MQRabbit MQRocket Mq。 1应用将主干逻辑处理完成后写入消息队列。消息发送是否成功可以开启消息的确认模式。消息队列返回消息接收成功状态后应用再返回这样保障消息的完整性 2扩展流程发短信配送处理订阅队列消息。采用推或拉的方式获取消息并处理。 3消息将应用解耦的同时带来了数据一致性问题可以采用最终一致性方式解决。比如主数据写入数据库扩展应用根据消息队列并结合数据库方式实现基于消息队列的后续处理。 3.2 日志收集系统 分为Zookeeper注册中心日志收集客户端Kafka集群和Storm集群OtherApp四部分组成。 Zookeeper注册中心提出负载均衡和地址查找服务 日志收集客户端用于采集应用系统的日志并将数据推送到kafka队列 Kafka集群接收路由存储转发等消息处理 Storm集群与OtherApp处于同一级别采用拉的方式消费队列中的数据 4、常见MQ对比 Kafka是linkedin开源的MQ系统主要特点是基于Pull的模式来处理消息消费追求高吞吐量一开始的目的就是用于日志收集和传输0.8开始支持复制不支持事务适合产生大量数据的互联网服务的数据收集业务。 RabbitMQ是使用Erlang语言开发的开源消息队列系统基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由包括点对点和发布/订阅、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景对性能和吞吐量的要求还在其次。 RocketMQ是阿里开源的消息中间件它是纯Java开发具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于Kafka但并不是Kafka的一个Copy它对消息的可靠传输及事务性做了优化目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景。 ZeroMQ只是一个网络编程的Pattern库将常见的网络请求形式分组管理链接管理发布订阅等模式化、组件化简而言之socket之上、MQ之下。对于MQ来说网络传输只是它的一部分更多需要处理的是消息存储、路由、Broker服务发现和查找、事务、消费模式ack、重投等、集群服务等。 RabbitMQ/Kafka/ZeroMQ 都能提供消息队列服务但有很大的区别。 在面向服务架构中通过消息代理比如 RabbitMQ / Kafka等使用生产者-消费者模式在服务间进行异步通信是一种比较好的思想。 因为服务间依赖由强耦合变成了松耦合。消息代理都会提供持久化机制在消费者负载高或者掉线的情况下会把消息保存起来不会丢失。就是说生产者和消费者不需要同时在线这是传统的请求-应答模式比较难做到的需要一个中间件来专门做这件事。其次消息代理可以根据消息本身做简单的路由策略消费者可以根据这个来做负载均衡业务分离等。 缺点也有就是需要额外搭建消息代理集群但优点是大于缺点的 。 ZeroMQ 和 RabbitMQ/Kafka 不同它只是一个异步消息库在套接字的基础上提供了类似于消息代理的机制。使用 ZeroMQ 的话需要对自己的业务代码进行改造不利于服务解耦。 RabbitMQ 支持 AMQP二进制STOMP文本MQTT二进制HTTP里面包装其他协议等协议。Kafka 使用自己的协议。 Kafka 自身服务和消费者都需要依赖 Zookeeper。 RabbitMQ 在有大量消息堆积的情况下性能会下降Kafka不会。毕竟AMQP设计的初衷不是用来持久化海量消息的而Kafka一开始是用来处理海量日志的。 总的来说RabbitMQ 和 Kafka 都是十分优秀的分布式的消息代理服务只要合理部署不作基本上可以满足生产条件下的任何需求。 关于这两种MQ的比较网上的资料并不多最权威的的是kafka的提交者写一篇文章。http://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-RabbitMQ 里面提到的要点 1、 RabbitMq比kafka成熟在可用性上稳定性上可靠性上RabbitMq超过kafka 2、 Kafka设计的初衷就是处理日志的可以看做是一个日志系统针对性很强所以它并没有具备一个成熟MQ应该具备的特性 3、 Kafka的性能吞吐量、tps比RabbitMq要强这篇文章的作者认为两者在这方面没有可比性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

做网站推广如何最新军事动态

六月一眨眼的时间就来到了中旬,时间流逝之快让我们有些措手不及,炎热的天气更是加剧了小组里每个人的焦虑,也因此有了更大的动力与决心去完成自己的工作。 自己的工作是这个游戏的前端,需要完成的任务是做出来登录等一系列的用户界…

做微信平台网站网站的几种提交方式

1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下,我们可以通过构建一个卷积神经网络(Convolutional Neural Network,CNN)来实现该任务。以下…

电子产品网站建设策划方案好用的快速网站建设平台

我们传统使用MinIo做OSS对象存储的应用方式往往都是在后端配置与MinIO的连接和文件上传下载的相关接口,然后我们在前端调用这些接口完成文件的上传下载机制,但是,当并发量过大,频繁访问会对后端的并发往往会对服务器造成极大的压力…

中企网络科技建站天眼查企业工商查询

高级计算机体系结构-浙江大学计算机系统结构室高级计算机体系结构陈文智 浙江大学计算机学院chenwzzju.edu.cn2014年9月11.1 计算机技术发展综述(1)1946年: 在二次世界大战期间研制成功的世界上第一台电子计算机ENIAC(Electronic Numerical Intergrator andCalculator)正式对…

网站开通flash企查查企业信息查询网页版

树-二叉树、满二叉树和完全二叉树 二叉树的定义: (1)当n0时,为空树; (2)当n>0时,是由一个根结点和称为根结点的左、右子树构成,并且两颗子树互不相交。 满二叉树&…

彩票走势图网站建设网站建设服务外包

文件夹和文件的作用 config:文件的配置: 1.coco.data:存放coco数据集的相关信息,如类别总数,数据集的路径等 2.yolov3.cfg: yolov3的网络架构 data:存放训练集和测试集 1.coco:存放coco训练集和测试集 labels中存放每个照片的标签…

济宁500元网站建设企业app怎么做

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…

网站优化seo方案电子商务网站的目的

给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。 上图子矩阵左上角 (row1, col1) (2, 1) ,右下角(row2, col2) (4, 3),该子矩形内元素的总和为 8。 示…

做logo图标的网站建设一个图片下载网站

im2double函数,如果输入是 uint8 unit16 或者是二值的logical类型,则函数im2double 将其值归一化到0~1之间。

建手机网站怎么收费中国网站建设公司有哪些方面

发现有一个怪圈,如果码农年龄35+,除非非常匹配,不然在国内企业筛选可能就筛选不过。国外码农可以干到40+、50+。一些外企,对年龄35+的码农依然青睐。这些外企对英文是有要求,通常是要英文自我介绍,下面提供一些英文自我介绍参考。 参考1: Good morning/afternoon, I a…

网站安全设置教程广告软文

气膜建筑在近年来的发展迅速,逐渐替代了一部分传统建筑,展现了良好的市场前景。然而,面对自然环境中的极端天气,如暴风、暴雨和暴雪,气膜建筑是否能够经受住考验是大家关注的焦点。轻空间带您探讨一下这些极端天气对气…

网站友情链接形式上国外网站用什么机箱好

Jenkins 中的清理工作空间 是指在构建完成后,自动删除工作空间中的某些或所有文件,以释放磁盘空间、提高构建效率并确保构建环境的清洁。 清理工作空间的必要性 释放磁盘空间: 随着构建次数的增加,工作空间中的文件会不断累积&…

书店网站建设策划书总结做美剧盗版网站

继续学习最近一直在使用Asp.Net Core SignalR(下面成SignalR Core)为小程序提供websocket支持,前端时间也发了一个学习笔记,在使用过程中稍微看了下它的源码,不得不说微软现在真的强大,很多事情都帮你考虑到了,比如使用Redis,使用Redis后,你的websocket就支持横向扩…

网站开发毕业设计评审表wordpress 优秀作者

一.定时器(timer)的需求 1.执行定时任务的时,主线程不阻塞,所以timer必须至少持有一个线程用于执行定时任务 2.考虑到timer线程资源的合理利用,一个timer需要能够管理多个定时任务,所以timer要支持增删任务…

如何在asp网站甘肃城乡建设厅网站首页

学习感悟一己之言 学习上克服困难实际上是克服心理上或认识上的障碍的过程。所谓的理解,就是化陌生为熟悉。看不懂,一方面是因为接触的材料太陌生,即远离你当前的背景知识;另一方面是材料或讲述者的描述刻画不准确或晦涩不当。有了…

设计公司网站详情wordpress同步到豆瓣

1、Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 集群是一个统称,他分为好几种,如:高性能科学群集、负载均衡群集、高可用性群集等。 科学群集 、高性能集群(High performance clus…

一般建站需要多少钱天猫购买

PSP个人项目耗时对比记录表:四则运算 Personal Software Process StagesTime(%)Planning7 Estimate9开发76 •需求分析 6 •生成设计文档 7 •设计复审(和同事审核设计文档) 6 •代码规范(为目前的开发制定合适的规范&…

迁安网站开发个人网站 创意

MySQL唯一约束(Unique Key)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。在创建表时设置唯一约束在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,语法规则如下: UNIQUE创建数据表 t…

连云港网站推广优化广州公司注册处官网

这篇文章解释了当iPhone上的Wi-Fi变灰时,你应该检查并修复的所有事情。 确保飞行模式关闭 这听起来可能很傻,但在执行任何其他操作之前,请确保未打开飞机模式。此功能禁用Wi-Fi(和蜂窝网络),因为它旨在允许你在通常不允许传出无线通信的飞机上使用手机。 查看飞行模式…

贵州网站推广电话dede网站模板怎么安装

1996年6月23日至7月1日,我被点名到四川某单位协助排查某系统的技术问题。 我不懂该系统的原理,也不懂硬件,只能从软件角度分析问题。 那时,我所在单位已经为一家美国公司做了3年的软件第三方独立验证和测试,从中学到…