想象一下,你有一个使用普通servlet或SpringMVC的标准java web应用程序,或者其他什么。您也希望(无论出于何种原因)与服务器通信而不使用HTTP - 我将使用直接套接字,因为这是我能想到的最简单的示例。
编写Web应用程序非常简单,您可以将servlet作为入口点。编写一个监控端口的Java应用程序也很容易。但那两者兼顾呢?是否允许没有黑客攻击?如果事实证明我们同意这是一个坏主意,那么什么是更好的架构呢?请注意,其背后的动机之一是性能...我们可以轻松拥有两个独立的应用程序共享数据库,但更喜欢避免使用数据库作为通信工具,当信息可以缓存在内存中时更有效率。
答案 0 :(得分:2)
所以我假设有一个Java EE容器在运行,就像Tomcat一样。如果你想让它在80以外的其他端口上收听,那么肯定。你可以在Tomcat的情况下在Connector
中创建一个新的server.xml
,并指定你喜欢的任何端口。
如果您希望此连接器使用自定义协议,则需要实施并注册您自己的客户Connector
。我没有这样做,但似乎很简单。
如果您通过两种协议回答基本相同的请求,则使用一台具有不同端点的服务器是有意义的。我想它可以更容易地分享所有常见的逻辑。
即使你想运行一个单独的应用程序,它仍然可能是这样的,因为你将利用容器的连接管理等。