簡體   English   中英

Vert.x 代理服務 - 處理不同機器上的路由

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM