带有桌面应用程序的 C++ 微服务

Pit*_*_OS 3 c++ desktop microservices

我有一个桌面应用程序,它变得越来越大。我想知道我是否可以使用桌面应用程序制作类似微服务的东西?我想应用程序现在保持桌面。它是用 C++ 编写的应用程序。我可以通过一些准备排除一些模块。但是有没有可能,如果有人知道如何开始呢?

pun*_*man 5

类似微服务的桌面架构是可行的。事实上,许多操作系统都使用服务,这些服务通常被称为守护进程。例如,X Window 系统使用客户端/服务器架构。最近,IDE 现在可以使用语言服务器协议与一个或多个提供语法突出显示、代码完成、编译反馈等的语言服务器进行通信。

有几件事情需要考虑:

  • 目标系统上已有哪些可用的通信协议?在许多系统上,您可以使用 D-Bus ( https://en.wikipedia.org/wiki/D-Bus )
  • 你需要什么性能?如果性能非常关键,您将需要使用高度优化的协议在服务之间进行通信,并且启动时间需要很短。为了获得良好的性能,类似于语言服务器协议的东西可能已经足够好,并且更容易编写、维护和调试。
  • 您能处理拆分流程所增加的复杂性吗?在单体应用中,整个事情要么向上要么向下。使用微服务,正在运行的系统部分可以尝试调用未运行的部分。这种情况必须处理。
  • 您的应用程序中的接缝是什么?哪里可以轻松拆分?看看领域驱动设计。识别潜在的独立模块,并重构确认。如果重构有意义,则将模块拆分为自己的进程。