如果微服务具有可扩展性,例如部署为 AWS 上的 ECS,是否应该在微服务开发中使用并行编程?
如果是,一个实例消耗更多资源与 N 个实例消耗相同资源相比有什么好处?
并行编程如何搭配https://12factor.net/
附注更具体地说 - 我应该在概念上使用并行流而不是简单流吗?
当手头的任务是互斥的并且可以并行完成时,必须使用并行流。然而,并行编程会带来使用更多资源的开销。因此,根据手头的任务,您需要权衡做出最适合您的决定。
晚了几年,但答案是肯定的,而且实际上它的使用频率比表面上看到的要多。 Java 世界中的微服务主要是用 Spring 等框架编写的,框架本身依赖于多线程。您可能会感到困惑的是,微服务应该是无状态的,以便可扩展,但这并不能阻止我们使用线程。例如,向其他微服务发送请求通常总是在另一个线程上完成(不需要每个请求) 反应式编程是微服务中常用的一个例子