您当前的位置:首页 > 电脑百科 > 程序开发 > 架构

项目架构设计构思

时间:2020-08-14 09:59:54  来源:  作者:

现在流行混合云架构,先上图

项目架构设计构思

可能大家看着有点类似12306的

从这个架构图里 ,我们可以把问题 分成 2 个问题来看 : 1 海量请求的分流 ,2 数据的一致性 和 同步。

乐观松耦合可能需要换一种售票和购票观念。所谓新的售票观念和购票观念,比如预约,预约的方式。BookaTicket。

乐观就是类似乐观锁定的那种方式,比如在12306这个场景上,乐观可以是预定,BookaTicket。

我们现在是买票,买票就是看有没有符合要求的票,有就买,如果有人比你先抢到,那你就后一个买,如果被抢完了,那你就买不到,只能再等。

这种“抢”的方式会造成大量的访问在同一时间拥挤向服务器。

如果是预定的方式,你可以在任何时候做一个预定,系统可以随时受理你的预定,系统受理预定,并不表示现在就购票成功,也不表示未来一定有票,但是系统会在一定的时间结算某一批预定,然后根据票况给予预定的结果。

如果符合你的要求有票,那么系统会回复消息给你“您预定的票已可购买,在1个小时内回复xxx确定购买”。

那么,你在1个小时内回复xxx的话(当然包括了支付钱),那么就购买成功了。

如果没有符合要求的票,或者符合要求的票已经用完了(安排给在你之前预定的人们了),那么系统会回复你“没有符合您的要求的票”或者“符合要求的票已预定完,请再次预定”。

你可以再次预定,然后等待系统通知,如此循环。

如果从架构的角度来解释预定这种业务,可以这样解释,传统的购买相当于同步,预定相当于异步,预定(异步)可以解决同一时间大量请求拥挤向服务器的问题。

同时可以解决数据一致性和同步的问题。

异步可以在一定的时间进行一次“结算”,就不需要像同步方式那样为了数据一致性和数据同步而需要极致的服务器资源和网络资源。

你把需求提给服务器,服务器不是即时(同步)答复,而是,“先考虑一下”,把很多用户的需求都汇集一下,再统一答复一次。

消息队列是“架构”里异步的代表,但在这里说的解决方案中,具体的技术可以是各种各样。

轮询redis,甚至轮询数据库也是可以的么。^^

事实上,用户的需求会先持久化,所以,可能会轮询数据库。

因为是异步乐观松耦合的架构,所以,轮询数据库也是很轻松的,不会给系统造成负担。

我们再看上面的那个架构图,图的下方列出了余票查询集群、用户登录集群、订单分级查询、票价计算集群、实名制身份确认集群5项。

我们可以看到图的中央,红色粗的箭头“海量购票请求”,这个就是来自于全国的用户的购票请求。这个请求是指向“铁路总公司数据中心”。

中央还有一个蓝色的比较细的箭头,是“余票查询请求分流”,指向阿里云公有云数据中心,也就是说,阿里云公有云数据中心可以来分担“余票查询”业务。

而左侧有一个“主数据库”,主数据库的数据来自于18个路局的数据汇总,主数据库同时向铁路总公司数据中心和阿里云数据中心(负责余票查询分流)提供数据(同步数据)。

从这个图的架构中我们可以看到,核心交易是发生在“铁路总公司数据中心”,就是说,这是一个实时的,中心化的数据库支持的业务系统。

同时也可以判定,余票查询不是实时的,是一个参考性的资料。具体能不能买这个票,在真正买票(在铁路总公司数据中心中发生交易)时才能知道结果。而“铁路总公司数据中心”这个中心数据库,它的承载能力来自于一个分布式数据库Gemfire。



