public class HttpClientExample {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
HttpServer server = vertx.createHttpServer();
server.requestHandler(request -> {
request.response().end("Hello World");
});
Future<HttpServer> fut = server.listen(8080, "localhost");
Async async = new Async(vertx);
async.run(v -> {
// Run on a Vert.x a virtual thread
// Make sure server is started
await(fut);
// Make a simple HTTP request
HttpClient client = vertx.createHttpClient();
HttpClientRequest req = await(client.request(HttpMethod.GET, 8080, "localhost", "/"));
HttpClientResponse resp = await(req.send());
int status = resp.statusCode();
Buffer body = await(resp.body());
System.out.println("Got response '" + body + "'");
});
}
}
这里的 async 和 await 多此一举,只是把异步的 future 转成同步。感觉 Spring Webflux 和 Vertx 这类响应式的 Web 框架已经没必要了,使用基于虚拟线程的 Spring MVC 足矣,当然只是感觉没有实测过。
我也找了很久都没有关于 Servlet 和 JDBC 利用虚拟线程的文章
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.