弹性负载均衡(ELB)中监听器相关操作
引导式阅读
Java
弹性负载均衡(ELB)中监听器相关操作
作者
C***
上架时间
2021-06-24 14:33:50

版本说明

本示例基于华为云SDK V2.0版本开发,最新版本示例正在开发中。

功能介绍

创建负载均衡器后,需要为负载均衡器配置监听器。监听器负责监听负载均衡器上的请求,根据配置流量分配策略,分发流量到后端云服务器处理。本示例带您了解监听器的创建、删除、更改、查询等相关操作。

准备工作

监听器管理

初始化客户端

参数获取可参照准备工作中token认证方式。

String user = "replace-with-your-username"; String password = "replace-with-your-password"; String projectId = "replace-with-your-projectId"; String userDomainId = "replace-with-your-domainId"; String authUrl = "https://iam.example.com/v3"; // endpointUrl OSClientV3 osclient = OSFactory.builderV3().endpoint(authUrl) .credentials(user, password, Identifier.byId(userDomainId)) .scopeToProject(Identifier.byId(projectId)).authenticate();

创建与负载均衡器绑定的监听器

创建所需部分参数

名称 类型 描述
protocolPort integer 监听器的监听端口。如果监听协议为UDP,端口号不支持4789。
clientTlsContainerRef string 监听器使用的CA证书ID。
protocol string 监听器的监听协议。
loadBalancerId string 监听器关联的负载均衡器ID。

代码展示

// Create a listener for Enhanced Loadbalancer ListenerV2 listener = NeutronListenerV2.builder().protocolPort(80).clientTlsContainerRef(clientTlsContainerRef) .protocol(ListenerProtocol.HTTP).loadBalancerId(lb_id).build(); osclient.networking().lbaasV2().listener().create(listener);

说明

  • 1、创建时还可配置其他参数,具体请参考API Explorer
  • 2、protocol参数只支持TCP、UDP、HTTP和TERMINATED_HTTPS。

查询监听器列表

查询监听器列表

// List all listeners osclient.networking().lbaasV2().listener().list();

说明

  • 1、支持条件过滤查询,如根据监听器ID、协议类型、监听端口号、关联的后端云服务器的IP等查询。支持分页查询。具体请参考API Explorer
  • 2、分页查询使用的参数为marker、limit、page_reverse。marker和page_reverse只有和limit一起使用时才会生效,单独使用无效。

查询监听器详情

根据指定ID查询监听器详情

// Query info about a listener String lsnr_id = "*******"; osclient.networking().lbaasV2().listener().get(lsnr_id);

说明:更多信息请参考API Explorer

更新监听器

根据指定ID更新监听器

// Update a listener String clientTlsContainerRefUpdate="******"; ListenerV2Update lsnr_mod = NeutronListenerV2Update.builder().clientTlsContainerRef(clientTlsContainerRefUpdate) .name("lsnr_name_mod").build(); osclient.networking().lbaasV2().listener().update(lsnr_id, lsnr_mod);

说明

  • 1、其他配置项更新请参考API Explorer
  • 2、如果监听器关联的负载均衡器的provisioning status不是ACTIVE,则不能更新该监听器。
  • 3、只有管理员用户才能指定connection_limit的值。
  • 4、default_pool_id有如下限制:
    不能更新为其他监听器的default_pool。
    不能更新为其他监听器的关联的转发策略所使用的pool。
  • 5、default_pool_id对应的后端云服务器组的protocol和监听器的protocol有如下关系:
    监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP。
    监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
    监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。

删除监听器

根据指定ID删除监听器

// Delete a listener osclient.networking().lbaasV2().listener().delete(lsnr_id);

说明

  • 1、删除listener之前必须通过删除后端云服务器组删除与其关联的pool或通过更新监听器将监听器的default_pool_id更新为null,并且通过删除转发策略删除与其关联的l7policy。
  • 2、更多信息请参考API Explorer

参考

更多信息请参考弹性负载均衡 ELB