通过docker运行Java服务器有意义吗?

时间:2019-07-12 16:38:12

标签: java docker server containers scalability

我将要创建一个Java服务器/客户端结构,该结构使用通过TCP套接字进行的双向通信。对于每个发出请求的客户端,都会创建一个新线程。目前,它正在通过托管服务在虚拟机上运行。现在我想到了使用docker。但是在这种情况下切换到docker真的有意义吗?码头工人真的打算运行像Java服务器这样的永久性应用程序吗?

1 个答案:

答案 0 :(得分:1)

我在这里如履薄冰,但是无论如何,我要说的是...如果您正在Linux上运行某个进程,那么就大多数意图而言,该进程都在容器中运行。

容器是Linux内核固有功能(命名空间,cgroup等)之上的“糖”。包括Docker Engine在内的解决方案大多使这些功能(有些不可思议)可广泛使用。易于使用。

容器和VM是非常不同的技术。扩展以上内容,您可以在容器中运行VM,并且-几乎总是-在VM中运行容器。

一直是容器:-)

要直接回答您的问题:您已经在容器中运行Java服务器,并且该服务器在VM上运行。您可能会决定做两件事,但请先详细阅读以下内容:

  • 将Docker(引擎)添加到现有VM(如果尚不存在)中,以更轻松地将Java服务器作为Docker容器进行管理。 优点:不清楚,但请参见下文。

  • 从VM(!)中提取Java服务器,并将其作为Docker容器运行。 优点:不清楚; 后果:您的托管公司可能无法执行;潜在的安全隐患;没有明确的好处;等等。

使用容器并将容器部署到现有托管服务提供商(并继续使用其虚拟机)的一个好处是,您将能够在托管服务提供商以外的其他位置进行构建和测试,并且(大部分)可以确保在构建和测试过程中起作用的容器映像也将在生产环境中对您的托管服务提供商起作用。

HTH!