安装
docker 安装zookeeper
docker pull zookeeper
docker run -d --name zookeeper -p 2181:2181 id
使用
生产者向注册中心注册进去。
pom依赖
<!-- SpringBoot整合zookeeper客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--先排除自带的zookeeper3.5.3-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加zookeeper3.4.9版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</dependency>
yml配置文件
#8004表示注册到zookeeper服务器的支付服务提供者端口号
server:
port: 8004
#服务别名----注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
connect-string: 服务器ip地址:2181
启动类加上@EnableDiscoveryClient
注解
@SpringBootApplication
@EnableDiscoveryClient
public class Payment8004 {
public static void main(String[] args) {
SpringApplication.run(Payment8004.class, args);
}
}
业务类
@Controller
@ResponseBody
public class paymentController {
@GetMapping(value = "test")
public String test(){
return "这里是tet8004";
}
}
然后是消费者
注册进去和上面一样, 这里使用restTemplate调用, 地址直接用注册进zookeeper的地址
@RestController
public class TestController {
public static final String INVOKE_URL = "http://cloud-provider-payment";
@Resource
private RestTemplate restTemplate;
@GetMapping(value = "/test")
public String paymentInfo()
{
String result = restTemplate.getForObject(INVOKE_URL+"/test",String.class);
return result;
}
}
访问http://localhost/test
结果