中间件系统的架构设计

中间件系统的架构设计

  1. Master-Slave架构

   该系统的本质是希望能够用分布式的方式来处理一些数据,核心思想,就是把数据分发到很多台机器上来处理,然后需要有一台机器来控制N多台机器的分布式处理:

  分布式的处理,就会肯定涉及到在Master中要维护这个集群的一些核心元数据。数据的分发处理的调度,处理的具体过程的进度,对集群里存放数据进行描述的一些核心元数据。

   这些核心元数据会不断的频繁的修改,无论你是基于外部的文件还是数据库,或者是zookeeper来存放这些元数据的话,其实都会导致他的元数据更新性能降低,因为要访问外部依赖。这种复杂的元数据不一定能通过数据库来存放,它的非格式化有可能的。

    核心的设计是:将核心元数据直接存放在Master的内存里,这样可以保证高并发更新元数据的时候,性能极高,可直接基于内存来提供对外的更新服务。如果Master部署在高配置物理机上,比如32核128GB的那种,每秒支持10万+的请求都没问题。

  2.异步日志持久化机制

    Master进程重启或者突然宕机,内存中的数据不就丢失了?针对这个问题,采取异步持久化日志的机制,来通过异步化的方式把元数据的更新日志写入磁盘文件。每次Master收到一个请求,在内存里更新元数据之后,就需要生成一条元数据的更新日志,把这个更新日志需要写入到一个内存缓冲里去。然后等内存缓冲满了之后,由一个后台线程把这里的数据刷新到磁盘上去。

    那如果一条更新日志刚写入缓冲区,结果Master宕机了,此时不是还是会丢失少量数据吗?因为还没来得及进入磁盘。

    没错,需采用异步持久化磁盘的模式,要容忍极端宕机情况下,丢失几秒钟的数据的情况。

    如果是正常的Master重启:必须先把日志缓冲区清空刷入磁盘,然后才能正常重启Master,保证数据都在磁盘上不会丢失。重启的时候,从磁盘上读取更新日志,每一条都依次回访到内存里,恢复出来核心元数据即可。

   3.检查点机制:定时持久化全量数据

    元数据不断的在更新,不断在产生最新的变更日志写入磁盘文件,所以磁盘上的日志文件越来越大,系统运行一段时间以后,每次重启都需要从磁盘读取历史全部日志,一条一条回放到内存来恢复核心元数据吗?不,需要引入检查点机制。

    每隔一段时间,就需要开启一个后台线程,把内存里的全部核心元数据序列化后写入磁盘上的元数据文件,作为这个时间的一个快照文件,同时清空掉日志文件,这个叫做检查点操作。下次重启,只要把元数据文件读取出来直接反序列化后方入内存,然后把上次检查点之后的变更日志从日志文件里读出来回放到内存里,就可以恢复出来完整的元数据了。

  这种方式,可以让Master重启很快,因为大部分数据都是在检查点写入的那个元数据文件里。

   4.引入检查点节点

    Master内存里的元数据需要高并发的被人访问和修改,同时每隔一段时间还要检查点写入磁盘。所以在检查点过程中,是否需要需要把内存数据全部加锁,不允许别人修改?

    在加锁的时候,把不会变动的数据写入磁盘文件中,这个过程很慢,这样会导致系统在几秒内出现卡顿无法响应请求的问题。此时需要在架构设计里引入一个检查点节点,专门负责同步Master的变更日志。然后在自己内存里维护一份一模一样的核心元数据,每隔一段时间由检查点节点来负责将内存数据写入磁盘,接着上传发送给Master。这样就不需要Master自己执行检查点的时候对自己内存数据进行加锁了。对Master来说,它只需要一个后台线程负责接收检查点进程定时传送过来的元数据文件快照然后写入本地磁盘就可以了。

原文地址:https://www.cnblogs.com/zhao-teng-ass/p/11055567.html

时间: 2024-09-30 15:58:18

中间件系统的架构设计的相关文章

分布式发布订阅消息系统 Kafka 架构设计[转]

分布式发布订阅消息系统 Kafka 架构设计 转自:http://www.oschina.net/translate/kafka-design 我们为什么要搭建该系统 Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用. 活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部

一个小型的网页抓取系统的架构设计

