[从0到1搭建ABP微服务] - 文章目录

简介

《Abp vNext微服务实践》系列文章中笔者逐一介绍了ABP微服务架构实践应用的过程,但是由于微服务架构过于复杂且配置十分繁琐,读者在亲自体验中往往不太顺利。在本章系列中笔者将基于ABP微服务架构重新整理构建更轻量实用的微服务,此外我还会会搭配多种微服务组合方式以提高大家对ABP微服务的理解,构建过程中我会将代码发布至GitHub。

本章系列只是将ABP微服务架构进行重新组合搭建,并不会修改ABP任何应用模块代码,也不会违背ABP设计原则,重构的目的只是为了让大家更好的理解微服务拆分,重构后微服务会更加轻量化可以开箱即用。

架构模式

ABP架构是基于DDD设计,基于模块化实现,所以使用ABP搭建微服务是十分灵活的,目前我会介绍两种架构模式。这两种模式均是基于ABP设计原理,大家可以根据喜好选择一种架构尝试,也可以根据本系列文章的分析和自己理解自主搭建。

基于ABP应用模块的服务和若干个基于ABP的微服务

这种模式实际上和ABP微服务架构是一致的,在这种模式中我会对APB应用层逐一构建成微服务发布,并且这些微服务将有独立的解决方案。架构图如下:

架构分析
  • 网关服务:基于Ocelot提供所有微服务API接口聚合、限流、熔断等功能,此外网关还提供权限聚合服务。
  • 授权服务:为所有客户端(client)提供身份授权,给所有微服务包括网关提供身份认证。
  • ABP用户服务:实现ABP用户模块功能。
  • ABP租户服务:实现ABP租户模块功能。
  • 其他微服务:实现各自业务。

基于ABP基础服务和若干个基于ABP的微服务

这种模式是将ABP所有应用(用户、租户等)聚集在ABP基础服务中提供统一的租户、用户、权限管理。

架构分析
  • 网关服务:基于Ocelot提供聚合所有微服务API接口、限流、熔断等功能,不提供权限聚合服务。
  • ABP基础服务:实现ABP租户、用户、权限等ABP应用模块功能,此外基础服务还提供权限聚合功能。
  • 授权服务、其他微服务:同上。

服务发现、服务治理

ABP微服务架构中直接使用网关配置文件直接微服务地址,所以实际上ABP微服务是不需要发现服务的。可能大家会觉得配置服务地址的方式不太灵活,但是对于初试微服务者来说可以大大避坑,其实个人觉得服务发现也并不太靠谱。
服务治理大家可以根据需要在微服务中集成性能监测中间件,也可以尝试使用k8s进行管理。

系列文章

在本系列中,我会以更直接的方式呈现ABP微服务搭建全过程,并且会及时发布代码,以下是系列文章完成的目录。

TODO:

ABP微服务实践全代码很快会整理完成,后面会对服务进行逐一发布和讲解,以下是系列文章的目标预告。

模式一

  • 《[从0到1搭建ABP微服务] - 搭建授权服务》
  • 《[从0到1搭建ABP微服务] - 搭建ABP用户管理服务》
  • 《[从0到1搭建ABP微服务] - 搭建ABP租户管理服务》
  • 《[从0到1搭建ABP微服务] - 搭建微服务A》
  • 《[从0到1搭建ABP微服务] - 搭建网关服务》

模式二

  • 《[从0到1搭建ABP微服务] - 搭建授权服务》
  • 《[从0到1搭建ABP微服务] - 搭建ABP基础服务》
  • 《[从0到1搭建ABP微服务] - 搭建微服务A》
  • 《[从0到1搭建ABP微服务] - 搭建网关服务》

最后

本系列介绍ABP微服务搭建过程主要是以方便大家更加简单的尝试ABP微服务为目标,在系列之外我会总结许多数据库、架构、大数据处理和web开发等技术总结,喜欢的小伙伴推荐关注一波吧~

猜你喜欢

转载自www.cnblogs.com/william-xu/p/12537155.html