在阅读和使用不同的概念(对或错)之后,出现了与模块化相关的问题。
我想以正确的方式在我的项目中实现微服务架构。
根据我所理解的,为了遵循这个架构,我的项目需要成为modular.As的一个例子,它将一个社交网络分解成不同的服务,如聊天API服务、web服务、移动服务API等等。
应该使用什么协议在微服务之间进行通信?通过REST协议进行通信可以吗?例如,通过JSON进行通信?还有,我如何确保API 1和API 2之间的通信安全?
现在讨论OOP和函数式编程。
我认为OOP是在有固定操作集的情况下使用的,而当您的代码演变为添加新的things.On时,函数编程是在有固定集合的情况下使用的,而随着代码的发展,您添加了更多的operations.Can --有人给我解释了这一点吗?
现在,总结这些问题并将其作为一个question.What来问是在遵循微服务体系结构时在项目的不同部分使用不同编程风格的最佳方法?
发布于 2018-03-21 13:19:07
相反的顺序:当然没有关于哪一种范式对微服务是“最佳”的通用答案。你必须了解你的用例,并为你自己做决定。如果没有大量的经验,这几乎是不可能正确的,即使有了它,大多数项目也会出错。
OOP和Functional:这两者其实并没有那么大的不同。两者都有封装、清晰分离等概念。关键的区别在于功能倾向于更严格的约束。你必须知道你的数学,以及如何用数学来分解问题。OOP基本上是给数学有困难的人编程的。我是说作为OOP开发人员。无论如何,两者都不是更合适的,它更多地取决于人民而不是问题本身。
microservices之间的通信:微服务之间通信的第一条规则是,您不应该在微服务之间进行通信。微服务应该是域功能完整的一部分。任何与其他系统的通信都应该是即插即用的类型。也就是说,您要么向系统发送消息,要么该系统向您发送消息,但不是两者都发送。这两种情况都意味着您的问题与其他服务不完全分离。
不管怎么说,准确的沟通方式其实并不重要。可以是HTTP,可以是消息代理,也可以是TCP/IP连接。不重要,而实际上应该取决于来文本身的要求。如果它支持大量的数据,它是否安全,等等。
摘要:最重要的是对功能进行清晰的分解(这样您就不需要请求响应通信)。所有其他的东西,你可以很容易地进行试验。
此外,如果你知道你为什么要做微服务,这也是有帮助的。想必您有一些非功能性的需求,比如团队、操作需求、性能/扩展需求等等。
最终,您是否做得对,取决于您是否能够实现有关体系结构的目标。没有真正的绝对衡量什么是“正确的方式”,除了你自己的目标。
发布于 2018-03-21 14:45:53
至于微服务,你需要注意彼此之间的不沟通。例如,您可以拥有身份验证微服务。您可能希望需要身份验证的其他微服务与auth微服务进行通信,而不实现它们自己的服务。您还希望通过网络连接/排队服务进行微服务通信,而不是像在数据库表中那样通过后台通道进行通信。有许多开源项目(openstack,jeager),如果你能从中得到灵感的话。
https://softwareengineering.stackexchange.com/questions/368044
复制相似问题