通訊埠需求

Private Cloud v4.19.01 版

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

通訊埠圖表

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

單一資料中心

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

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

這張圖表的注意事項:

  • 前置為「M」的通訊埠是用於管理元件的通訊埠,必須在元件上開啟,才能供管理伺服器存取。
  • Edge UI 需要存取 API Proxy 公開的 Router 端口,才能支援追蹤工具中的「Send」按鈕。
  • 您可以設定 JMX 連接埠的存取權,要求使用者輸入使用者名稱/密碼。詳情請參閱如何監控
  • 您可以選擇針對可使用不同通訊埠的特定連線設定 TLS/SSL 存取。詳情請參閱 TLS/安全資料傳輸層 (SSL)
  • 您可以設定管理伺服器和 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 和您用於虛擬主機的其他通訊埠
Cassandra 7000、9042、9160 用於 Cassandra 節點之間通訊和供其他 Edge 元件存取的 Apache Cassandra 通訊埠。
7199 JMX 通訊埠。必須開放管理伺服器存取。
LDAP 10389 OpenLDAP
管理伺服器 1099 JMX 連接埠
4526 分散式快取和管理呼叫的通訊埠。這個連接埠可進行設定。
5636 營利功能提交通知的移植作業。
8080 Edge 管理 API 呼叫的端口。這些元件需要存取管理伺服器上的通訊埠 8080:路由器、訊息處理器、UI、Postgres 和 Qpid。
管理 UI 9000 瀏覽器存取管理介面所需的通訊埠
訊息處理器 1101 JMX 連接埠
4528 用於訊息處理器之間的分散式快取和管理呼叫,以及從路由器和管理伺服器通訊。

訊息處理器必須開啟 4528 通訊埠做為管理通訊埠。如果您有多個訊息處理器,則這些處理器必須能夠透過通訊埠 4528 相互存取 (上方圖表中,訊息處理器的通訊埠 4528 有循環箭頭表示)。如果您有多個資料中心,這個通訊埠必須可由所有資料中心的所有訊息處理器存取。

8082

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

如果您在「路由器」和「訊息處理器」之間設定 TLS/SSL,路由器就會用來對訊息處理器進行健康狀態檢查。

只有在您在 Router 和 Message Processor 之間設定 TLS/SSL 時,才需要開放 Message Processor 上的 8082 通訊埠供 Router 存取。如果您未在 Router 和 Message Processor 之間設定 TLS/SSL,則仍必須在 Message Processor 上開啟預設設定的通訊埠 8082 才能管理元件,但 Router 不需要存取該通訊埠。

8443 在路由器與訊息處理器之間啟用 TLS 後,您必須在訊息處理器上開啟通訊埠 8443,才能讓路由器存取。
8998 用於與路由器通訊的訊息處理器通訊埠
Postgres 22 如果要將兩個 Postgres 節點設定為使用主機待命複寫,您必須在每個節點上開啟通訊埠 22,以便存取 SSH。
1103 JMX 連接埠
4530 用於分散式快取和管理呼叫
5432 用於從 Qpid/Management Server 到 Postgres 的通訊
8084 Postgres 伺服器上的預設管理通訊埠;必須在元件上開啟,才能由管理伺服器存取。
Qpid 1102 JMX 連接埠
4529 用於分散式快取和管理呼叫
5672
  • 單一資料中心:用於將分析資料從 Router 和 Message Processor 傳送至 Qpid。
  • 多個資料中心:用於不同資料中心的 Qpid 節點之間的通訊。
8083 Qpid 伺服器上的預設管理通訊埠,必須在元件上開啟,才能由管理伺服器存取。
路由器 4527 用於分散式快取和管理呼叫。

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

雖然這不是必要步驟,但您可以開啟 Router 上的通訊埠 4527,讓任何 Message Processor 都能存取。否則,您可能會在 Message Processor 記錄檔中看到錯誤訊息。

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

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

為了取得路由器的狀態,負載平衡器會向路由器的 15999 連接埠提出要求:

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

如果 Router 可供存取,要求會傳回 HTTP 200。

59001 apigee-validate 公用程式用於測試 Edge 安裝作業。這項公用程式需要存取路由器上的 59001 埠。如要進一步瞭解 59001 通訊埠,請參閱「測試安裝程序」。
SmartDocs 59002 Edge 路由器上傳送 SmartDocs 網頁要求的連接埠。
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 動物保密協議 (Zookeeper) 客戶溝通 管理伺服器
路由器
訊息處理器
Qpid 伺服器
Postgres 伺服器
Zookeeper
2888 和 3888 Zookeeper 節點間管理 Zookeeper Zookeeper
4526 RPC 管理通訊埠 管理伺服器 管理伺服器
4527 用於分散快取和管理呼叫,以及路由器之間通訊的 RPC 管理通訊埠 管理伺服器
路由器
路由器
4528 針對訊息處理工具之間的散發快取呼叫,以及來自路由器的通訊 管理伺服器
路由器
訊息處理器
訊息處理器
4529 用於分散式快取和管理呼叫的 RPC 管理通訊埠 管理伺服器 Qpid 伺服器
4530 用於分散式快取和管理呼叫的 RPC 管理通訊埠 管理伺服器 Postgres 伺服器
5432 Postgres 用戶端 Qpid 伺服器 Postgres
5636 營利 外部 JMS 元件 管理伺服器
5672
  • 單一資料中心:用於將分析資料從 Router 和 Message Processor 傳送至 Qpid。
  • 多個資料中心:用於不同資料中心的 Qpid 節點之間的通訊。
Qpid 伺服器 Qpid 伺服器
7000 Cassandra 節點間通訊 Cassandra 其他 Cassandra 節點
7199 JMX 管理。必須開放 Management Server 存取 Cassandra 節點。 JMX 用戶端 Cassandra
8080 Management API 連接埠 Management API 用戶端 管理伺服器
8081 至 8084

元件 API 通訊埠,可用來直接發出 API 要求給個別元件。每個元件會開啟不同的通訊埠;實際使用的通訊埠取決於設定,但必須在元件上開啟,管理伺服器才能存取

Management API 用戶端 路由器 (8081)
訊息處理器 (8082)
Qpid 伺服器 (8083)
Postgres Server (8084)
8443 啟用 TLS 時,路由器和訊息處理器之間的通訊 路由器 訊息處理器
8998 路由器和訊息處理工具之間的通訊 路由器 訊息處理器
9000 預設 Edge 管理 UI 通訊埠 瀏覽器 管理 UI 伺服器
9042 CQL 原生傳輸 路由器
訊息處理器
管理伺服器
Cassandra
9160 Cassandra 等待用戶端 路由器
訊息處理器
管理伺服器
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