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

网站开发的检索速度在啥范围之内免费移动网站建设

网站开发的检索速度在啥范围之内,免费移动网站建设,厦门建设银行网站,企业介绍模板范文消息服务的作用#xff1a; 在多数应用尤其是分布式系统中#xff0c;消息服务是不可或缺的重要部分#xff0c;它使用起来比较简单#xff0c;同时解决了不少难题#xff0c;例如异步处理、应用解耦、流量削锋、分布式事务管理等#xff0c;使用消息服务可以实现一个高…消息服务的作用 在多数应用尤其是分布式系统中消息服务是不可或缺的重要部分它使用起来比较简单同时解决了不少难题例如异步处理、应用解耦、流量削锋、分布式事务管理等使用消息服务可以实现一个高性能、高可用、高扩展的系统。 1.异步处理 场景说明:用户注册后系统需要将信息写入数据库并发送注册邮件和注册短信通知。下面我们使用图示的方式直观展示上述场景的不同处理方式如图所示。 在图中针对上述注册业务的场景需求处理方式有3种如下所示。 1串行处理方式:用户发送注册请求后服务器会先将注册信息写入数据库依次发送注册邮件和短信消息服务器只有在消息处理完毕后才会将处理结果返回客户端。这种串行处理消息的方式非常耗时用户体验不友好。 2并行处理方式:用户发送注册请求后将注册信息写入数据库同时发送注册邮件和短遇到较为耗时的业务处理仍然显得不够完善。遇到较为耗时的业务处理仍然显得不够完善。 3消息服务处理方式:可以在业务中嵌入消息服务进行业务处理这种方式先将注册信息写入数据库在极短的时间内将注册信息写入消息队列后即可返回响应信息。此时前端业务不需要理会不相干的后台业务处理而发送注册邮件和短信的业务会自动读取消息队列中的相关消息进行后续业务处理。 2.应用解耦 场景说明:用户下单后订单服务需要通知库存服务。下面我们使用图示的方式直观展示上述需求的不同处理方式如图所示。 在图中如果使用传统方式处理订单业务用户下单后订单服务会直接调用库存服务接口进行库存更新这种方式有一个很大的问题是:一旦库存系统出现异常订单服务会失败导致订单丢失。如果使用消息服务模式订单服务的下订单消息会快速写入消息队列库存服务会监听并读取到订单从而修改库存。相较于传统方式消息服务模式显得更加高效、可靠。 3.流量削峰 场景说明:秒杀活动是流量削峰的一种应用场景 由于服务器处理资源能力有限因此出现峰值时很容易造成服务器宕机、用户无法访问的情况。为了解决这个问题通常会采用消息队列缓冲瞬时高峰流量对请求进行分层过滤从而过滤掉一些请求。 图8-3描述的是流量削峰场景的处理方式。 针对上述秒杀业务的场景需求如果专门增设服务器来应对秒杀活动期间的请求瞬时高峰的话在非秒杀活动期间这些多余的服务器和配置显得有些浪费;如果不进行有效处理的话秒杀活动瞬时高峰流量请求有可能压垮服务因此在秒杀活动中加入消息服务是较为理想的解决方案。通过在应用前端加入消息服务先将所有请求写入到消息队列并限定一定的阈值多余的请求直接返回秒杀失败秒杀服务会根据秒杀规则从消息队列中读取并处理有限的秒杀请求。 4.分布式事务管理 场景说明:在分布式系统中分布式事务是开发中必须要面对的技术难题怎样保证分布式系统的请求业务处理的数据一致性 通常是要重点考虑的问题。针对这种分布式事务管理的情况目前较为可靠的处理方式是基于消息队列的二次提交在失败的情况可以进行多次尝试或者基于队列数据进行回滚操作。因此在分布式系统中加入消息服务是一个既能保证性能不变又能保证业务一致性的方案。 针对这种分布式事务处理的需求下面我们以图示的方式展示使用消息服务的处理机制如图所示。 针对上述分布式事务管理的场景需求如果使用传统方式在订单系统中写入订单支付成功信息后再远程调用库存系统进行库存更新一旦库存系统异常很有可能导致库存更新失败而订单支付成功的情况从而导致数据不一致。针对这种分布式系统的事务管理通常会在分布式系统之间加入消息服务进行管理。在图中订单支付成功后写入消息表;然后定时扫描消息表消息写入到消息队列中库存系统会立即读取消息队列中的消息进行库存更新同时添加消息处理状态;接着库存系统向消息队列中写入库存处理结果订单系统会立即读取消息队列中的库存处理状态。如果库存服务处理失败订单服务还会重复扫描并发送消息表中的消息让库存系统进行最终一致性的库存更新。如果处理成功订单服务直接删除消息表数据并写入到历史消息表。 常用消息中间件介绍 消息队列中间件(简称消息中间件)是指利用高效可靠的消息传递机制进行与平台无关的数据交流并基于数据通信来进行分布式系统的集成。目前开源的消息中间件可谓是琳琅满目大家耳熟能详的有很多比如ActiveMQ、RabbitQ、Kafka、 RocketMQ 等。目前市面上的消息中间件各有侧重点选择适合自己、能够扬长避短的无疑是最好的选择。接下来我们针对常用的消息队列中间件进行介绍。 1. ActiveMQ ActiveMQ是Apache公司出品的、采用Java 语言编写的、完全基于JMS规范( Java Message Service)的、面向消息的中间件它为应用程序提供高效、可扩展的、稳定的、安全的企业级消息通信。ActiveMQ丰富的API和多种集群构建模式使得它成为业界老牌的消息中间件广泛的应用于中小型企业中。相较于后续出现的RabbitMQ、RocketMQ、 Kafka 等消息中间件来说ActiveMQ 性能相对较弱在如今的高并发、大数据处理的场景下显得力不从心经常会出现一些问题例如消息延迟、堆积、堵塞等。 2. RabbitMQ RabbitMQ是使用Erlang 语言开发的开源消息队列系统基于AMQP协议( Advanced Message Queuing Protocol )实现。AMQP是为应对大规模并发活动而提供统消息服务的应用层标准高级消息队列协议专门为面向消息的中间件设计该协议更多用在企业系统内对数据-致性、 稳定性和可靠性要求很高的场景对性能和吞吐量的要求还在其次。正是基于AMQP协议的各种优势性能使得RabbitMQ消息中间件在应用开发中越来越受欢迎。 3.Kafka Kaika是由Apache软件基金会开发的一个开源流处理平台它是一种高吞吐量的分布式发布订阅消息系统采用Scala和Java语言编写提供了快速、可扩展的、分布式的、分区的和可复制的日志订阅服务其主要特点是追求高吞吐量适用于产生大量数据的互联网服务的数据收集业务。 4. RocketMQ RocketMQ是阿里巴巴公司开源产品目前也是Apache公司的顶级项目使用纯Java开发具有高吞吐量、高可用、适合大规模分布式系统应用的特点。RocketMQ的思路起源于Kafka对消息的可靠传输以及事务性做了优化目前在阿里巴巴中被广泛应用于交易、充值、流计算、消息推送、日志流式处理场景不过维护上稍微麻烦。 在实际项目技术选型时在没有特别要求的场景下通常会选择使用RabbitMQ作为消息中间件如果针对的是大数据业务推荐使用Kafka或者是RocketMQ作为消息中间件。
http://www.zqtcl.cn/news/15671/

