拥有单独的店面和后端或单个项目的项目更好



我正在运行使用Spring和Hibernate在Java建造的电子商务网站。如果我必须简要描述当前的体系结构,那就是这样:

  1. 两个项目 - 存储前 admin
  2. 店面项目保存DAO,模型,服务,控制器和显示网站店面视图的视图,并保留应用程序的API
  3. 管理员项目保留DAO,模型,服务,控制器和显示用于管理此电子商务商店的后端/管理员接口的视图。
  4. StoreFront and Admin既可以独立地与Common MySQL数据库进行独立交谈,并且每当这两个项目之间需要任何通信时,他们都会使用REST API进行。
  5. 我遵循此体系结构独立开发两个项目,保持光线并独立部署。

,但我不确定这是做事的正确方法。我经常遇到的主要问题是:

  1. 它通常会导致代码重复,主要是在模型中,因为这是两个项目都有的,但其中大多数属性都是常见的。
  2. 如果需要进行任何数据库的任何更改,那么我必须确保在两个项目中都正确进行这些更改,因为两者都在进行独立的数据库呼叫。

请建议什么是处理和架构此项目的最佳方法。网站统计信息是:

  1. 大约100万个产品
  2. 每月交通约100万
  3. 每天的订单约1000

,我们正在寻找未来9个月的交通和订单增长。因此,请建议牢记未来的可伸缩性。

共享的共同模型:,有关在可能会生长&容易进行频繁更改,您可以使该模型在每个项目中具有其POM依赖性的单独项目。更好的是,使用JSON Schema定义保持该项目,并在构建过程中使用Maven插件(假设您使用Maven)将其转换为Pojos,并添加到项目类Path。请参考JSonschema2pojo。

网站统计/流量增长:为此,请考虑添加多个节点的Web/Application Server负载平衡群集(如果尚未完成)。这将有助于高度可用的应用程序并处理繁忙的流量。

可能还有其他更好的解决方案,但是这些观点值得考虑。我对您的其他观点有一些想法,但我觉得与其他对建筑有更好了解的其他人可能会有更好的解决方案。

希望这些想法会有所帮助。

最新更新