+-
节点的微服务架构是否会降低效率并增加响应时间?是否有任何解决方案或我的理解是错误的?

最近,我使用node构建了一个涉及很多模块的数据处理系统,因此我计划采用微服务架构并使用微服务框架Seneca并使用tcp进行通信。

Seneca微服务主要负责与数据库和数据处理计算进行通信(不费时)

但是,我通过ab测试发现Seneca微服务的效率远低于原始模块。在某些情况下,平均响应时间是以前的1.5倍。我认为这并不难理解:Seneca微服务将产生额外的通信开销和一些其他开销。

我现在有点困惑。如果我使用微服务架构,我可以解决大型系统中模块之间相互参考的问题。它便于开发。但它会降低效率,我觉得它不值得蜡烛。

我不知道我对微服务的理解是错误的,还是我使用它的方式有问题。我不想看到我使用微服务但它会降低效率。所以,如果你有一些想法,请告诉我,非常感谢你。

附:我暂时认为没有必要为这个问题提供示例代码,只是想听听你的意见。谢谢。

4
投票

一般而言,项目的成功不取决于应用程序组件的通信效率,而取决于应用程序适应新业务和技术要求的速度。这在大型应用程序中更容易查看,具有大量代码库和可能的许多团队。巨大的巨石更难改变。

微服务通过在可以单独发展,不同技术/框架以及不同团队和不同速度的组件中拆分整体组件来提供帮助。

微服务还可以通过使用正确的工具(编程语言,框架)来提高计算效率。例如,JavaScript擅长异步作业,而在3D渲染或人脸检测方面很糟糕。或者,当发明一种最适合某项工作的新编程语言时,可以在微服务中使用它而无需其他微服务来了解或关注。