在弹性负载均衡(ELB)中配置后端云服务器
引导式阅读
Java
在弹性负载均衡(ELB)中配置后端云服务器
作者
C***
上架时间
2021-07-02 08:06:49

版本说明

本示例基于华为云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();

创建后端云服务器

为某个后端云服务器组添加后端云服务器

创建所需部分参数

名称 类型 描述
address string 后端云服务器的对应的IP地址,这个IP必须在subnet_id字段的子网网段中。例如:192.168.3.11。只能指定为主网卡的IP。
subnetId string 后端云服务器所在的子网ID。该子网和后端云服务器关联的负载均衡器的子网必须在同一VPC下。只支持指定IPv4的子网ID。暂不支持IPv6。
protocolPort integer 后端端口和协议号。
pool_id string 后端云服务器组id。

代码展示

// Create a member String subnet_id = "******"; String pool_id = "******"; String mem_ip = "******"; MemberV2 member = NeutronMemberV2.builder().address(mem_ip).subnetId(subnet_id).protocolPort(80).build(); osclient.networking().lbaasV2().lbPool().createMember(pool_id, member);

说明

  • 1、创建时还可配置其他参数,如后端云服务器名称、权重,具体请参考API Explorer
  • 2、属于一个后端云服务器组的两个后端云服务器不能有相同的address和protocol_port。
  • 3、创建后端云服务器时指定的子网必须和负载均衡器的子网处在同一个VPC下。

查询后端云服务器列表

查询指定后端云服务器组的后端云服务器

// List all members osclient.networking().lbaasV2().lbPool().listMembers(pool_id);

说明

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

查询后端云服务器详情

根据指定ID查询后端云服务器详情

// Query info about a member String mem_id = "******"; osclient.networking().lbaasV2().lbPool().getMember(pool_id, mem_id);

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

更新后端云服务器

根据指定ID更新后端云服务器

// Update a member MemberV2Update member_mod = NeutronMemberV2Update.builder().weight(2).build(); osclient.networking().lbaasV2().lbPool().updateMember(pool_id, mem_id, member_mod);

说明

  • 1、更新后端云服务器名称等请参考API Explorer
  • 2、如果后端云服务器绑定的负载均衡器的provisioning status不是ACTIVE,则不能更新该后端云服务器。

删除后端云服务器

删除指定ID的后端云服务器

// Delete a member osclient.networking().lbaasV2().lbPool().deleteMember(pool_id, mem_id);

说明:删除后端云服务器时,不会再建立新的连接,但是原本建立在这个后端云服务器上的长连接还会保持。更多信息请参考API Explorer

参考

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