技术管理篇5一技术演变史(12)

上一篇我们聊了前端的发展历程。今天,我们继续聊一下后端技术的变化。

互联网和移动互联网彻底改变了人们的生活,同时系统的并发量也越来越高。要给用户提供一个完美的体验,就需要解决整个服务的高性能、高并发、数据一致和可扩展等等问题。

分工协作

怎么来解决这些问题呢,我们可以打个比方。这就好比一个团队做事情,一个人的精力总是有限的,只靠一个人是不行的。这就需要发挥团队的力量。什么是团队的力量,就是要高效的分工和协作。把后端集群比作一个团队,就是要想办法让服务节点更好的分工和协作。

先来说一下分工,对后端服务来说,主要有计算和存储两大职责。职责首先要清晰和独立。

计算集群

对计算的集群来说,怎么来分工。要先根据所要承载的业务来看,可以根据优先级和业务量来划分。如果业务调用量大或者比较重要的,就可以单独分工一个独立集群去处理。这叫专事专办。这样可以保障高优先的事情能得到充足的资源,也不会被不重要的事情影响。

职责相同的一个集群内怎么来分工,最简单的方式就是轮流来做。轮流之前还得先解决一个信息共享的问题。以销售为例打个比方,如果这个客户的信息掌握在一个客户经理手里,其他人都不知道,那再多人也帮不上忙。在计算机世界里就是无状态的概念。要把每次请求的状态信息放到其他存储集群中,让每个计算集群的节点都灵活的信息共享。

龙生九子,各个不同。集群节点的计算资源和当前状态也是不同的,完全平均分配也不合理。比如有的服务器CPU和内存配置更好一些,那就应该承担更大的责任。再比如集群在运行的过程中,有可能某个机器发生了故障,就不应该再继续提供服务。所以更有效的分配方式是根据节点的资源能力以及当前的运行状态,实时监控,动态的分配工作。

再大的集群也有能力的上线,我们应该尽可能的让关键业务健康运行。如果访问量真的超过了集群的能力,我们也应该有能力合理调配资源,抽调人力,集中力量办大事。不重要的服务可以先放弃掉。如果实在不行,我们还可以让用户友好的等待。类比海底捞,我们可以让客人在餐厅外边排队,边吃边等。

当业务访问量下降以后,我们也可以根据情况收缩服务节点,不做无畏的浪费。

再来看一下计算集群的协作问题。每个工作都不可能单打独斗来解决,这就需要节点之间的协作。首先,各个节点得需要知道各自的职责,有问题应该找谁。类比我们获取信息的方式,最开始是通过黄页或者分类信息网站,再后来通过搜索引擎。我们也应该有一个集群的信息注册中心,用来记录每个节点都提供什么服务。当我们需要调用这个服务的时候,先通过注册中心找到依赖的节点,然后再去调用。当某个节点出了问题,注册中心也应该能第一时间知道,并灵活的调配到其他节点。

当协作的链条过长的时候,我们往往看不清楚影响某个工作的关键节点。这时候,我们需要把完成这个工作的各个协作点串起来看。这就是服务的链路跟踪。通过观察整个链路的情况,我们可以分析出哪些是影响整个工作的关键节点,然后再去着重优化。

总结一下,后端集群的分工协作,可以帮助我们快速满足用户不断变化的需求。对集群的实时监控,根据监控情况的实时分工协作,可以大幅提升整个集群的服务效率和质量。其实这就是SOA治理的理念。明天,我们继续聊一下集群的存储职责。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,938评论 0 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 陪伴不一定是与人相伴,也可以是一棵树。夏天已在,看着将要来临的秋天,我又想起了每年丹桂飘香的日子。 ...
    执笔溢情阅读 369评论 0 0
  • 陈奕迅的歌中唱“夕阳无限好,只是已黄昏” 那时的夕阳真的是无限好呀,落日的时间总是刚刚好赶在晚修开始之前。高三...
    四季nie阅读 278评论 0 0