可在分布式与单体环境自由组装部署的架构实现方法及部署方法技术

技术编号:24205225 阅读:16 留言:0更新日期:2020-05-20 14:23
本发明专利技术提出一种可在分布式与单体环境自由组装部署的架构实现方法及部署方法,包括以下步骤:步骤S1:抽取公共接口,包括:步骤S11:获取当前登录人接口;步骤S12:全局统一异常处理;步骤S13:生成Http请求日志收集工具;步骤S2:隔离业务功能,包括:步骤S21:对业务领域边界进行划分;步骤S22:对每一个业务领域生成API与Server实现;步骤S23:业务边界间的交互,通过API或观察者模式进行调用;步骤S3:生成分布式部署插件。其通过合理的架构与领域划分,减少其中单体架构的重复开发工作,从而降低了成本投入。

Architecture implementation method and deployment method that can be freely assembled and deployed in distributed and single environment

【技术实现步骤摘要】
可在分布式与单体环境自由组装部署的架构实现方法及部署方法
本专利技术涉及软件部署和架构领域,尤其涉及一种可在分布式与单体环境自由组装部署的架构实现方法及部署方法装置。
技术介绍
软件架构可分为单体架构与分布式架构,技术架构描述如下:1、单体架构在单体架构中,可将所有的业务功能部署成一个服务,适用于并发量少,维护投入低的项目。2、分布式架构在分布式架构下,将业务功能拆分部署在多个应用服务器,通过横向扩容的方式提供更高的并发量,但在一定程度上增加了维护成本的投入。当面临业务需求相同的情况下,需投入开发两套代码,一方面耗费人力物力,另一方还需管理与维护,则无形中增加了投入成本。
技术实现思路
为了解决现有技术存在的缺陷和不足的问题,本专利技术提供了一种可实现业务系统在分布式与单体环境自由组装部署的架构设计。其具体采用以下技术方案:一种可在分布式与单体环境自由组装部署的架构实现方法,其特征在于,包括以下步骤:步骤S1:抽取公共接口,包括:步骤S11:获取当前登录人接口;步骤S12:全局统一异常处理;步骤S13:生成Http请求日志收集工具;步骤S2:隔离业务功能,包括:步骤S21:对业务领域边界进行划分;步骤S22:对每一个业务领域生成API与Server实现;步骤S23:业务边界间的交互,通过API或观察者模式进行调用;步骤S3:生成分布式部署插件,包括:步骤S31:生成分布式架构下当前登录人信息传递插件,包括:RPC注入当前登录人;RPC解析当前登录人;基于RPC模式实现获取当前登录人接口;步骤S32:生成单体观察者模式与分布式观察者模式互相转换插件,包括:将单体观察者发布的消息转换为分布式消息发送;接收分布式消息转换成单体观察者消息并发布。优选地,本专利技术方案在SpringBoot和SpringCloud下实现。优选地,步骤S1:抽取公共接口,具体包括:步骤S11:提供获取当前登录人接口:包含获取用户Id、获取用户信息、序列化与反序列化用户信息的功能;步骤S12:全局统一异常处理:步骤S121:定义异常基类,所有业务异常全部继承自该基类并初始化必填参数;步骤S122:定义异常基类的捕获与处理类,在业务异常无针对性处理的情况下全部采用异常基类处理,提供统一的异常返回值;步骤S13:生成Http请求日志收集工具:步骤S131:使用拦截器拦截Http请求,将请求参数、Ip、时间、响应结果的数据收集并通过领域事件进行发布;步骤S132:定义领域事件监听器,接收Http日志数据并进行业务处理。优选地,步骤S2:隔离业务功能,具体包括:步骤S21:基于DDD方法,对业务领域进行拆分;步骤S22:基于FeignClient注解定义API接口文档,利用Spring的自动装配与依赖注入功能实现分布式与单体部署时的对象控制反转;步骤S23:使用Spring的事件模型实现领域事件功能。优选地,步骤S3:生成分布式部署插件,具体包括:步骤S31:生成分布式架构下当前登录人信息传递插件,包括:步骤S311:在网关模块解析session之后将用户信息放入向下传递的Http请求头中;步骤S312:在业务模块中,通过用户信息解析拦截器,从请求头中解析用户信息并实现获取当前登录人接口,利用Spring的依赖注入功能将当前登录人接口的实现注入到业务调用处,从而获取正确的用户信息;步骤S313:判断是否存在下游模块,若还存在下游模块,重新将用户信息放入向下传递的Http请求头中,并返回步骤步骤S312;步骤S32:生成单体观察者模式与分布式观察者模式互相转换插件,包括:步骤S321:单体模式的领域事件通过Spring的ApplicationEvent实现;步骤S322:分布式环境下,先监听领域事件,将其通过MQ的方式发送到MQ中间件中,再消费MQ转换成ApplicationEvent发布,从而被领域事件消费者消费。优选地,在部署方法方面:在单体部署的业务场景中,将所有的业务组件打包成一个SpringBoot的启动jar包,直接运行该启动jar包即完成单体部署。在分布式部署的业务场景中,按照业务服务的划分,选择业务模块,加入通用的分布式部署插件一起打包成一个SpringBoot的启动jar包,得到一个微服务;将所有的业务模块都打包成微服务jar包后,在服务器启动微服务jar包即完成分布式方式的部署。在现有的开发过程中,分布式架构与单体架构是两套程序,从而带来了高昂的开发与维护成本。本专利技术可以解决这一痛点,通过合理的架构与领域划分,减少其中单体架构的重复开发工作,从而降低了成本投入。本专利技术及其优选方案主要通过在SpringBoot与SpringCloud技术背景下,基于DDD设计思想,合理地抽象与分解业务边界,提供业务组件与通用组件,以低成本的方式组装系统,从而在分布式与单体之间自由组装。附图说明下面结合附图和具体实施方式对本专利技术进一步详细的说明:图1为本专利技术实施例单体部署架构示意图;图2为本专利技术实施例单体部署打包过程示意图;图3为本专利技术实施例分布式部署架构示意图;图4为本专利技术实施例分布式部署打包过程示意图。具体实施方式为让本专利的特征和优点能更明显易懂,下文特举实施例,并配合附图,作详细说明如下:如图1、图3所示,本实施例在SpringBoot和SpringCloud下实现,具体包括以下步骤:步骤S1:抽取公共接口,具体包括:步骤S11:提供获取当前登录人接口:包含获取用户Id、获取用户信息、序列化与反序列化用户信息等功能;步骤S12:全局统一异常处理:步骤S121:定义异常基类,所有业务异常全部继承自该基类并初始化必填参数;步骤S122:定义异常基类的捕获与处理类,在业务异常无针对性处理的情况下全部采用异常基类处理,提供统一的异常返回值;步骤S13:生成Http请求日志收集工具:步骤S131:使用拦截器拦截Http请求,将请求参数、Ip、时间、响应结果等数据收集并通过领域事件进行发布;步骤S132:定义领域事件监听器,接收Http日志数据并进行业务处理。步骤S2:隔离业务功能,具体包括:步骤S21:基于DDD(领域驱动设计Domain-DrivenDesign)方法,对业务领域进行拆分;步骤S22:基于FeignClient注解定义API接口文档,利用Spring的自动装配与依赖注入功能实现分布式与单体部署时的对象控制反转;步骤S23:使用Spring的事件模型实现领域事件功能。步骤S3:生成分布式部署插件,具体包括:<本文档来自技高网...

