屡试不爽的互联网架构三大马车_亚博全站APP登录官网,亚博全站官网登录平台,亚博全站最新版app下载
发布时间:2023-04-09 来源:平台首页最新版下载 nbsp; 浏览:22926次作者:朱晔泉源:https://www.cnblogs.com/lovecindywang/p/9617542.html这里所说的三架马车是指微服务、消息行列和定时任务。如下图所示,这里是一个三驾马车配合驱动的一个立体的互联网项目的架构。不管项目是大是小,这个架构模板的形态一旦定型了之后就不太会变,区别只是我们有更多的服务有更庞大的挪用,更庞大的消息流转,更多的Job,整个架构整体是可扩展的,而且不会变形,这个架构可以在很长的一段时间内无需有大的调整。
PS:下载完整版PDF,后台回复:马车图上画了虚线框的都代表这个模块或项目是不包罗太多业务逻辑的,纯粹是一层皮(会挪用服务可是不会触碰数据库)。玄色线的箭头代表依赖关系,绿色和红色箭头划分是MQ的发送和订阅消息流的偏向。详细在后文都市进一步详细说明。
微服务微服务并不是一个很新的观点,在10年前的时候我就开始实践这个架构气势派头,在四个公司的项目中全面实现了微服务,越来越坚信这是很是适合互联网项目的一个架构气势派头。不是说我们的服务一定要跨物理机械举行远程挪用,而是我们通过举行有意的设计让我们的业务在一开始的时候就根据领域举行支解,这能让我们对业务有更充实的明白,能让我们在之后的迭代中轻易在差别的业务模块上举行耕作,能让我们的项目开发越来越轻松,轻松泉源于几个方面:1. 如果我们能举行微服务化,那么我们一定事先经由比力完善的产物需求讨论和领域划分,每一个服务经心设计自己领域内的表结构,这是一个很重要的设计历程,也决议了整个技术架构和产物架构是匹配的,对于All-In-One的架构往往会省略这一历程,需求到那里代码写到那里。2. 我们对服务的划分和职责的定位如果是清晰的,对于新的需求,我们就能知道需要在那里改怎么样的代码,没有复制粘贴的存在少了许多坑。3. 我们大多数的业务逻辑已经开发完毕,直接重用即可,我们的新业务只是现有逻辑的聚合。
在PRD评审后,开发获得的结论是只需要组合划分挪用ABC三个服务的XYZ方法,然后在C服务中修改一下Z方法增加一个分支逻辑,就可以构建起新的逻辑,这种爽快的感受难以想象。4. 在性能存在显着瓶颈的时候,我们可以针对性地对某些服务增加更多机械举行扩容,而且因为服务的划分,我们更清楚系统的瓶颈所在,从10000行代码定位到一行性能存在问题的代码是比力难题的,可是如果这10000行代码已经是由10个服务组成的,那么先定位到某个服务存在性能问题然后再针对这个服务举行分析一下子降低了定位问题的庞大度。5. 如果业务有比力大的变更需要下线,那么我们可以肯定的是底层的公共服务是不会淘汰的,下线对应业务的聚合业务服务停掉流量入口,然后下线相关涉及到的基础服务举行部门接口即可。
如果拥有完善的服务治理平台,整个操作甚至无需改动代码。这里也要求我们做到几个方面的原则:1. 服务的粒度划分需要把控好。
我的习惯是先根据领域来分不会错,随着项目的希望逐步举行更细粒度的拆分。好比对于互联网金融P2P业务,一开始可以分为:a 三方互助服务PartnerInvestService:对接互助的三方理财平台的流量b 普通投资服务NormalInvestService:最普通形态的资产的主流程c 预约投资产物服务ReserveInvestService:需要预约投资的资产的主流程d 周期性计划产物服务AutoInvestService:会定期自动复投的理产业品主流程e 投资人生意业务服务TradeService:专门卖力处置惩罚投资人的生意业务行为,好比投资f 乞贷人生意业务服务LoanService:专门卖力处置惩罚乞贷人的生意业务行为,好比还款g 用户服务UserService:处置惩罚用户的注册登录等h 资产服务ProjectService:处置惩罚资产和标的相关i 账户账务服务AccountService:处置惩罚用户的账户各个子账户和账务记载j 营销运动服务ActivityService:处置惩罚种种运动、用户的积分体系k 会员体系服务VipService:处置惩罚用户的会员发展体系l 银行存管服务BankService:专门用于对接银行存管系统m 电子签章服务DigSignService:专门用于对接三方数字签章系统n 消息推送服务MessageService:专门用于对接三方短信通道和推送SDK2. 服务一定是立体的,不是在一个条理上的,如上图,我们的服务有三个条理: 聚合业务服务:高条理的串起来整个流程的具有完整业务形态的业务服务。
和基础业务服务差别的是,这里是在完整形貌一方面的业务,这个业务往往是由种种基础业务拼装组合起来的。和差别外部互助方的差别互助形式,给用户提供的产物的差别服务形态,都决议了聚合业务服务会有业务流程上的差异化,如果把此类服务下放到基础业务服务中,那么基础业务服务会有种种if-else逻辑(凭据产物类型、用户类型举行种种if-else),随着业务的互助不互助,需求变更,基础业务服务会腐蚀得很厉害,为了制止这个情况,我们把变更的多的聚合业务逻辑放到独立的业务服务中。一般而言,聚合业务服务因为代表了独立的业务流程,它们之间是不会举行相互挪用的,可是它们一定会挪用大量的各种基础业务服务。
在第一点里说的标有蓝色字体的a~d这些服务都是此类服务。这个条理的服务的业务逻辑更多是在表达业务流程的庞大性和差异性,不会涉及到详细怎么处置惩罚账户信息、账务信息、用户信息,不会涉及到怎么处置惩罚详细的投资人。
本文关键词:亚博全站APP登录官网,亚博全站官网登录平台,亚博全站最新版app下载
本文来源:亚博全站APP登录官网,亚博全站官网登录平台,亚博全站最新版app下载-www.jnslshwx.com