通訊埠需求

除了虛擬主機之外,VM 和實體主機防火牆也必須允許元件彼此通訊所需的通訊埠流量。

通訊埠圖表

下圖顯示單一資料中心和多個資料中心設定的通訊埠需求:

單一資料中心

下圖顯示了單一資料中心設定中每個 Edge 元件的通訊埠要求:

單一資料中心設定中每個 Edge 元件的通訊埠需求

這張圖表中的注意事項:

  • 前置字串為「M」的通訊埠,是用來管理元件的通訊埠,您必須在元件上開啟,才能供管理伺服器存取。
  • Edge UI 需要在 API Proxy 公開的通訊埠上存取路由器,才能支援追蹤器中的「傳送」按鈕。
  • 您可以設定 JMX 通訊埠的存取權,藉此要求使用者輸入使用者名稱/密碼。詳情請參閱「監控方式」一文。
  • 您可以選擇為特定連線設定 TLS/SSL 存取權,讓連線使用不同的通訊埠。詳情請參閱 TLS/SSL
  • 您可以將 Management Server 和 Edge UI 設為透過外部 SMTP 伺服器傳送電子郵件。這麼一來,您必須確保管理伺服器和 UI 可以存取 SMTP 伺服器上的必要通訊埠 (未顯示)。如果不是 TLS SMTP,通訊埠編號通常為 25。如果是已啟用 TLS 的 SMTP,通常是 465,但請向 SMTP 供應商確認。

多個資料中心

如果您安裝包含兩個資料中心的 12 節點叢集設定,請確認兩個資料中心中的節點可以透過以下通訊埠進行通訊:

在 12 個節點的叢集設定中,每個節點的通訊埠需求

注意事項:

  • 所有管理伺服器都必須能存取所有其他資料中心中的所有 Cassandra 節點。
  • 所有資料中心中的所有訊息處理器都必須能夠透過通訊埠 4528 互相存取。
  • 管理伺服器必須能夠透過通訊埠 8082 存取所有郵件處理器。
  • 所有管理伺服器和所有 Qpid 節點都必須能夠存取所有其他資料中心中的 Postgres。
  • 基於安全性考量,除了上述的通訊埠,以及您自身網路需求所需的任何其他通訊埠之外,資料中心之間不應開啟其他通訊埠。

根據預設,元件之間的通訊不會加密。您可以安裝 Apigee mTLS 來新增加密功能。詳情請參閱 Apigee mTLS 簡介

通訊埠詳細資料

下表說明以 Edge 元件在防火牆中開啟的通訊埠:

元件 通訊埠 說明
標準 HTTP 通訊埠 80、443 HTTP 加上您用於虛擬主機的任何其他通訊埠
Apigee 單一登入 (SSO) 119 來自外部 IDP、管理伺服器和瀏覽器的連線以進行驗證。
Cassandra 7000、9042、9160 用於 Cassandra 節點之間通訊的 Apache Cassandra 通訊埠,以便其他 Edge 元件存取。
7199 JMX 通訊埠。必須開放管理伺服器才能存取。
LDAP 10389 OpenLDAP
管理伺服器 1099 JMX 通訊埠
4526 分散式快取和管理呼叫的通訊埠。你可以設定這個通訊埠。
5636 營利修訂通知的通訊埠。
8080 Edge Management API 呼叫的通訊埠。這些元件需要存取管理伺服器上的通訊埠 8080:路由器、訊息處理器、UI、Postgres、Apigee SSO (如果已啟用) 和 Qpid。
管理 UI 9000 瀏覽器存取管理 UI 的通訊埠
訊息處理器 指南 JMX 通訊埠
4528 適用於訊息處理器之間的分散式快取與管理呼叫,以及路由器和管理伺服器之間的通訊。

訊息處理器必須開啟通訊埠 4528 做為管理通訊埠。如有多個訊息處理器,所有訊息處理器都必須能透過通訊埠 4528 互相存取 (上圖中的迴圈箭頭表示,郵件處理器的通訊埠 4528)。如果您有多個資料中心,每個資料中心的所有訊息處理器都必須能存取這個通訊埠。

8082

