laravel项目软件架构:单体项目有必要升级到分布式项目吗?

一、现状

  • 目前有两个项目:A项目面向用户,B项目面向运营人员。并且都是单体项目共用一个数据。
  • 涉及到一些共同的业务,比如订单的创建和退款,用户积分的增减,用户课程的授权和取消。目前都是开发一份,拷贝一份,但是由于经常A项目优先级高修改后B项目不能及时修改,或者没修改到位造成脏数据。
  • 以后新增项目之后维护这些类库会重复且容易出问题。

二、目标

  • 解决重复cp代码,提升代码复用性。
  • 解决数据一致性问题。

三、技术方案

单个项目演变

laravel项目软件架构:单体项目有必要升级到分布式项目吗?

整体软件项目演变

laravel项目软件架构:单体项目有必要升级到分布式项目吗?

四、一些问题和疑惑🤔

  1. laravel项目怎么引入?
    • 封装sdk走composer。
    • 走git子工程模式,base.git 每次上线全部更新,业务项目上线只更新业务代码。
  2. 比如订单业务开始都是相通的,由于一些变化之后两边逻辑不一样了怎么处理,不同业务上线不同分支吗?
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

你这个其实可以把基础业务做成接口服务,其它内部调用 你现在是基础业务用的分层,那么这一层你可以单独做成插件,两边一样就一个版本,不一样就不同版本。可以把这部分单独一个仓库,实现插件的方式有很多,可以找找现成的。不建议用不同分支,还有就是逻辑不一样但是对外的方法调用一致

1年前 评论

架构设计在业务演变中,从单体架构到微服务架构有这样一个过程,技术随着业务转换,在PHP中有swoft微服务框架,其他语言也有,go、java对分布式的支持

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!