监听器管理
初始化客户端
参数获取可参照准备工作中token认证方式。
Copied!
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。 |
代码展示
Copied!
// 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。
查询监听器列表
查询监听器列表
Copied!
// List all listeners
osclient.networking().lbaasV2().listener().list();
说明
:
- 1、支持条件过滤查询,如根据监听器ID、协议类型、监听端口号、关联的后端云服务器的IP等查询。支持分页查询。具体请参考API Explorer。
- 2、分页查询使用的参数为marker、limit、page_reverse。marker和page_reverse只有和limit一起使用时才会生效,单独使用无效。
查询监听器详情
根据指定ID查询监听器详情
Copied!
// Query info about a listener
String lsnr_id = "*******";
osclient.networking().lbaasV2().listener().get(lsnr_id);
说明
:更多信息请参考API Explorer。
更新监听器
根据指定ID更新监听器
Copied!
// 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删除监听器
Copied!
// Delete a listener
osclient.networking().lbaasV2().listener().delete(lsnr_id);
说明
:
- 1、删除listener之前必须通过删除后端云服务器组删除与其关联的pool或通过更新监听器将监听器的default_pool_id更新为null,并且通过删除转发策略删除与其关联的l7policy。
- 2、更多信息请参考API Explorer。
版本说明
本示例基于华为云SDK V2.0版本开发,最新版本示例正在开发中。
功能介绍
创建负载均衡器后,需要为负载均衡器配置监听器。监听器负责监听负载均衡器上的请求,根据配置流量分配策略,分发流量到后端云服务器处理。本示例带您了解监听器的创建、删除、更改、查询等相关操作。
准备工作
监听器管理
初始化客户端
参数获取可参照准备工作中token认证方式。
创建与负载均衡器绑定的监听器
创建所需部分参数
代码展示
说明
:查询监听器列表
查询监听器列表
说明
:查询监听器详情
根据指定ID查询监听器详情
说明
:更多信息请参考API Explorer。更新监听器
根据指定ID更新监听器
说明
:不能更新为其他监听器的default_pool。
不能更新为其他监听器的关联的转发策略所使用的pool。
监听器的protocol为TCP时,后端云服务器组的protocol必须为TCP。
监听器的protocol为UDP时,后端云服务器组的protocol必须为UDP。
监听器的protocol为HTTP或TERMINATED_HTTPS时,后端云服务器组的protocol必须为HTTP。
删除监听器
根据指定ID删除监听器
说明
:参考
更多信息请参考弹性负载均衡 ELB。