springboot_cousumer_写给自己参考的

pom.xml
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-x-discovery</artifactId>
    <version>2.12.0</version>
</dependency>
-----------------------------

具体的代码如下:
 

package com.qbsea.myspringbootb.modules.client;

import java.util.Collection;

import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.framework.CuratorFrameworkFactory;
import org.apache.curator.retry.RetryOneTime;
import org.apache.curator.x.discovery.ServiceDiscovery;
import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
import org.apache.curator.x.discovery.ServiceInstance;
import org.springframework.web.client.RestTemplate;

public class Consumer {
	public static void main(String[] args) throws Exception {
		//连接zk信息
		CuratorFramework client = CuratorFrameworkFactory.newClient("10.17.5.34:2181", new RetryOneTime(1000));//参数2代表重试的策略
		client.start();
		client.blockUntilConnected();//先启动 直到他连上为止
		//服务发现关联client的zk
		ServiceDiscovery<Object> serviceDiscovery = ServiceDiscoveryBuilder
								.builder(Object.class)
								.client(client)
								.basePath("/soa")
								.build();
		Collection<ServiceInstance<Object>> list= serviceDiscovery.queryForInstances("product");
		StringBuilder baseUrl = new StringBuilder();
		baseUrl.append("http://");
		System.out.println(list.size());
		list.stream().forEach(item ->{
			System.out.println(item.getAddress());
			System.out.println(item.getPort());
			baseUrl.append(item.getAddress());
			baseUrl.append(":");
			baseUrl.append(item.getPort());
		});
		
		RestTemplate rt = new RestTemplate();
		String body = rt.getForObject(baseUrl+"/mycontroller/product/userId",String.class);
		System.out.println(body);
	}
}

猜你喜欢

转载自blog.csdn.net/maqingbin8888/article/details/81948428