Edge for Private Cloud v4.18.01
硬件要求
您必须满足以下最低硬件要求,才能在生产级环境中打造高可用性基础架构。对于安装拓扑中所述的所有安装场景,下表列出了安装组件的最低硬件要求。
在这些表格中,除操作系统所需的硬盘空间外,对硬盘空间的要求也不例外。根据您的应用和网络流量,安装过程中需要的资源可能比下面列出的更多或更少。
安装组件 | RAM | CPU | 最小硬盘 |
---|---|---|---|
Cassandra | 16 GB | 8 核 | 250GB 本地存储空间(采用 SSD 或支持 2000 IOPS 的快速 HDD) |
同一机器上的消息处理器/路由器 | 16 GB | 8 核 | 100GB |
Google Analytics(分析)- 同一服务器上的 Postgres/Qpid(不建议用于生产环境) | 16GB* | 8 核* | 500 GB - 1TB** 网络存储空间***,最好使用 SSD 后端,可支持 1000 IOPS 或更高* |
分析 - Postgres 独立 | 16GB* | 8 核* | 500 GB - 1TB** 网络存储空间***,最好使用 SSD 后端,可支持 1000 IOPS 或更高* |
Google Analytics(分析)- Qpid 独立 | 8 GB | 4 核 | 30GB - 50GB 本地存储空间(采用 SSD 或快速 HDD)
如果安装次数超过 250 TPS,建议使用本地存储空间支持 1000 IOPS 的 HDD。 默认的 Qpid 队列大小为 20 GB。如果您需要添加更多容量,请添加其他 Qpid 节点。 |
其他(OpenLDAP、界面、管理服务器) | 4 GB | 2 核 | 60 GB |
* 根据吞吐量调整 Postgres 系统要求:
- 低于 250 TPS:可以考虑使用 8GB、4 核,使用支持 1000 IOPS 或更高级别的代管式网络存储空间***
- 大于 250 TPS:16GB 8 核代管式网络存储空间*** 支持 1000 IOPS 或更高
- 大于 1000 TPS:16GB 8 核代管式网络存储空间*** 支持 2000 IOPS 或更高
- 大于 2000 TPS:32GB 16 核代管式网络存储空间*** 支持 2000 IOPS 或更高
- 高于 4000 TPS:64GB,32 核代管式网络存储空间*** 支持 4000 IOPS 或更高
** Postgres 硬盘值基于 Edge 捕获的开箱即用分析结果。 如果您向分析数据添加自定义值,则应相应地增加这些值。请使用以下公式估算所需的存储空间:
bytes of storage needed =
(# bytes of analytics data/request) *
(requests/second) *
(seconds/hour) *
(hours of peak usage/day) *
(days/month) *
(months of data retention)
例如:
(2K bytes) * (100 req/sec) * (3600 secs/hr) * (18 peak hours/day) * (30 days/month) * (3 months retention)
= 1,194,393,600,000 bytes or 1194.4 GB
*** 建议将 Network Storage 用于 Postgresql 数据库,原因如下:
- 它支持在必要时动态扩容存储空间大小。
- 在当今的大多数环境/存储/网络子系统中,网络 IOPS 可以即时调整。
- 您可以在备份和恢复解决方案中启用存储级快照。
此外,下面列出了您希望安装创收服务的硬件要求:
“创收”环节 | RAM | CPU | 硬盘 |
---|---|---|---|
管理服务器(含变现服务) | 8 GB | 4 核 | 60 GB |
Google Analytics(分析)- 同一服务器上的 Postgres/Qpid | 16 GB | 8 核 | 500 GB - 1 TB 网络存储空间,最好带有 SSD 后端,支持 1000 IOPS 或更高,或使用上表中的规则。 |
分析 - Postgres 独立 | 16 GB | 8 核 | 500 GB - 1 TB 网络存储空间,最好带有 SSD 后端,支持 1000 IOPS 或更高,或使用上表中的规则。 |
Google Analytics(分析)- Qpid 独立 | 8 GB | 4 核 | 40GB - 500GB 本地存储空间(采用 SSD 或快速 HDD)
如果安装次数超过 250 TPS,建议使用本地存储空间支持 1000 IOPS 的 HDD。 |
如果您希望安装 API BaaS,请列出以下硬件要求:
API BaaS 组件 | RAM | CPU | 硬盘 |
---|---|---|---|
ElasticSearch* | 8 GB | 4 核 | 60-80GB |
API BaaS 堆栈* | 8 GB | 4 核 | 60-80GB |
API BaaS 门户 | 1GB | 2 核 | 20GB |
Cassandra** | 16 GB | 8 核 | 250GB 本地存储空间(采用 SSD 或支持 2000 IOPS 的快速 HDD) |
* 您可以在同一节点上安装 ElasticSearch 和 API BaaS 堆栈。如果要这样做,请将 ElasticSearch 配置为使用 4GB 内存(默认)。如果 ElasticSearch 安装在其自己的节点上,请将其配置为使用 6GB 内存。
** 可选;通常,您对 Edge 和 API BaaS 服务使用相同的 Cassandra 集群。
操作系统和第三方软件要求
这些安装说明和提供的安装文件已在支持的软件和支持的版本中列出的操作系统和第三方软件上进行了测试。
正在创建 Apigee 用户
安装过程会创建一个名为“apigee”的 Unix 系统用户。Edge 目录和文件都归“apigee”所有,Edge 进程也是如此。这意味着 Edge 组件将以“apigee”用户身份运行。如有必要,你可以以其他用户身份运行组件。
安装目录
默认情况下,安装程序会将所有文件写入 /opt/apigee
目录。您无法更改此目录位置。虽然您无法更改此目录,但可以创建符号链接以将 /opt/apigee
映射到其他位置,如下所述。
在本指南的说明中,安装目录标记为 /opt/apigee
。
从 /opt/apigee 创建符号链接
在创建符号链接之前,您必须先创建一个名为“apigee”的用户和群组。这是由 Edge 安装程序创建的群组和用户。
如需创建符号链接,请在下载 bootstrap_4.18.01.sh 文件之前执行以下步骤。 您必须以 root 身份执行以下所有步骤:
- 创建“apigee”用户和组:
groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
- 创建从
/opt/apigee
到所需安装根目录的符号链接:ln -Ts /srv/myInstallDir /opt/apigee
其中 /srv/myInstallDir 是所需的 Edge 文件位置。
- 将安装根目录和符号链接的所有权更改为“apigee”用户:
chown -h apigee:apigee /srv/myInstallDir /opt/apigee
Java
在安装之前,您需要在每台机器上安装受支持的 Java 1.8 版本。支持的软件和支持的版本中列出了支持的 JDK。
确保 JAVA_HOME
指向执行安装的用户的 JDK 的根目录。
SELinux
Edge 可能会在安装和启动 Edge 组件时遇到问题,具体取决于您的 SELinux 设置。如有必要,您可以在安装期间停用 SELinux 或将其设置为宽容模式,然后在安装后重新启用它。如需了解详情,请参阅安装 Edge apigee-setup 实用程序。
网络设置
建议您在安装前先检查网络设置。安装程序希望所有机器都具有固定的 IP 地址。使用以下命令验证设置:
hostname
会返回机器的名称hostname -i
返回可通过其他机器寻址的主机名的 IP 地址。
如果主机名设置不正确,您可能需要修改 /etc/hosts
和 /etc/sysconfig/network
,具体取决于您的操作系统类型和版本。有关详情,请参阅适用于您的操作系统的文档。
如果服务器有多张接口卡,则“hostname -i”命令会返回一个以空格分隔的 IP 地址列表。默认情况下,Edge 安装程序使用返回的第一个 IP 地址,这在某些情况下可能并不正确。作为替代方案,您可以在安装配置文件中设置以下属性:
ENABLE_DYNAMIC_HOSTIP=y
将该属性设置为“y”后,安装程序会提示您选择要在安装过程中使用的 IP 地址。默认值为“n”。如需了解详情,请参阅边缘配置文件参考。
TCP 封装容器
TCP 封装容器可能会阻止某些端口的通信,并影响 OpenLDAP、Postgres 和 Cassandra 安装。在这些节点上,检查 /etc/hosts.allow
和 /etc/hosts.deny
,确保所需的 OpenLDAP、Postgres 和 Cassandra 端口没有端口限制。
iptables
验证是否存在阻止在所需 Edge 端口上的节点之间连接的 iptables 政策。如有必要,您可以在安装期间使用以下命令停止 iptables:
sudo/etc/init.d/iptables stop
在 CentOS 7.x 上,运行以下命令:
systemctl stop firewalld
确保边缘路由器可以访问 /etc/rc.d/init.d/functions
边缘路由器和 BaaS 门户节点使用 Nginx 路由器,并需要对 /etc/rc.d/init.d/functions
的读取权限。
如果您的安全过程要求您对 /etc/rc.d/init.d/functions
设置权限,请勿将其设置为 700,否则路由器将无法启动。权限可设置为 744,以允许对 /etc/rc.d/init.d/functions
进行读取访问。
卡桑德拉
所有 Cassandra 节点都必须连接到环。Cassandra 将数据副本存储在多个节点上,以确保可靠性和容错能力。每个 Edge 键空间的复制策略决定了放置副本的 Cassandra 节点。如需了解详情,请参阅 Cassandra 复制系数和一致性级别简介。
Cassandra 会根据可用内存自动调整其 Java 堆大小。如需了解详情,请参阅调整 Java 资源。在性能下降或内存消耗高时发出提醒。
安装适用于私有云的 Edge 后,您可以通过检查 /opt/apigee/apigee-cassandra/conf/cassandra.yaml
文件来检查 Cassandra 是否已正确配置。例如,确保 Edge for Private Cloud 安装脚本设置以下属性:
cluster_name
initial_token
partitioner
seeds
listen_address
rpc_address
snitch
PostgreSQL 数据库
安装 Edge 后,您可以根据系统上的可用 RAM 容量调整以下 PostgreSQL 数据库设置:
conf_postgresql_shared_buffers = 35% of RAM # min 128kB conf_postgresql_effective_cache_size = 45% of RAM conf_postgresql_work_mem = 512MB # min 64kB
如需设置这些值,请执行以下操作:
- 修改 postgresql.properties 文件:
vi /opt/apigee/customer/application/postgresql.properties
如果该文件不存在,请创建一个。
- 设置上面列出的属性。
- 保存修改。
- 重启 PostgreSQL 数据库:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
系统限制
确保您已在 Cassandra 和消息处理器节点上设置以下系统限制:
- 在 Cassandra 节点上,在
/etc/security/limits.d/90-apigee-edge-limits.conf
中为安装用户设置软和硬 memlock、nofile 和地址空间 (as) 限制(默认值为“apigee”),如下所示:apigee soft memlock unlimited apigee hard memlock unlimited apigee soft nofile 32768 apigee hard nofile 65536 apigee soft as unlimited apigee hard as unlimited
- 在消息处理器节点上,在
/etc/security/limits.d/90-apigee-edge-limits.conf
中将打开文件描述符数量上限设置为 64K,如下所示:apigee soft nofile 32768 apigee hard nofile 65536
如有必要,您可以提高该限制。例如,如果您一次性打开大量临时文件。
jsvc
“jsvc”是使用 API BaaS 的前提条件。安装 API BaaS 时,系统会安装版本 1.0.15-dev。
网络安全服务 (NSS)
网络安全服务 (NSS) 是一组库,支持开发具有安全功能的客户端应用和服务器应用。您应确保已安装 NSS 3.19 或更高版本。
如需查看当前版本,请执行以下操作:
yum info nss
如需更新 NSS,请执行以下操作:
yum update nss
如需了解详情,请参阅 RedHat 的这篇文章。
使用 NSCD(名称服务缓存守护程序)时,在 IPv6 上停用 DNS 查找
如果您已安装并启用 NSCD(名称服务缓存守护程序),消息处理器会进行两次 DNS 查找:一次用于 IPv4,另一次用于 IPv6。使用 NSCD 时,您应该停用 IPv6 上的 DNS 查找。
要在 IPv6 上停用 DNS 查找,请执行以下操作:
- 在每个消息处理器节点上,修改
/etc/nscd.conf
- 设置以下属性:
enable-cache hosts no
在 Google Cloud Platform 上为 RedHat/CentOS 7 停用 IPv6
如果您要在 Google Cloud Platform 上的 RedHat 7 或 CentOS 7 上安装 Edge,则必须在所有 Qpid 节点上停用 IPv6。
有关如何停用 IPv6 的说明,请参阅适用于您的具体操作系统版本的 RedHat 或 CentOS 文档。例如,您可以:
- 在编辑器中打开
/etc/hosts
。 - 在以下一行的列中插入“#”字符,以注释掉该行:
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- 保存文件。
AWS AMI
如果您要在适用于 Red Hat Enterprise Linux 7.x 的 AWS Amazon 机器映像 (AMI) 上安装 Edge,则必须先运行以下命令:
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
工具
安装程序在 EL5 或 EL6 提供的标准版本中使用以下 UNIX 工具。
awk |
expr |
libxslt |
每分钟转数 |
unzip |
basename |
grep |
lua-socket |
rpm2cpio |
useradd |
bash |
hostname |
ls |
sed |
wc |
bc |
id |
net-tools |
sudo |
wget |
curl |
Libaio |
perl(来自 procps) |
tar |
Xerces-C |
Cyrus-Sasl | libdb4 | pgrep(来自 procps) | tr | 美味 |
date |
libdb-cxx |
ps |
uuid |
chkconfig |
dirname | 利比动词 | pwd | uname | |
echo | librdmacm | python |
ntpdate
建议您将服务器的时间同步。如果尚未配置,ntpdate
实用程序可以实现此目的,它验证服务器是否进行了时间同步。您可以使用 yum install ntp
安装该实用程序。这对于复制 OpenLDAP 设置特别有用。请注意,您应将服务器时区设置为世界协调时间 (UTC)。
Openldap 2.4
本地安装需要 OpenLDAP 2.4。如果您的服务器连接到互联网,则 Edge 安装脚本下载并安装 OpenLDAP。如果您的服务器未连接到互联网,则必须确保已安装 OpenLDAP,然后再运行 Edge 安装脚本。在 RHEL/CentOS 上,可以运行 yum install openldap-clients openldap-servers
来安装 OpenLDAP。
对于 13 台主机安装和包含两个数据中心的 12 台主机安装,您需要进行 OpenLDAP 复制,因为有多个节点托管 OpenLDAP。
防火墙和虚拟主机
在 IT 领域,virtual
这一术语经常过载,因此它与用于私有云部署和虚拟主机的 Apigee Edge 有关。需要说明的是,virtual
一词有两个主要用途:
- 虚拟机 (VM):并非必需,但某些部署使用虚拟机技术为其 Apigee 组件创建隔离服务器。虚拟机主机(如物理主机)可以具有网络接口和防火墙。
- 虚拟主机:网络端点,类似于 Apache 虚拟主机。
虚拟机中的路由器可以公开多个虚拟主机(只要这些主机的主机别名或接口端口各不相同)。
就像命名示例一样,单个物理服务器 A
可能正在运行两个虚拟机,分别名为“VM1”和“VM2”。假设“VM1”公开了一个虚拟以太网接口,该接口在虚拟机内命名为“eth0”,该虚拟机或网络 DHCP 服务器为其分配了 IP 地址 111.111.111.111
;然后假设 VM2 公开了一个虚拟以太网接口(同样名为“eth0”),并为它分配一个 IP 地址 111.111.111.222
。
我们可以在这两个虚拟机中的每个虚拟机中运行 Apigee 路由器。路由器会公开虚拟主机端点,如以下假设示例所示:
VM1 中的 Apigee 路由器在其 eth0 接口(具有一些特定的 IP 地址)上公开三个虚拟主机:api.mycompany.com:80
、api.mycompany.com:443
和 test.mycompany.com:80
。
VM2 中的路由器公开 api.mycompany.com:80
(与 VM1 公开的名称和端口相同)。
物理主机的操作系统可能有网络防火墙;如果是这样,防火墙必须配置为将 TCP 流量绑定到虚拟接口(111.111.111.111:{80, 443}
和 111.111.111.222:80
)上的端口。此外,每个虚拟机的操作系统可能会在其 eth0 接口上提供自己的防火墙,这些接口也必须允许端口 80 和 443 流量连接。
基本路径是将 API 调用路由到您可能已部署的不同 API 代理时涉及的第三个组件。如果 API 代理软件包具有不同的基本路径,则可以共享端点。例如,可以将一个基本路径定义为 http://api.mycompany.com:80/
,将另一个基本路径定义为 http://api.mycompany.com:80/salesdemo
。
在这种情况下,您需要某种负载平衡器或 Traffic Director,以在两个 IP 地址(VM1 上的 111.111.111.111
和 VM2 上的 111.111.111.222
)之间拆分 http://api.mycompany.com:80/ 流量。此功能特定于您的特定安装,并由本地网络组进行配置。
基本路径是在部署 API 时设置的。在上面的示例中,您可以为组织 mycompany-org
部署两个 API:mycompany
和 testmycompany
,其虚拟主机的主机别名为 api.mycompany.com
,端口设置为 80
。如果未在部署中声明基本路径,则路由器将不知道将传入请求发送到哪个 API。
但是,如果您使用基准网址 /salesdemo
部署 API testmycompany
,则用户使用 http://api.mycompany.com:80/salesdemo
访问该 API。如果您使用基准网址 /
部署 API mycompany,则您的用户会通过网址 http://api.mycompany.com:80/
访问 API。
边缘端口要求
管理防火墙的需要不仅仅局限于虚拟主机;虚拟机和物理主机防火墙都必须允许组件相互通信所需的端口的流量。
下图显示了各个 Edge 组件的端口要求:
此图表的注意事项:
- * 当您在路由器和消息处理器之间配置 TLS/SSL 时,消息处理器上的端口 8082 只需开放给路由器访问。如果您未在路由器和消息处理器(默认配置)之间配置 TLS/SSL,消息处理器上的端口 8082 仍必须打开才能管理组件,但路由器则不需要访问该组件。
- 以“M”为前缀的端口是用于管理组件的端口,必须在组件上开放,同时必须在组件上开放,以便管理服务器访问。
- 以下组件需要访问管理服务器上的端口 8080:路由器、消息处理器、界面、Postgres 和 Qpid。
- 消息处理器必须打开端口 4528 作为其管理端口。如果您有多个消息处理器,它们必须都能通过端口 4528(在上图中,消息处理器上的端口 4528 上用环形箭头指示)相互访问。如果您有多个数据中心,则必须可从所有数据中心内的所有消息处理器访问该端口。
- 您可以在路由器上打开端口 4527,以供任何消息处理器访问,但这并非强制性要求。否则,您可能会在消息处理器日志文件中看到错误消息。
- 路由器必须开放端口 4527 作为其管理端口。如果您有多个路由器,则它们必须能够通过端口 4527(在上图中,路由器上的端口 4527 的环形箭头指示)上相互访问。
- Edge 界面需要访问 API 代理公开的端口上的路由器,以支持跟踪工具中的发送按钮。
- 管理服务器需要访问 Cassandra 节点上的 JMX 端口。
- 对 JMX 端口的访问权限可以配置为需要用户名/密码。如需了解详情,请参阅如何进行监控。
- 您可以选择为某些可以使用不同端口的连接配置 TLS/SSL 访问。如需了解详情,请参阅 TLS/SSL。
- 如果将两个 Postgres 节点配置为使用主备用复制模式,您必须在每个节点上打开端口 22 进行 SSH 访问。您可以选择打开各个节点上的端口以允许 SSH 访问。
- 您可以将管理服务器和边缘界面配置为通过外部 SMTP 服务器发送电子邮件。如果这样做,您必须确保管理服务器和界面可以访问 SMTP 服务器上所需的端口。对于未使用 TLS 的 SMTP,端口号通常为 25。对于启用了 TLS 的 SMTP,该值通常为 465,但请与您的 SMTP 提供商确认。
下表显示了需要按 Edge 组件在防火墙中打开的端口:
组件 | 端口 | 说明 |
---|---|---|
标准 HTTP 端口 | 80、443 | HTTP 以及用于虚拟主机的任何其他端口 |
管理服务器 | 8080 | 用于 Edge Management API 调用的端口。这些组件需要访问管理服务器上的端口 8080:路由器、消息处理器、界面、Postgres 和 Qpid。 |
1099 | JMX 端口 | |
4526 | 分布式缓存和管理调用 | |
管理界面 | 9000 | 用于通过浏览器访问管理界面的端口 |
消息处理器 | 8998 | 与路由器通信的消息处理器端口 |
8082 |
消息处理器的默认管理端口,必须在组件上打开,以供管理服务器访问。 如果在路由器和消息处理器之间配置 TLS/SSL,路由器会使用它对消息处理器进行健康检查。 |
|
1101 | JMX 端口 | |
4528 | 适用于消息处理器之间的分布式缓存和管理调用,以及来自路由器和管理服务器的通信 | |
路由器 | 8081 | 路由器的默认管理端口,必须在组件上打开,以供管理服务器访问。 |
4527 | 分布式缓存和管理调用 | |
15999 |
健康检查端口。负载平衡器使用此端口来确定路由器是否可用。 如需获取路由器的状态,负载平衡器会向路由器上的端口 15999 发出请求: curl -v http://routerIP:15999/v1/servers/self/reachable 如果路由器可以访问,请求将返回 HTTP 200。 |
|
59001 | 用于由 apigee-validate 实用程序测试 Edge 安装情况的端口。此实用程序需要访问路由器上的端口 59001。如需详细了解端口 59001,请参阅测试安装。 |
|
ZooKeeper | 2181 | 供管理服务器、路由器、消息处理器等其他组件使用 |
2888、3888 | 供 ZooKeeper 在内部用于 ZooKeeper 集群(称为 ZooKeeper 集成学习)通信 | |
Cassandra | 7000、9042、9160 | Apache Cassandra 端口,用于在 Cassandra 节点之间进行通信以及供其他 Edge 组件访问。 |
7199 | JMX 端口。必须处于开放状态,以便管理服务器访问。 | |
Qpid | 5672 | 用于从路由器和消息处理器到 Qpid 服务器的通信 |
8083 | Qpid 服务器上的默认管理端口,必须在组件上打开,以供管理服务器访问。 | |
1102 | JMX 端口 | |
4529 | 分布式缓存和管理调用 | |
Postgres | 5432 | 用于从 Qpid/Management Server 到 Postgres 的通信 |
8084 | Postgres 服务器上的默认管理端口,必须在组件上打开,以供管理服务器访问。 | |
1103 | JMX 端口 | |
4530 | 分布式缓存和管理调用 | |
22 | 如果将两个 Postgres 节点配置为使用主备用复制功能,您必须在每个节点上打开端口 22 进行 SSH 访问。 | |
LDAP | 10389 | OpenLDAP |
SmartDocs | 59002 | Edge 路由器上的端口,用于发送 SmartDocs 页面请求。 |
下表显示了相同的端口(按数字顺序列出),以及来源和目标组成部分:
端口号 | 目的 | 来源组件 | 目标组件 |
---|---|---|---|
virtual_host_port | HTTP 以及用于虚拟主机 API 调用流量的任何其他端口。最常用的端口是 80 和 443;消息路由器可以终止 TLS/SSL 连接。 | 外部客户端(或负载平衡器) | 消息路由器上的监听器 |
1099 至 1103 | JMX 管理 | JMX 客户端 | 管理服务器 (1099) 消息处理器 (1101) Qpid 服务器 (1102) Postgres Server (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 |
5672 |
用于将分析数据从路由器和消息处理器发送到 Qpid |
路由器 消息处理器 |
Qpid 服务器 |
7000 | Cassandra 节点间通信 | Cassandra | 其他 Cassandra 节点 |
7199 | JMX 管理。必须处于开放状态,以便管理服务器在 Cassandra 节点上访问。 | JMX 客户端 | Cassandra |
8080 | Management API 端口 | Management API 客户端 | 管理服务器 |
8081 至 8084 |
组件 API 端口,用于直接向各个组件发出 API 请求。每个组件会打开不同的端口;使用的确切端口取决于配置,但必须在该组件上打开,以供管理服务器访问 |
Management API 客户端 | 路由器 (8081) 消息处理器 (8082) Qpid 服务器 (8083) Postgres Server (8084) |
8998 | 路由器和消息处理器之间的通信 | 路由器 | 消息处理器 |
9000 | 默认边缘管理界面端口 | Browser | 管理界面服务器 |
9042 | CQL 原生传输 | 路由器 消息处理器 管理服务器 |
Cassandra |
9160 | Cassandra Thrift 客户端 | 路由器 消息处理器 管理服务器 |
Cassandra |
10389 | LDAP 端口 | 管理服务器 | OpenLDAP |
15999 | 健康检查端口。负载平衡器使用此端口来确定路由器是否可用。 | 负载均衡器 | 路由器 |
59001 | apigee-validate 实用程序用于测试 Edge 安装情况的端口 |
apigee-validate | 路由器 |
59002 | 发送 SmartDocs 页面请求的路由器端口 | SmartDocs | 路由器 |
消息处理器使专用连接池对 Cassandra 保持打开状态,该连接池配置为永不超时。当消息处理器和 Cassandra 服务器之间有防火墙时,防火墙可能会使连接超时。但是,消息处理器并非用于重新建立与 Cassandra 的连接。
为避免这种情况,Apigee 建议 Cassandra 服务器、消息处理器和路由器位于同一子网,以便在这些组件的部署过程中不涉及防火墙。
如果路由器和消息处理器之间有防火墙,并且设置了空闲 TCP 超时,我们的建议是:
- 在 Linux 操作系统上的 sysctl 设置中设置
net.ipv4.tcp_keepalive_time = 1800
,其中 1800 应低于防火墙空闲 TCP 超时。此设置应使连接保持已建立状态,以免防火墙断开连接。 - 在所有消息处理器上,修改
/opt/apigee/customer/application/message-processor.properties
以添加以下属性。如果该文件不存在,请创建一个。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启消息处理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 在所有路由器上,修改
/opt/apigee/customer/application/router.properties
以添加以下属性。如果该文件不存在,请创建一个。conf_system_cassandra.maxconnecttimeinmillis=-1
- 重启路由器:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
如果您在两个数据中心安装了 12 个主机集群配置,请确保两个数据中心中的节点可以通过如下所示的端口进行通信:
API BaaS 端口要求
如果您选择安装 API BaaS,则需要添加 API BaaS 堆栈和 API BaaS 门户组件。这些组件会使用下图中所示的端口:
此图表的注意事项:
- API BaaS 门户绝不会直接向 BaaS 堆栈节点发出请求。当开发者登录门户时,门户应用会下载到浏览器中。然后,在浏览器中运行的门户应用会向 BaaS 堆栈节点发出请求。
- API BaaS 的生产环境安装在 API BaaS 门户节点和 API BaaS 堆栈节点之间使用负载平衡器。配置门户和进行 BaaS API 调用时,您需要指定负载平衡器(而非堆栈节点)的 IP 地址或 DNS 名称。
- 所有堆栈节点必须开放端口 2551,以便从所有其他堆栈节点访问(在上图中,堆栈节点上的端口 2551 用环形箭头表示)。如果您有多个数据中心,则必须可从所有数据中心的所有堆栈节点访问该端口。
- 您必须将所有 Baas 堆栈节点配置为通过外部 SMTP 服务器发送电子邮件。对于未使用 TLS 的 SMTP,端口号通常为 25。对于启用了 TLS 的 SMTP,其通常为 465,但请与您的 SMTP 提供商确认。
- Cassandra 节点可以专用于 API BaaS,也可以与 Edge 共享。
下表按组件显示了需要在防火墙中打开的默认端口:
组件 | 端口 | 说明 |
---|---|---|
API BaaS 门户 | 9000 | API BaaS 界面的端口 |
API BaaS 堆栈 | 8080 | 接收 API 请求的端口 |
2551 |
用于所有堆栈节点之间通信的端口。必须可供数据容器中的所有其他堆栈节点访问。 如果您有多个数据中心,则必须可从所有数据中心的所有堆栈节点访问该端口。 |
|
ElasticSearch | 9200 至 9400 | 用于与 API BaaS Stack 通信以及在 ElasticSearch 节点之间通信 |
许可
每次安装 Edge 时,都需要从 Apigee 获取唯一的许可文件。安装管理服务器时,您需要提供许可文件的路径,例如 /tmp/license.txt。
安装程序将许可文件复制到 /opt/apigee/customer/conf/license.txt
。
如果许可文件有效,管理服务器会验证过期时间和允许的消息处理器 (MP) 计数。如果任何许可设置已过期,您可以在以下位置找到日志:/opt/apigee/var/log/edge-management-server/logs
。在这种情况下,您可以联系 Apigee Edge 支持团队,了解迁移详情。
如果您还没有许可,请与 Apigee 销售人员联系。