架构师是如何炼成的-阅读笔记1

三架马车是指微服务、消息队列和定时任务

服务有三个层次:

聚合业务服务:高层次的串起来整个流程的具有完整业务形态的业务服务。和基础业务服务不同的是,这里是在完整描述一方面的业务,这个业务往往是由各种基础业务拼装组合起来的。和不同外部合作方的不同合作形式,给用户提供的产品的不同服务形态,都决定了聚合业务服务会有业务流程上的差异化,如果把此类服务下放到基础业务服务中,那么基础业务服务会有各种if-else逻辑(根据产品类型、用户类型进行各种if-else),随着业务的合作不合作,需求变动,基础业务服务会腐化得很厉害,为了避免这个情况,我们把变动的多的聚合业务逻辑放到独立的业务服务中。一般而言,聚合业务服务因为代表了独立的业务流程,它们之间是不会进行相互调用的,但是它们一定会调用大量的各类基础业务服务。在第一点里说的标有蓝色字体的a~d这些服务都是此类服务。这个层次的服务的业务逻辑更多是在表达业务流程的复杂性和差异性,不会涉及到具体怎么处理账户信息、账务信息、用户信息,不会涉及到怎么处理具体的投资人和借款人的交易。比如对于预约这类业务形态,它关注的是先要预约资产,然后再由系统进行自动投资,底层完全依赖于投资人交易服务来做整个交易的过程。

基础业务服务:某一个领域业务相关的服务。此类服务之间是允许相互调用的,比如投资人交易服务和借款人交易服务免不了需要和用户服务、资产服务、账户账务服务进行通讯做相关的用户信息查询、标的信息查询、记账等业务操作。之所以投资人交易服务和借款人交易服务定位为基础业务服务是因为,它们处理的是还是某一个具体方面的业务,并不是全流程,在这个抽象层次上,业务不是那么容易变动的,对于复杂的各种业务形态(比如预约交易、自动复投交易、等额本息交易)会在这些服务之上形成聚合业务服务。在第一点里说的标有绿色字体的e~k这些服务都是此类服务。在这个层次的服务虽然拥有大量的业务逻辑,但是其实已经享受到了很大层度的公共基础服务的重用了,而且和自己业务耦合较弱的额外逻辑往往没有在本服务中堆积,由更多专职的基础业务服务来承担了这部分逻辑。

公共基础服务:负责某一个方面的基础业务(没有什么领域业务逻辑在里面),可以是自治的处理某一个方面的基础业务,也可以和外部通讯实现某一个方面的功能,服务之间是不会相互调用的,但是会被聚合业务服务和基础业务服务调用。在第一点里说的标有橙色字体的l~n这些服务都是此类服务。如果以后和外部的合作有变动,因为我们已经定义了对外的服务契约,可以轻易替换这个服务来更换合作的第三方,系统其余的地方几乎不需要修改。所有的三方对接都建议独立出公共基础服务,如果同一个业务对接多个三方渠道,比如推送对接了极光和个推,甚至公共基础服务还可以由一个抽象聚合的推送服务,下面再路由到具体的极光推送和个推推送服务。

posted @ 2021-03-15 17:28  大米粒o  阅读(28)  评论(0编辑  收藏  举报