可以通过微服务使用不同的语言构建项目吗?例如,我想要构建一个酒店管理系统,我可以在不同的模块中同时使用asp.net核心和nodejs吗?假设我想使用nodejs获取数据,并使用.net核心发布数据。提亚
发布于 2021-01-26 00:33:04
可以,您可以为不同的微服务选择不同的语言/工具/技术。但更好的选择是选择团队完全熟悉的一种语言。如果你选择了另一种语言,那么你应该有具体的理由。例如,在我的一个项目中,大多数服务都是用Node JS编写的。我们用Go语言编写了一个服务,因为我们需要性能。
发布于 2021-01-31 03:15:57
是的,对不同的微服务使用不同的语言是可能的。例如,您可以在C#( Java )中编写微服务-A,在.NET中编写微服务-B,在NodeJS中编写微服务-C,等等(您可以在此处从许多语言中选择)。但通常不建议这样做。如果你没有很好的理由,至少不会。
微服务架构的优势
事实上,这是微服务的好处之一,能够为每个微服务使用不同的语言、技术、库、数据库和其他组件。但是,你应该注意不要做的太多,并且只在需要的时候做。在现实中,公司和他们的开发团队坚持使用一两个技术堆栈,并使用它开发所有的服务。
选择不同语言和技术的推理
在这样做之前,你应该考虑以下几件事:
结论
我的建议是选择一种技术堆栈/语言,并用该语言开发所有或几乎所有的微服务。数据库、缓存和FE框架/库也是如此。只有当你有很强的理由去选择不同的技术/语言,并且你的主要语言/堆栈不能很好地执行或适应时,才能选择不同的技术/语言。就像我在上面的Elastic Search示例中解释的那样。选择哪种语言取决于许多不同的因素。
发布于 2021-01-25 13:16:26
是。然后,您需要某种形式的进程间通信(IPC)。每种语言都存在于自己的过程中,无论操作系统的风格是什么,也不管您使用的是什么语言。通常进程实际上是通过API进行通信的。还有其他方法可以安排IPC,通过数据库、内存(RAM)、信号,甚至是普通文件(在某些共享介质上)。
https://stackoverflow.com/questions/65879328
复制相似问题