相关文章:

  • 查找邮箱注册过的网站楼盘网站建设案例
  • 建设银行网站个人中心网站设计制作哪些
  • 网站开发的基础知识博达网站建设教程
  • 美团网站怎么做电商运营推广怎么做
  • 湛江网站seo企业官网图片
  • 沈阳市住房和城乡建设局网站php开源企业网站系统
  • 网站建设 三合一网站建设设计问卷
  • 网站最近收录衡阳seo排名
  • 重型机械网站开发模版wordpress文章中标签
  • 高校网站建设需求分析wordpress分页调用代码
  • 知名网站建设平台淘宝客做网站卖什么好
  • 网站google搜索优化网站建设高端定制
  • 哪个浏览器能打开那种网站辛集建设局官方网站
  • 苏州建设厅网站首页沈阳制作网站建站
  • 网站建设分金手指排名十三北京东道设计公司官网
  • wordpress 自定义结构廊坊关键词优化服务
  • 网站集约化建设方案桂林wordpress招聘
  • 手工做衣服的网站wordpress nginx 404
  • 服务器搭建网站数据库衡水营销网站建设
  • 官网网站怎么创建常德网站制作建设
  • 一个网站后台怎么做网站接入网方式
  • dede资讯类网站模板网站代码需要注意什么
  • 苏州网站开发电话自己做的网站怎么弄成app
  • 如何拿高权重网站外链进行互换?网站单页做301
  • 建立网站平台需要多少钱wordpress训网 插件
  • 新手容易上手的cms做企业网站个人网站备案涉及支付宝
  • 如何鉴别网站有没有做301重定向广州海珠网站开发价格
  • 谁能分享个小网站啊电子宣传册如何制作
  • 网站多级栏目怎么快速做网站文章
  • 企业网站建设的必要性和重要性大城县企业网站建设