【问题标题】:Project structure and configuration for microservices微服务的项目结构和配置
【发布时间】:2017-12-26 00:56:35
【问题描述】:

请忽略英语语法。

出于学习目的,我想在 Spring 中创建一个微服务项目,我下载了一些示例项目,现在我有了一些非常基本的 微服务的想法。但我很困惑如何开始我自己的项目。 我想实现以下简单的用例。

在我的数据库中,我有三个表 产品, 产品库存 和订单,我想为每个表编写微服务。

产品微服务将具有用于 crud 操作的端点。 ProductStock 微服务将只有更新库存和检查库存端点。 订单微服务只有发布订单操作。

我创建了一个多模块 maven 项目,现在我有以下问题。

1:创建多模块maven项目是创建微服务项目的唯一途径。

2:我使用的是 Hibernate,所以我在哪个模块(微服务)中创建模型类。我需要每个模块(微服务)中的模型类。 (模型类是 Product、ProductStock 和 Order)。

3:我在哪里设置休眠配置。

【问题讨论】:

    标签: spring spring-boot microservices


    【解决方案1】:

    微服务架构不是一个简单的领域,所以我建议你先从一些理论开始。这里经常提到的一本书是Building Microservices,作者是 Sam Neuman。我强烈建议阅读它或至少阅读其中的一部分。这是理论部分。

    然后,对于一些动手经验,您可能想要克隆/分叉PiggyMetrics 项目。这是一个教育项目,但同时它包含相当多的模式和先进的东西。

    之后,您将能够自己回答自己的问题,尽管还有很多问题要问;-)

    祝你好运!

    【讨论】:

    • Thanx Lachezar Balev
    【解决方案2】:

    即使这个问题太宽泛,我也会尽力回答你的问题:

    1. 多模块项目并不是唯一的方法(我什至会说,对于不同的服务,这不是推荐的方法)。通常每个服务都有完全独立的 Maven 项目。

    2. 每个服务都必须有自己的数据模型和实体类。服务不应该共享任何实体,也不应该访问相同的数据库/模式。他们可以使用具有不同架构的同一数据库服务器。

    3. 在每个使用 Hibernate 的服务中。

    【讨论】:

    • 所以订单服务在确认订单之前需要与库存服务通信以检查产品可用性,因此库存服务将有自己的数据库,而订单服务将有不同的数据库?并且对于通信消息是最好的还是休息客户端?
    • 是的,服务需要相互通信以获取必要的信息。如果 HTTP oder 消息传递更好,则由您决定。这取决于您的要求、您的环境等。
    • 你能分享一些高级微服务项目存储库链接吗?
    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 2016-11-17
    • 2018-04-26
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多