【技术保护点】
1.一种可在分布式与单体环境自由组装部署的架构实现方法,其特征在于,包括以下步骤:/n步骤S1:抽取公共接口,包括:/n步骤S11:获取当前登录人接口;/n步骤S12:全局统一异常处理;/n步骤S13:生成Http请求日志收集工具;/n步骤S2:隔离业务功能,包括:/n步骤S21:对业务领域边界进行划分;/n步骤S22:对每一个业务领域生成API与Server实现;/n步骤S23:业务边界间的交互,通过API或观察者模式进行调用;/n步骤S3:生成分布式部署插件,包括:/n步骤S31:生成分布式架构下当前登录人信息传递插件,包括:/nRPC注入当前登录人;RPC解析当前登录人;基于RPC模式实现获取当前登录人接口;/n步骤S32:生成单体观察者模式与分布式观察者模式互相转换插件,包括:/n将单体观察者发布的消息转换为分布式消息发送;接收分布式消息转换成单体观察者消息并发布。/n

【技术特征摘要】
1.一种可在分布式与单体环境自由组装部署的架构实现方法,其特征在于,包括以下步骤:
步骤S1:抽取公共接口,包括:
步骤S11:获取当前登录人接口;
步骤S12:全局统一异常处理;
步骤S13:生成Http请求日志收集工具;
步骤S2:隔离业务功能,包括:
步骤S21:对业务领域边界进行划分;
步骤S22:对每一个业务领域生成API与Server实现;
步骤S23:业务边界间的交互,通过API或观察者模式进行调用;
步骤S3:生成分布式部署插件,包括:
步骤S31:生成分布式架构下当前登录人信息传递插件,包括:
RPC注入当前登录人;RPC解析当前登录人;基于RPC模式实现获取当前登录人接口;
步骤S32:生成单体观察者模式与分布式观察者模式互相转换插件,包括:
将单体观察者发布的消息转换为分布式消息发送;接收分布式消息转换成单体观察者消息并发布。


2.根据权利要求1所述可在分布式与单体环境自由组装部署的架构实现方法,其特征在于:在SpringBoot和SpringCloud下实现。


3.根据权利要求2所述可在分布式与单体环境自由组装部署的架构实现方法,其特征在于:步骤S1:抽取公共接口,具体包括:
步骤S11:提供获取当前登录人接口:
包含获取用户Id、获取用户信息、序列化与反序列化用户信息的功能;
步骤S12:全局统一异常处理:
步骤S121:定义异常基类,所有业务异常全部继承自该基类并初始化必填参数;
步骤S122:定义异常基类的捕获与处理类,在业务异常无针对性处理的情况下全部采用异常基类处理,提供统一的异常返回值;
步骤S13:生成Http请求日志收集工具:
步骤S131:使用拦截器拦截Http请求,将请求参数、Ip、时间、响应结果的数据收集并通过领域事件进行发布;
步骤S132:定义领域事件监听器,接收Http日志数据并进行业务处理。


4.根据权利要求3所述可在分布式与单体环境自由组装部署的架构实现方法,其特征在于:步骤S2:隔离业务功能,具体包...

【专利技术属性】
技术研发人员:肖金华吴华添姚文凯林友钦
申请(专利权)人:厦门靠谱云股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1