Windows 10大升级21H2即将开测
|
写在前面 随着互联网的发展,互联网企业的业务也在不断的飞速发展,进而导致系统的架构也在不断的发生着变化。总体来说,系统的架构大致经历了:单体应用架构—>垂直应用架构—>分布式架构—>SOA架构—>微服务架构的演变。当然,很多互联网企业的系统架构已经向Service Mesh(服务化网格)演变。今天,我们就一起来聊聊关于系统架构的演变这个话题。 单体应用架构 在企业发展的初期,一般公司的网站流量都比较小,只需要一个应用,将所有的功能代码打包成一个服务,部署到服务器上就能支撑公司的业务。这样也能够减少开发、部署和维护的成本。
比如,大家都很熟悉的电商系统,里面涉及的业务主要有:用户管理、商品管理、订单管理、支付管理、库存管理、物流管理等等模块,初期我们会将所有模块写到一个Web项目中,然后统一部署到一个Web服务器中。 如上图方案所示,DLA提供了端到端的方案,面对OSS数据开放性带来的管理及入湖困难,DLA数据湖管理,帮助您一站式构建安全数据湖。
首先我们在Presto的Coordinator之上放置了一个新的FrontNode模块,让用户连接到这个模块,而不是直接连接到我们底层的Coordinator,这样我们底层到底有多少个Coordinator,现在哪个Coordinator在给用户提供服务都对用户完全透明,这样架构上就比较灵活,从而方便我们在底层对Coordinator进行扩展。 FrontNode在接收到用户的查询之后会把请求按照Round Robin的方式发送给底层的多个Coordinator,这样多个Coordinator就可以分担压力,但是整个集群还是有一些全局的事情要有单个Coordinator来做,比如Presto的Worker状态监控、OOM Killer等等,因此我们引入了一个Zookeeper来做Coordinator选主的事情,选主之后主Coordinator的职责会跟社区的Presto类似:做全局的Worker状态监控、OOM Killer以及执行分配给它的查询;从Coordinator的职责则比较轻量级: 只负责执行分配给它的查询。 如果其中一个Coordinator因为任何问题宕机,Zookeeper会在秒级发现这个问题并重新选主,用户受到影响的查询只要重试即可。而且我们正在做的一个尝试是做查询的自动重试,对于确定是系统原因造成的失败我们做自动重试,这样一个Coordinator对用户的影响将会很小。
而有了多Coordinator的架构,我们要实现无缝升级就非常简单了,我们在升级的时候只要主动把某个Coordinator/Worker从集群中摘除,进行升级,升级完成再加入集群,客户可以毫不感知,因为在升级过程中始终有一个正常工作的集群在给用户提供服务, 比如我们在升级从Coordinator的时候,整个集群情况如下: (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

