Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;带桌面应用程序的微服务_C++_Microservices_Desktop - Fatal编程技术网

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

C++ C++;带桌面应用程序的微服务,c++,microservices,desktop,C++,Microservices,Desktop,我有一个桌面应用程序,它越来越大。我想知道我是否可以用桌面应用程序制作类似微服务的东西?我想现在的应用程序停留在桌面上。它是用C++编写的。 我可以通过一些准备工作排除一些模块。 但有可能吗?如果有人知道如何从这开始?桌面应用程序和微服务是相互排斥的,因为桌面意味着一台机器,而微服务意味着多台机器(物理或虚拟)使用技术无关协议通过网络进行通信 你能做的就是使用它。这是微服务的一种替代方案,可以在某些情况下(如您的情况)工作。类似于微服务的桌面架构是可行的。事实上,许多操作系统使用服务,这些服务通

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

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


你能做的就是使用它。这是微服务的一种替代方案,可以在某些情况下(如您的情况)工作。

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

有几件事需要考虑:

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

您可以使用。我正在考虑主流程,并从该流程运行其他流程。好吗?我不知道boost,但通过快速阅读,这可能是一个很好的解决方案。@rex如果应用程序根本不使用boost,这是个问题吗?对于单独的进程,您需要某种类型的方法才能使它们一起工作。也许线程就足够了?您可以使用OSAPI在没有boost的情况下做同样的事情。这个问题似乎不适合这里。也许最好在微软的世界里讨论这个问题,答案是COM或.NET。。。不确定这里是否相关,但它甚至可以在不同的机器上使用服务(服务器)。也许你知道一些类似于OSGi到C++的东西?因为我读到Java最流行的是OSGi。为什么你认为微服务需要跨越多台机器?我不同意这一点