本文介绍当您单独部署Kafka集群时,如何跨集群访问Kafka服务。

背景信息

跨集群访问Kafka场景分为两种:
  • 阿里云内网环境访问E-MapReduce Kafka集群。
  • 公网环境访问E-MapReduce Kafka集群。

EMR-3.11.x及后续版本

  • 阿里云内网访问Kafka

    直接使用Kafka集群节点的内网IP访问即可,内网访问Kafka请使用9092端口。

    访问Kafka前请保证网络互通,VPC访问VPC的配置请参见配置VPC到VPC连接

  • 公网环境访问Kafka

    Kafka集群的Core节点默认无法通过公网访问,所以如果您需要公网环境访问Kafka集群。

    Kafka集群部署在VPC网络环境,有两种方式:
    • 集群Core节点挂载弹性公网IP:
      1. 在E-MapReduce集群管理页面,单击对应集群操作栏中的详情
      2. 集群基础信息页面,单击右上角的网络管理 > 挂载公网
      3. 集群基础信息页面的网络信息区域,根据安全组ID去查找并配置安全组规则,具体请参见添加安全组规则
      4. 集群基础信息页面,单击页面右上角的实例状态管理 > 同步主机信息
      5. 在左侧导航栏,单击集群服务 > Kafka。单击配置页签,在服务配置中,修改kafka.public-access.enabletrue
      6. 生效配置并重启Kafka服务。
      7. 公网环境使用Kafka集群节点的EIP访问9093端口。
    • 部署高速通道打通内网和公网网络,详情请参见高速通道

EMR-3.11.x之前版本

  • 阿里云内网中访问Kafka
    您需要在Master主机上配置Kafka集群节点的Host信息。示例如下。
    /etc/hosts
    # kafka cluster
    10.0.1.23 emr-header-1.cluster-48742
    10.0.1.24 emr-worker-1.cluster-48742
    10.0.1.25 emr-worker-2.cluster-48742
    10.0.1.26 emr-worker-3.cluster-48742
    注意 请在Client端的主机上配置Kafka集群节点的 长域名,否则访问不到Kafka服务。
  • 公网环境访问Kafka
    因为Kafka集群的Core节点默认无法通过公网访问,所以当您需要在公网环境访问Kafka集群时,需要执行以下操作:
    1. Kafka集群和公网主机网络互通。
      Kafka集群部署在VPC网络环境,有两种方式:
      • 集群Core节点挂载弹性公网IP。
      • 部署高速通道打通内网和公网网络,详情请参见高速通道
    2. VPC控制台VPC 控制台申请EIP,根据您Kafka集群Core节点个数购买相应的EIP。
    3. 根据安全组ID查找并配置安全组规则,详情请参见添加安全组规则
    4. 修改Kafka集群配置项的listeners.address.principalHOST,并重启Kafka集群。
    5. 配置本地客户端主机的hosts文件。