Tags:架构   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  Tags: 架构  点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  Tags: 架构  点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22  Tags: 架构  点击:(10)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  Tags: 架构  点击:(20)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  Tags: 架构  点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  Tags: 架构  点击:(23)  评论:(0)  加入收藏
背景在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。日志存储和检索...【详细内容】
2021-11-23  Tags: 架构  点击:(20)  评论:(0)  加入收藏
zookeeper动物管理员,是一个很形象的名字,是一个分布式协调服务。它可以用来做分布式配置管理,服务注册及发现,分布式锁。在CAP中,属于CP型。下图是zookeeper的架构图: 图中,绿色的...【详细内容】
2021-11-16  Tags: 架构  点击:(38)  评论:(0)  加入收藏
如何设计一个好的软件架构,如何提高软件的扩展性,移植性,复用性和可读性?很多做嵌入式开发的朋友经常会遇到这种情况:一个项目软件设计完成了,客户提出了一些新的功能需求。这时侯...【详细内容】
2021-11-08  Tags: 架构  点击:(35)  评论:(0)  加入收藏
架构是数据仓库建设的总体规划,从整体视角描述了解决方案的高层模型,描述了各个子系统的功能以及关系,描述了数据从源系统到决策系统的数据流程。业务需求回答了要做什么,架构就...【详细内容】
2021-11-03  Tags: 架构  点击:(35)  评论:(0)  加入收藏
▌简易百科推荐
为了构建高并发、高可用的系统架构,压测、容量预估必不可少,在发现系统瓶颈后,需要有针对性地扩容、优化。结合楼主的经验和知识,本文做一个简单的总结,欢迎探讨。1、QPS保障目标...【详细内容】
2021-12-27  大数据架构师    Tags:架构   点击:(3)  评论:(0)  加入收藏
前言 单片机开发中,我们往往首先接触裸机系统,然后到RTOS,那么它们的软件架构是什么?这是我们开发人员必须认真考虑的问题。在实际项目中,首先选择软件架构是非常重要的,接下来我...【详细内容】
2021-12-23  正点原子原子哥    Tags:架构   点击:(7)  评论:(0)  加入收藏
现有数据架构难以支撑现代化应用的实现。 随着云计算产业的快速崛起,带动着各行各业开始自己的基于云的业务创新和信息架构现代化,云计算的可靠性、灵活性、按需计费的高性价...【详细内容】
2021-12-22    CSDN  Tags:数据架构   点击:(10)  评论:(0)  加入收藏
▶ 企业级项目结构封装释义 如果你刚毕业,作为Java新手程序员进入一家企业,拿到代码之后,你有什么感觉呢?如果你没有听过多模块、分布式这类的概念,那么多半会傻眼。为什么一个项...【详细内容】
2021-12-20  蜗牛学苑    Tags:微服务   点击:(8)  评论:(0)  加入收藏
我是一名程序员关注我们吧,我们会多多分享技术和资源。进来的朋友,可以多了解下青锋的产品,已开源多个产品的架构版本。Thymeleaf版(开源)1、采用技术: springboot、layui、Thymel...【详细内容】
2021-12-14  青锋爱编程    Tags:后台架构   点击:(20)  评论:(0)  加入收藏
在了解连接池之前,我们需要对长、短链接建立初步认识。我们都知道,网络通信大部分都是基于TCP/IP协议,数据传输之前,双方通过“三次握手”建立连接,当数据传输完成之后,又通过“四次挥手”释放连接,以下是“三次握手”与“四...【详细内容】
2021-12-14  架构即人生    Tags:连接池   点击:(16)  评论:(0)  加入收藏
随着移动互联网技术的快速发展,在新业务、新领域、新场景的驱动下,基于传统大型机的服务部署方式,不仅难以适应快速增长的业务需求,而且持续耗费高昂的成本,从而使得各大生产厂商...【详细内容】
2021-12-08  架构驿站    Tags:分布式系统   点击:(23)  评论:(0)  加入收藏
本系列为 Netty 学习笔记,本篇介绍总结Java NIO 网络编程。Netty 作为一个异步的、事件驱动的网络应用程序框架,也是基于NIO的客户、服务器端的编程框架。其对 Java NIO 底层...【详细内容】
2021-12-07  大数据架构师    Tags:Netty   点击:(16)  评论:(0)  加入收藏
前面谈过很多关于数字化转型,云原生,微服务方面的文章。虽然自己一直做大集团的SOA集成平台咨询规划和建设项目,但是当前传统企业数字化转型,国产化和自主可控,云原生,微服务是不...【详细内容】
2021-12-06  人月聊IT    Tags:架构   点击:(23)  评论:(0)  加入收藏
微服务看似是完美的解决方案。从理论上来说,微服务提高了开发速度,而且还可以单独扩展应用的某个部分。但实际上,微服务带有一定的隐形成本。我认为,没有亲自动手构建微服务的经历,就无法真正了解其复杂性。...【详细内容】
2021-11-26  GreekDataGuy  CSDN  Tags:单体应用   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条