一个小型的网页抓取系统的架构设计 网页抓取服务是互联网中的常用服务,在搜索引擎中spider(网页抓取爬虫)是必需的核心服务.搜索引擎的衡量指标"多.快.准.新"四个指标中,多.快.新都是对spider的要求.搜索引擎公司比如google.baidu都维护者自己负责的spider系统.当然他们的系统很复杂,在这里我们介绍一个小型的网页抓取系统的架构,目标是快速的抓取某个或者几个指定的网站的数据,它的作用有很多,比如做竞品分析,还有其他不可告人的J. 下面这个小型的网页抓取系统,分成下面

途牛原创|途牛无线权限系统的架构设计与实践

序 之前写过一篇大话权限中心的PHP架构之道,主要是从软件工程角度介绍,如何通过编码规范.依赖管理.数据源架构.事务处理.单元测试等技术,来保障权限系统的高可用,并未真正的涉及这套系统的架构. 今天准备从设计细节上分享一二. 望各位看官,心有“空杯”,带着“问题”一探究竟. 0. RBAC3 这里还是尤为的重要,因为他是整套系统设计的根基. 所以残忍的从上一篇中复制了一遍... RBAC认为权限授权实际上是Who.What.How的问题.在RBAC模型中,who.what.how构成了访问权限三

实时海量日志分析系统的架构设计、实现以及思考

1 序 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈. 由于需要对日志进行实时分析,所以Storm是我们想到的首个框架.Storm是一个分布式实时计算系统,它可以很好的处理流式数据.利用storm我们几乎可以直接实现一个日志分析系统,但是将日志分析系统进行模块化设计可以收到更好的效果.模块化的设计至少有两方面的优点: 模块化设计可以使功能更加清晰.整个日志分析系统可以分

分布式公布订阅消息系统 Kafka 架构设计

我们为什么要搭建该系统 Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础. 如今它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用. 活动流数据是全部站点在对其站点使用情况做报表时要用到的数据中最常规的部分.活动数据包含页面訪问量(page view).被查看内容方面的信息以及搜索情况等内容.这样的数据通常的处理方式是先把各种活动以日志的形式写

分布式发布订阅消息系统 Kafka 架构设计

我们为什么要搭建该系统 Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司 作为多种类型的数据管道(data pipeline)和消息系统使用. 活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部分.活动数据包括页面访问量(page view).被查看内容方面的信息以及搜索情况等内容.这种数据通常的处理方式是先把各种活动以日志的形式写入某

分布式发布订阅消息系统Kafka架构设计

我们为什么要搭建该系统 Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础.现在它已为多家不同类型的公司作为多种类型的数据管道(data pipeline)和消息系统使用. 活动流数据是所有站点在对其网站使用情况做报表时要用到的数据中最常规的部分.活动数据包括页面访问量(page view).被查看内容方面的信息以及搜索情况等内容.这种数据通常的处理方式是先把各种活动以日志的形式写入某种

世界杯皇冠体育足球竞猜系统整体架构设计

竞猜业务逻辑很简单世界杯皇冠体育足球源码下载dsluntan.com 企娥3393756370世界杯皇冠体育足球源码下载.普遍用于各种赛事中.篮球赛.足球赛.包括最近兴起的游戏电竞赛事,对于社区产品来说:竞猜无疑是一个很好的润滑剂,可以更好地凝聚用户: 核心逻辑说明 用户下注逻辑 赛事为多个队伍PK,用户可以选择一个队伍进行押注:每个队伍的赔率都会随着用户的下注而改变: 举例: 赛事名称:英雄联盟LPL春季赛EDG对WE EDG队伍胜利 赔率:1 下注金额:0 WE队伍胜利  赔率:1 下注金额

阅读心得6:《首次公开!菜鸟弹性调度系统的架构设计》

阿里妹导读:菜鸟方舟(ark)是面向菜鸟所有研发的资源管理和运维平台,负责对菜鸟的基础设施资源进行管控,以支撑日常和大促的资源需求.弹性调度是菜鸟方舟的一个重要组成部分,也是方舟的一个重要的功能特性. 通过弹性调度,能够使应用在业务压力上升时及时扩充资源,而在业务压力下降时对资源进行释放,从而实现在保证稳定性的前提下尽可能地提升资源使用效率.在未来引入离线任务进行混部,或者细粒度资源计价方式后,这种模式将会大幅度降低菜鸟整体IT成本.今天,我们来细细聊聊菜鸟方舟弹性调度系统背后的技术,希望对你有