找回密码
 立即注册
科技快报网 首页 科技快报 业界资讯 查看内容
揽获多项产品技术创新大奖!TCL实业携顶尖科技闪耀CES 2026技嘉于 CES 2026 发布CQDIMM 技术 实现 256GB 满载 DDR5-7200 极限性能伊利秉持潘刚的“社会价值领先”理念,推动可持续生态共建邦彦云PC赋能AI标注新变革:安全、效率、协同三重突破引领行业升级央视《匠心中国》聚焦易视界:十八载坚守诠释视保匠心合合信息Chaterm入选沙利文《2025年中国生成式AI行业最佳应用实践》灵犀智能CES 2026参展纪实 登顶AI陪伴产品榜单星空源储首次亮相 CES 探索AI驱动的全场景智慧能源新生态新年有小艺,“艺”马当先接鸿运全球AI新品京东首发 三天超长CES探展直播让3C数码新品触手可及腾讯音乐(TME)年度盛典圆满收官:用数据说话,全面呈现华语乐坛多元生态香港空运部成立运营,全球化网络布局再落关键一子成者AI会议机器人等系列新品打响“AI会议时代”系统战从科技创新至产业创新:从光谱技术的全景比较,看“中国原创”的力量锚定欧美增长极,未岚大陆以全场景方案展现中国智造品牌顶尖科技实力成年人直播打赏有无“后悔药”?央视报道法院判例:驳回退款诉求P300全球首发:普宙科技在CES发布全新“城市低空智能体”东软集团获得华为“钻石经销商”认证德适生物将赴港上市,染色体核型分析领域市占率第一歌尔亮相CES 2026:声光电技术革新助力智能交互体验升级

黑少微服务商店:微服务架构设计基础模型

2019-01-15 10:37:00 来自: 互联网

       背景

  对于现在的黑少微服务(www.httpshop.com)架构的应用来说,对大量并发的及时响应是一项制胜能力。据用户行为分析平台统计,随行付的某一款APP产品每日请求就达到上千万次用户请求、加解密服务3000万次/日等等。这些微服务每时每刻在处理如此高强度的请求,对数据层的应对能力要求极高。如果我们把对速度的需求放在复杂的分布式数据架构背景下,是很难想象如何让应用应对如此巨大的数据访问量的。但很幸运,我们有方法做到。即立方体模型。

  立方体模型

  可扩展的分布式系统架构设计有一个朴素的理念,就是:通过加机器就可以解决容量和可用性的问题。

  对于一个迅速增长的应用而言,容量和性能是首当其冲要面临的问题。但随着时间的向前推移、应用规模不断的快速增长,除了面对性能与容量的问题外,还需要解决功能与模块数量上增长带来的系统复杂性问题、业务变化带来的差异化服务问题等。而多数情况下应用设计之初出于诸多因素的考量,并没有充分考虑或在设计之初就将此类问题提上日程,导致系统的重构成为常态,从而影响业务交付能力。对此,「架构即未来」一书中提出了更加系统的可扩展模型,可扩展模型是一个富有启发性的方法,描述了微服务三个维度的扩展方法,可以通过它来了解微服务架构的扩展维度。

  负载均衡

  负载均衡是将用户的访问请求通过负载均衡器,均衡分配到由各个「复制品」组成的集群中去。当某个「复制品」出现故障,也能轻易地将相应「工作」转移给其它的复制品来「代为完成」。常用的硬件负载有F5、A10,软件负载Nginx。

  这中间涉及到的技术点包括了反向代理、DNS轮询、哈希负载均衡算法(一致性哈希)、动态节点负载均衡(如按CPU,I/O)等。它的难点在于要求集群中的「复制品」是不共享任何内容,也就是我们常说的无状态。

  数据复制

  数据复制是指在数据存储层进行绝对平等地数据迁移,用于解决存储层I/O瓶颈以及可用性上的问题。有多个「复制品」存储,使得每个「复制品」提供无差异的数据服务,我们需要在「复制品」之间同步或异步的复制数据。

  数据复制的方式包括了主从同步(读写分离)、双主同步等。因为数据存储天生就是有状态的,数据复制的难点在于如何保证一致性。为保证一致性,衍生了很多复杂的技术和中间件,比如Paxos选举算法、随行付Porter数据同步中间件等。

  识别热点服务

  多数情况下我们的应用中都会存在热点模块,我们可以理解为越基础的模块越容易成为热点模块。热点模块更加容易成为整个平台的瓶颈点,所以热点模块要尽早的采取扩展措施,扩展措施一般都采用X轴扩展方式。

  前后端分离

  其实在我们开发过程中,经常会给pc端、mobile、app端各自研发一套前端。其实对于这三端来说,大部分端业务逻辑是一样的。唯一区别就是交互展现逻辑不同。如果controller层在后端手里,后端为了这些不同端页面展示逻辑,分别维护这些controller,徒增和前端沟通端成本、在扩展性上面也不能达到很方便的扩展。前后端分离的好处在于:提升适配性、提升响应速度、提升性能、分离化部署。

  在分布式服务设计领域,一个烟筒状就是满足某个分区所有业务操作的自包含闭环。如上面我们说到的Y轴扩展的微服务架构,客户端对服务端节点的选择一般是随机的,但是,如果在此加上Z轴扩展,那服务节点的选择将不再是随机的了,而是每个烟筒状自成一体。

  数据分区

  为了性能及数据安全考虑,我们将一个完整的数据集按一定的维度划分出不同的子集。 一个分区(Sharding),就是是整体数据集的一个子集。比如用尾号来划分用户,那同样尾号的那部分用户就可以认为是一个分区。数据分区为一般包括以下几种数据划分的方式:数据类型(如,业务类型)、数据范围(如,时间段、用户)、数据热度(如,用户活跃度)、按读写分(如,描述,库存)

  当然,数据分区也是有代价的,它将增加数据运维的难度,关联搜索的复杂度增加等。

  一个扩展性良好的系统,会充分考虑三个维度上的可扩展性,熟练运用三个维度的扩展性,使得系统性能改善上有更多的方向,但在系统性能优化上,代码层面、框架层面、设计层面也是更加的至关重要。

  免责声明:本网站内容由网友自行在页面发布,上传者应自行负责所上传内容涉及的法律责任,本网站对内容真实性、版权等概不负责,亦不承担任何法律责任。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

发布者:科技快报网

相关阅读

微信公众号
意见反馈 科技快报网微信公众号