天天看点

微服务SpringCloud配置Zookeeper服务注册与发现

微服务SpringCloud配置Zookeeper服务注册与发现

提供者

1.新建SpringCloud微服务moudle-providezk-8004

2.pom文件添加以下依赖:

<!-- SpringBoot整合zookeeper客户端 注意版本冲突,出现版本冲突用下面方式修改版本>
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-disvocery</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>
           

3.yml配置文件信息如下

# 表示注册到zookeeper服务器的支付服务提供者端口号
server:
	port: 8004
spring:
	application:
		name: cloud-privider-payment
	cloud:
		zookeeper:
			connect-string: 	192.168.111.144:2181 #zookeeper机器ip地址
           

4.启动类添加注解

// 该注解用于向使用consul或者zookeeper作为注册中心时注册服务
@EnableDiscoveryClient
           

注:zookeeper服务器部署在linux上关闭防火墙以及是否可以ping通

消费者

1.新建SpringCloud微服务moudle-cussumerzk-80

2.pom文件添加以下依赖:

<!-- SpringBoot整合zookeeper客户端 注意版本冲突,出现版本冲突用下面方式修改版本>
<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-disvocery</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>
           

3.yml配置文件信息如下:

# 表示注册到zookeeper服务器的支付服务提供者端口号
server:
	port: 80
spring:
	application:
		name: cloud-consumer-order
	cloud:
		zookeeper:
			connect-string: 	192.168.111.144:2181 #zookeeper机器ip地址
           

4.启动类添加注解

// 该注解用于向使用consul或者zookeeper作为注册中心时注册服务
@EnableDiscoveryClient
           

5.添加配置类调用提供者

@Configuration
public class ApplicationContextConfig{
	@Bean
	public RestTemplate getRestTemplate(){
	return new RestTemplate();
}
}
           

6.新建controller在类中通过RestTemplate 调用提供者

@RestController
public class OrderController{
	public static final string INVOKE_URL = " cloud-privider-payment(提供者微服务名)";
	@Resource
	private RestTemplate  restTemplate;

@GetMapping(value = ""/consumer/payment/zk")
public String pay(){
	string result = restTemplate.getForObject(INVOKE_URL +"/payment",string.class);
	return result;
}
}
           

继续阅读