zookeeper之注册中心实现集群版

发布时间:2022-08-19 14:30

zookeeper作为注册中心集群版

服务提供者集群

1、建moudle

cloud-providerzk-payment8004

cloud-providerzk-payment8005

cloud-providerzk-payment8006

2、改pom

每个项目的依赖都是相同的

springboot与cloud的版本为

2.2.2.RELEASE
Hoxton.SR1

依赖


    
        org.springframework.boot
        spring-boot-starter-web
    
    
    
        org.springframework.cloud
        spring-cloud-starter-zookeeper-discovery
        
            
            
                org.apache.zookeeper
                zookeeper
            
        
    
    
    
        org.apache.zookeeper
        zookeeper
        3.4.14
    
    
        org.springframework.boot
        spring-boot-starter-actuator
    
    
        org.springframework.boot
        spring-boot-devtools
        runtime
        true
    
    
        org.projectlombok
        lombok
        true
    
    
        org.springframework.boot
        spring-boot-starter-test
        test
    

3、写yml

每一个项目的配置文件都大致相同,只有port不同 8004/8005/8006

server:
  port: 8004

#服务别名 ---注册zookeeper到服务中心
spring:
  application:
    name: cloud-provider-payment
  cloud:
    zookeeper:
      connect-string: 192.168.127.84:2181

4、主启动

新建com.lejia.springcloud包

主启动类 PaymentMain8005.java

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

}

5、业务类

controller.PaymentController.java

@RestController
@RequestMapping("/payment")
@Slf4j
public class PaymentController {

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

	//暴露给用户的接口
    @GetMapping(value="/zk")
    public String paymentzk(){

        return "SpringCloud with zookeeper:"+serverPort+"\t"+ UUID.randomUUID().toString();
    }
}

6、启动

8004 / 8005 / 8006 (笔者这里8006端口被占用了,暂时使用8008)

zookeeper之注册中心实现集群版_第1张图片

7、项目结构图

zookeeper之注册中心实现集群版_第2张图片

服务消费者

1、建model

cloud-consumerzk-order80

2、改pom

   
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.cloud
            spring-cloud-starter-zookeeper-discovery
            
                
                
                    org.apache.zookeeper
                    zookeeper
                
            
        
        
        
            org.apache.zookeeper
            zookeeper
            3.4.9
        
        
            org.springframework.boot
            spring-boot-starter-actuator
        
        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

3、写yml

server:
  port: 80

#服务别名 ---注册zookeeper到服务中心
spring:
  application:
    name: cloud-consumer-order
  cloud:
    zookeeper:
      connect-string: 192.168.127.84:2181

4、主启动

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

5、业务类

配置类

新建config包

新建配置类ApplicationContextConfig.claas

创建RestTemplate对象进行远程服务的调用

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

}

控制层

新建controller包

新建服务消费者方法,并远程调用提供者的服务

@RestController
@Slf4j
@RequestMapping("/consumer")
public class OrderZKController {

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

    @Resource
    private RestTemplate restTemplate;

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

}

6、启动

zookeeper之注册中心实现集群版_第3张图片

7、项目结构图

zookeeper之注册中心实现集群版_第4张图片

测试

http://localhost/consumer/payment/zk

当我们调用消费者服务接口时,成功的访问到了服务端提供的集群服务

zookeeper之注册中心实现集群版_第5张图片

zookeeper之注册中心实现集群版_第6张图片

zookeeper之注册中心实现集群版_第7张图片

对于访问策略这方面,后续待我们学习了ribbon后可以再将其根据具体的情况来设置!

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号