前言
本篇博客主要是分享,springcloud中服务A是如何注册到zookeeper上的 ,叫大家知道zookeeper中,进行服务注册,实际上创建了一个znode节点,该节点存储了该服务的IP、端口、调用方式(协议、序列化方式)等。下面是demo演示
Demo
修改POM文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.zcw</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
创建YML
server:
port: 9087
spring:
application:
name: cloud-consumer-order
#注册到zookeeper地址
cloud:
zookeeper:
connect-string: 192.168.21.128:2181
修改主启动类
package com.zcw.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @ClassName : OrderZKApplication
* @Description :
* @Author : Zhaocunwei
* @Date: 2020-05-13 20:29
*/
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZKApplication {
public static void main(String[] args) {
SpringApplication.run(OrderZKApplication.class,args);
}
}
创建配置类
package com.zcw.springcloud.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
/**
* @ClassName : ApplicationContext
* @Description :
* @Author : Zhaocunwei
* @Date: 2020-05-14 09:48
*/
@Configuration
public class ApplicationContext {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
创建Controller层
添加zookeeper服务器上注册的实例:
package com.zcw.springcloud.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
/**
* @ClassName : OrderZKController
* @Description :
* @Author : Zhaocunwei
* @Date: 2020-05-14 09:52
*/
@RestController
@Slf4j
public class OrderZKController {
public static final String INVOKE_URL="http://cloud-provider-payment";
@Resource
private RestTemplate restTemplate;
@GetMapping(value="/consumer/payment/zk")
public String paymentInfo(){
String result =restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);
return result;
}
}
测试
-
启动服务
-
登录zookeeper服务器,我们查看是否注册上
通过上图发现,我们的两个实例,已经都注册到zookeeper上了。 -
通过浏览器地址进行访问 --展示服务提供者
-
服务使用者,通过浏览器进行访问
小结
到了尾声,我们本篇博客主要是向大家展示了,我们如何使用zookeeper来实现服务的注册与发现,希望通过简单的小demo,使大家知道,怎么进行注册,Thanks♪(・ω・)ノ