SpringCloud-Zookeeper

SpringCloud-Zookeeper

_

安装

docker pull zookeeper

docker run -d -p 2181:2181 --name zk zookeeper

服务提供者

创建module

cloud-provider-payment8004
cloud-provider-payment8005

依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--springboot整合zookeeper客户端-->
        <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>
        </dependency>

配置文件

server:
  port: 8005

spring:
  application:
    name: cloud-provider-payment

  cloud:
    zookeeper:
	#zokeeper地址与端口
      connect-string: xx.xx.xx.xx:2181

controller

@RestController
public class PaymentController {

    @Value("${server.port}")
    private String port;

    @GetMapping("/payment/zk")
    public String payment(){
        return "springcloud with zookeeper:"+port+"\t"+ UUID.randomUUID().toString();
    }
}

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8005 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8005.class,args);
    }
}

服务消费者

创建module

cloud-consymerzk-order80

依赖

        <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>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

配置文件

server:
  port: 80

spring:
  application:
    name: cloud-consumer-order

  cloud:
    zookeeper:
      connect-string: xx.xx.xx.xx:2181

config

@Configuration
public class ApplicationContextConfig {

    /**
     *使用@LoadBalanced注解赋予RestTemplate负载均衡的能力
     */
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}

controller

@RestController
public class OrderZkController {

    @Resource
    private RestTemplate restTemplate;

    private static final String INVOKE_URL="http://cloud-provider-payment";

    @GetMapping("/consumer/payment/zk")
    public String paymentInfo(){
        return restTemplate.getForObject(INVOKE_URL+"/payment/zk",String.class);
    }

}

启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderZkMain80.class,args);
    }
}

SpringCloud-Eureka 2021-04-29
GIt 2021-04-29

评论区