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

C++ MicroServices with desktop application

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

桌面应用程序和微服务相互排斥,因为桌面意味着一台机器,而微服务意味着多台机器(物理或虚拟),它们使用技术不可知协议通过网络进行通信。

你能做的就是使用modularization。这是微服务的替代方案,可以在像您这样的某些情况下工作。

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

有几点需要考虑:

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