我正在寻找任何可以帮助我开发简单的小型代理服务器以满足内部项目需求的框架或库。
我找到了 Jetty 和 Netty。还有别的?
另外,我看到,Jetty 提供了一个 Web 服务器和 javax.servlet 容器,而 Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。
所以,我不确定 Jetty 在我的情况下是正确的选择。Netty - 我没有看到任何好的文档和社区,可能,这也不是一个好的选择。
你有什么可以推荐给我的?
我相信两者都可以正常工作,对于 Jetty,我们有一个异步 ProxyServlet,您可以直接配置和使用它,或者根据需要使用您拥有的任何其他逻辑覆盖和自定义。我知道有很多人在生产中以两种方式成功使用它。我建议使用最新的 Jetty 9.0.2 版本。文档有点稀疏,但随着我们继续将文档迁移到 docbook,我们正在努力添加更多文档。
http://www.eclipse.org/jetty/documentation/current/proxy-servlet.html
如果您对文档应该涵盖的内容有任何疑问,请随时为它做出贡献(它在 github 上)或在 RT/Jetty 下的 bugs.eclipse.org 上打开一个问题,我们将努力解决它。
我推荐LittleProxy。它是一个基于 Netty 的高度可定制的代理服务器。
实际上,Netty 在其示例中包含一个简单的 TCP 代理服务器。所以也许它对你来说是一个很好的起点。你可以在这里找到它[1]。
[1] https://github.com/netty/netty/tree/4.1/example/src/main/java/io/netty/example/proxy
您可以使用 vert.x,它带有易于配置的 HTTP 服务器。
HttpServer server = vertx.createHttpServer();
server.requestHandler(request -> {
// This handler gets called for each request that arrives on the server
HttpServerResponse response = request.response();
response.putHeader("content-type", "text/plain");
// Write to the response and end it
response.end("Hello World!");
});
server.listen(8080);`
你可以考虑Zuul
。它由Netflix zuul积极管理和使用,Netflix
并且是开源
的
事实上,它不仅仅是一个代理服务器。
Zuul
GitHub 说
Zuul 是一种边缘服务,可提供动态路由、监控、弹性、安全性等。