[英]Vert.x Proxy Service - handle routing on different machiens
我有一個帶有 2 個端點的網絡服務器,我想在不同的機器上處理它們。 它們是獨立的,更新一個時我不想重新啟動另一個。
Router router = Router.router(vertx);
router.route("/api*").handler(BodyHandler.create());
router.post("/api/end_point_1").handler(new Handler1());
router.post("/api/end_point_2").handler(new Handler2());
我怎樣才能在 Vert.x 中實現這一點? 我一直在閱讀關於Vert.x Service Proxy但我不太確定如何將它應用於路由器。
您正在尋找的稱為 Vertx 集群。
你的處理程序看起來像這樣:
router.post("/api/end_point_1").handler(req -> {
// Extract data from request
// Package it into an object
// Send it over EventBus
vertx.eventBus().send("event1", data);
});
現在在單獨的應用程序中創建另一個 Verticle,它應該執行以下操作:
vertx.eventBus().consumer("event1");
consumer.handler(o -> {
System.out.println("Got message" + o.body());
});
現在按照本指南運行這些單獨的罐子: http : //vertx.io/docs/vertx-hazelcast/java/
我會簡單地將代碼打包為兩個不同的 JAR 並獨立部署它們。 然后負載平衡器/API 網關/反向代理將根據請求 URI 將流量發送到正確的服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.