我需要提出新功能,即新的maven模块/服务/域对象。该模块依赖于其他模块并调用其服务。我需要将该呼叫从新服务解耦到现有服务。这里的去耦意味着模块在编译或运行时不会彼此了解。 例如: - 不是直接调用任何其他服务,而是
我确信应该有很多方法可以将呼叫解耦到现有服务。我能想到两种方式: -
微服务: - 因为这是一个非常小的功能(将来不需要扩展)使用相同的数据库。所以,我不相信这里
ESB: - 不确定只是解耦现有的服务电话,ESB是好方法吗?
Spring是否提供了解耦服务的方法?看起来Sprint事件已经关闭,事件发布和监听器得到通知。 但是春天的监听器不会返回输出。春天的其他任何事都可以帮到这里吗?
答案 0 :(得分:0)
您是否要求删除类路径依赖项,或者您是否应该选择ESB,即微服务。后者听起来像是一个你在业务中应该讨论的问题,而不是SO问题。
如果你只是想删除地狱maven创建的maven依赖,你可以做的是创建一个项目,其中包含定义旧服务的接口。您的新服务将使用这些接口,而不是直接依赖您的旧服务。当然,你必须要有一些总体项目,作为其中的所有内容,或者你需要使用OSI容器或类似的东西。但是,如果没有他们了解您的旧服务,您将能够继续开发新服务。
关于您想要使用的架构类型,这是一个高度争议和固执己见,没有明确的答案。但我要说的是,我不认为避免使用大型类路径是实现微服务或ESB的一个重要原因,但这仅仅是我的观点。如果这是你唯一真正的理由,那么我建议不要这样做。