訊息處理器的預設管理通訊埠,必須在元件上開啟,才能供管理伺服器存取。

如果在路由器和訊息處理器之間設定 TLS/SSL,路由器會使用該位址對訊息處理器進行健康狀態檢查。

設定路由器和訊息處理器之間的 TLS/SSL 時,訊息處理器上的通訊埠 8082 才需要開放路由器存取。如果您未在路由器與訊息處理器之間設定傳輸層安全標準 (TLS)/SSL,您仍須在訊息處理器上開啟通訊埠 8082 來管理元件,但路由器不需要存取通訊埠 8082。

8443 在路由器與訊息處理器之間啟用 TLS 後,您必須開啟訊息處理器的通訊埠 8443,才能通過路由器存取。
8998 從路由器進行通訊的訊息處理器通訊埠
Postgres 22 如果設定兩個 Postgres 節點以使用主要執行個體待命複製功能,您必須開啟每個節點上的通訊埠 22 以便存取 SSH。
1103 JMX 通訊埠
4530 適用於分散式快取和管理呼叫
5432 用於從 Qpid/管理伺服器到 Postgres 的通訊
8084 Postgres 伺服器上的預設管理通訊埠;必須在元件上開啟,管理伺服器才能存取。
Qpid 1102 JMX 通訊埠
4529 適用於分散式快取和管理呼叫
5672
  • 單一資料中心:用於從路由器和訊息處理器將數據分析傳送至 Qpid。
  • 多個資料中心:用於不同資料中心內 Qpid 節點之間的通訊。

也用於在 Qpid 伺服器與同一節點中的代理程式元件之間進行通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 5672 的所有代理程式。

8083 Qpid 伺服器上的預設管理通訊埠,必須在元件上開啟,才能供管理伺服器存取。
路由器 4527 適用於分散式快取和管理呼叫。

路由器必須開啟通訊埠 4527 做為管理通訊埠。如果您有多個路由器,這些路由器都必須能夠透過通訊埠 4527 互相存取 (如上圖中的迴圈箭頭表示,路由器上的通訊埠 4527)。

雖然這並非必要步驟,但您可開啟路由器上的通訊埠 4527,由任何訊息處理器存取。否則,您可能會在「訊息處理器」記錄檔中看到錯誤訊息。

8081 路由器的預設管理通訊埠,必須在元件上開啟,才能由管理伺服器存取。
15999

健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠來判斷路由器是否可用。

如要取得路由器的狀態,負載平衡器會向路由器上的通訊埠 15999 發出要求:

curl -v http://routerIP:15999/v1/servers/self/reachable

如果可連上路由器,要求會傳回 HTTP 200。

59001 apigee-validate 公用程式用於測試 Edge 安裝的通訊埠。這個公用程式需要存取路由器上的通訊埠 59001。如要進一步瞭解通訊埠 59001,請參閱「測試安裝」一文。
SmartDocs 59002 接收 SmartDocs 網頁要求的 Edge 路由器通訊埠。
ZooKeeper 2181 供管理伺服器、路由器、訊息處理器等其他元件使用
2888、3888 由 ZooKeeper 內部用於 ZooKeeper 叢集 (稱為 ZooKeeper 固體) 的內部用途

下表以數字列出相同的通訊埠,其中包含來源和目的地元件:

