
# 配置Windows通过EIP访问集群Kafka
#### 操作场景
该章节通过指导用户配置集群绑定EIP，并配置Kafka文件的方法，方便用户可以在本地对样例文件进行编译。
#### 操作步骤
1. 为集群的每个节点申请弹性公网IP，并将本地Windows的hosts文件添加所有节点的公网IP对应主机域名的组合（注意如果主机名中出现大写字母要改成小写）。 
   1. 在虚拟私有云管理控制台，申请弹性公网IP（集群有几个节点就买几个），并分别单击MRS集群的节点名称，在节点的"弹性公网IP"页面绑定弹性公网IP。 具体操作请参见"虚拟私有云 \> 用户指南 \> 弹性公网IP \> 为弹性云服务器申请和绑定弹性公网IP"。
      
   
   2. 记录公网IP和私网IP的对应关系将hosts文件中的私网IP改为对应的公网IP。
   
   
   图1配置hosts文件   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001806117597.png "点击放大")
   
   
2. 将krb5.conf文件中的IP地址修改为对应IP的主机名称。
3. 配置集群安全组规则。 
   1. 在集群"概览"界面，选择"添加安全组规则 \> 管理安全组规则"。
      图2管理安全组规则   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299211773.png "点击放大") 
   
   2. 在"入方向规则"页签，选择"添加规则"，在"添加入方向规则"窗口配置Windows的IP和21007、21730TCP、21731TCP/UDP、21732TCP/UDP端口。
      图3添加入方向规则   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299092321.png "点击放大") 
   
   
   
   
4. 在Manager界面选择"集群 \> 服务 \> Kafka \> 配置 \> 全部配置"，搜索"kafka.config.expandor"，并添加参数名为"advertised.listeners"，值为"SASL_PLAINTEXT://:21007,SASL_SSL://:21009,TRACE://:21013"，修改配置保存后重启Kafka集群。 
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果当前集群为MRS 3.2.0-LTS.1，执行该步骤无法通过EIP访问Kafka时，可以参考如下操作进行处理：
   1. 登录到FusionInsight Manager页面，选择"集群 \> 服务 \> Kafka \> 实例"，勾选所有Broker实例，选择"更多 \> 停止实例"验证管理员密码后停止所有Broker实例。 (该操作对业务有影响，请在业务低峰期操作)
   
   2. 以**root** 用户**分别** 登录到Broker节点后台，修改"server.properties"配置。
      **vi ${BIGDATA_HOME}/FusionInsight_HD_\*/\*_\*_Broker/etc/server.properties**
      - 将"host.name"修改为当前登录Broker节点的主机名称。
      
      - 将"listeners"及"advertised.listeners"参数值修改为"EXTERNAL_PLAINTEXT://*{主机名称}:{port}* "。其中*port*需要配置为1024-65535范围内未被占用的端口。
       
   
   3. 登录到FusionInsight Manager页面，选择"集群 \> 服务 \> Kafka \> 实例"，勾选所有Broker实例，单击"启动实例"。
   
   4. 给MRS服务集群的Broker节点分别绑定EIP。
   
   5. 在Windows通过已配置的Broker节点EIP地址和端口连接到Kafka集群并调试代码。
    
   
   
5. 运行样例代码前，修改样例代码中Kafka的连接串为hostname1:21007, hostname2:21007, hostname3:21007；修改代码中的域名；修改"用户自己申请的机机账号名称、keytab文件名称"。 
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   用户可登录FusionInsight Manager，选择"系统 \> 权限 \> 域和互信"，查看"本端域"参数，即为当前系统域名。
   
   
 
