ZkServiceDiscovery.java 920 字节
Newer Older
1 2
package github.javaguide.registry;

3
import github.javaguide.utils.zk.CuratorUtils;
4
import lombok.extern.slf4j.Slf4j;
5 6 7 8 9 10 11 12 13

import java.net.InetSocketAddress;

/**
 * 基于 zookeeper 实现服务发现
 *
 * @author shuang.kou
 * @createTime 2020年06月01日 15:16:00
 */
14
@Slf4j
15 16 17 18
public class ZkServiceDiscovery implements ServiceDiscovery {

    @Override
    public InetSocketAddress lookupService(String serviceName) {
19
        // TODO(shuang.kou):feat: 负载均衡
20
        // 这里直接去了第一个找到的服务地址,eg:127.0.0.1:9999
21
        String serviceAddress = CuratorUtils.getChildrenNodes(serviceName).get(0);
S
shuang.kou 已提交
22
        log.info("成功找到服务地址:[{}]", serviceAddress);
23 24 25 26
        String[] socketAddressArray = serviceAddress.split(":");
        String host = socketAddressArray[0];
        int port = Integer.parseInt(socketAddressArray[1]);
        return new InetSocketAddress(host, port);
27 28
    }
}