微服务中应该使用多线程吗?

时间:2019-05-21 18:44:00

标签: java multithreading parallel-processing scalability 12factor

万一微服务具有可伸缩性,例如在ECS上作为ECS部署,是否应该在微服务的开发中使用并行编程?

如果是,那么一个实例消耗更多的资源而不是N个实例消耗相同的资源有什么好处?

并行编程如何匹配https://12factor.net/

P.S。更具体地说-我在概念上应该使用并行流而不是简单流吗?

2 个答案:

答案 0 :(得分:4)

基本上,您提供的链接也已经为您的问题提供了答案

  

这并不排除各个进程通过运行时VM内的线程处理它们自己的内部多路复用,或者排除诸如EventMachine,Twisted或Node.js之类的工具中的异步/事件模型。但是单个VM只能增长得如此之大(垂直规模),因此应用程序还必须能够跨越在多个物理机上运行的多个进程。

https://12factor.net/concurrency

答案 1 :(得分:0)

当然,可以想象一个微服务需要执行多个独立的查询以达到dB或其他微服务。由于查询是独立的,因此它们可以并行执行,因此整个查询时间最多是执行最慢查询的时间。