通訊埠編號 目的 來源元件 目的地元件
virtual_host_port HTTP 加上您用於虛擬主機 API 呼叫流量的任何其他通訊埠。最常使用通訊埠 80 和 443;訊息路由器可終止 TLS/SSL 連線。 外部用戶端 (或負載平衡器) 訊息路由器的監聽器
1099 到 1103 JMX 管理 JMX 用戶端 管理伺服器 (1099)
郵件處理器 (1101)
Qpid 伺服器 (1102)
Postgres 伺服器 (1103)
2181 動物園總經理客戶通訊 管理伺服器
路由器
訊息處理器
Qpid 伺服器
Postgres 伺服器
Zookeeper
2888 和 3888 動物園跨節點管理 Zookeeper Zookeeper
4526 RPC 管理通訊埠 管理伺服器 管理伺服器
4527 用於分散式快取和管理呼叫,以及路由器之間通訊的遠端程序呼叫 (RPC) 管理通訊埠 管理伺服器
路由器
路由器
4528 適用於訊息處理器之間的分散式快取呼叫,以及從路由器進行通訊 管理伺服器
路由器
訊息處理器
訊息處理器
4529 分散式快取和管理呼叫的遠端程序呼叫 (RPC) 管理通訊埠 管理伺服器 Qpid 伺服器
4530 分散式快取和管理呼叫的遠端程序呼叫 (RPC) 管理通訊埠 管理伺服器 Postgres 伺服器
5432 Postgres 用戶端 Qpid 伺服器 Postgres
5636 營利 外部 JMS 元件 管理伺服器
5672
  • 單一資料中心:用於從路由器和訊息處理器將數據分析傳送至 Qpid。
  • 多個資料中心:用於不同資料中心內 Qpid 節點之間的通訊。

也用於在 Qpid 伺服器與同一節點中的代理程式元件之間進行通訊。在具有多個 Qpid 節點的拓撲中,伺服器必須能夠連線至通訊埠 5672 的所有代理程式。

Qpid 伺服器 Qpid 伺服器
7000 Cassandra 節點間通訊 Cassandra 其他 Cassandra 節點
7199 。管理伺服器必須開放存取 Cassandra 節點。 JMX 用戶端 Cassandra
8080 Management API 通訊埠 Management API 用戶端 管理伺服器
8081 至 8084

元件 API 通訊埠,用於直接向個別元件發出 API 要求。每個元件都會開啟不同的通訊埠;確切的通訊埠取決於設定,但必須開啟元件上才能供管理伺服器存取

Management API 用戶端 路由器 (8081)
訊息處理器 (8082)
Qpid 伺服器 (8083)
Postgres 伺服器 (8084)
8443 啟用 TLS 時,路由器與訊息處理器之間的通訊 路由器 訊息處理器
8998 路由器與訊息處理器之間的通訊 路由器 訊息處理器
9000 預設 Edge 管理 UI 通訊埠 瀏覽者 管理 UI 伺服器
9042 CQL 原生傳輸 路由器
訊息處理器
管理伺服器
Cassandra
9099 外部 IDP 驗證 IDP、瀏覽器和管理伺服器 Apigee 單一登入 (SSO)
9160 Cassandra Thrift 用戶端 路由器
訊息處理器
管理伺服器
Cassandra
10389 LDAP 通訊埠 管理伺服器 OpenLDAP
15999 健康狀態檢查通訊埠。負載平衡器會使用這個通訊埠來判斷路由器是否可用。 負載平衡器 路由器
59001 apigee-validate 公用程式用來測試 Edge 安裝作業的通訊埠 apigee-validate 路由器
59002 傳送 SmartDocs 網頁要求的路由器通訊埠 SmartDocs 路由器

訊息處理器會讓專屬連線集區保持向 Cassandra 開放,並設為永不逾時。在防火牆與訊息處理器和 Cassandra 伺服器之間連線時,防火牆可能會逾時。不過,訊息處理器的設計不適合用來重新建立與 Cassandra 的連線。

為了避免發生這種情況,Apigee 建議 Cassandra 伺服器、訊息處理器和路由器都位於同一個子網路,這樣防火牆就不會牽涉到這些元件的部署。

如果在路由器與訊息處理器之間有防火牆,且已設定閒置的 TCP 逾時,我們的建議如下:

  1. 在 Linux OS 的 sysctl 設定中,設定 net.ipv4.tcp_keepalive_time = 1800,其中 1800 應低於防火牆的閒置 tcp 逾時。這項設定應將連線保持在已建立的狀態,避免防火牆中斷連線。
  2. 在所有訊息處理器上編輯 /opt/apigee/customer/application/message-processor.properties 以新增下列屬性。如果檔案不存在,請建立檔案。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  3. 重新啟動訊息處理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
  4. 在所有路由器上,編輯 /opt/apigee/customer/application/router.properties 來新增下列屬性。如果檔案不存在,請建立檔案。
    conf_system_cassandra.maxconnecttimeinmillis=-1
  5. 重新啟動路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart