单片(VS)微服务==>线程(vs)进程

我有一个单一的进程有5个线程的单片应用程序。 每个线程完成特定的任务。 想把这个应用程序转移到使用docker的微服务。 如果我看看架构,每个工作线程将成为一个docker进程。 因此,在我看来,单核与微服务在某种程度上变得更像是Thread vs Process讨论。

拥有庞然大物的原始思想是有性能的线程和共享相同的内存。 现在使用微服务拱,我被推到一个stream程模型,可能不适合从性能的angular度来看。

我有点困扰如何解决这个问题。

你在这里错过的是微服务不适合世界上任何软件系统! 在做任何事情之前,考虑将目前的整体系统迁移到微服务的驱动程序。 您是否在寻求高可用性和可扩展性? 你想自由地编写不同的编程语言的每个线程? 你的系统是复杂的,不能以单一的风格理解吗? 最后,你准备好支付微服务的风格吗?

微服务给系统带来很多复杂性,并且由于服务的恶劣性,可能会导致性能损失,从而提高可伸缩性。 如果性能是一个重要的考虑因素,那么这个系统并不是那么大,你对上面大多数问题的回答是“不”,我强烈build议你不要去微服务的风格。 相反,尝试模块化您当前的代码库并重构代码以获得更好的质量和可理解性。

关于Docker,甚至可以使用单一样式来消除Docker,以便消除开发和部署环境中的一些部署障碍和不一致。 如果提到的有关部署的问题不打扰你,不要去泊坞窗,因为它只是一个计算开销层。