《springcloud学习》八 Springcloud整合zookeeper作为注册中心

目录

1 描述

            1.1  疑问

            1.2准备

2.zk代码

          2.1zookeeper下载            

              2.2父项目依赖

             2.3  pom.xml

              2.4  application.yml

                2.5  controller

                2.6 启动类

             2.7效果


1 描述

            1.1  疑问

                   为什么要采用zookeeper作为注册中心?

                   那是因为eurake2.0开始,就闭源勒,当然,注册中心闭源,对我们开发来说,影响不大

                  zk是什么节点类型?临时或者持久?

                  临时节点。服务一关闭,过一段时间就会自己删除。

            1.2准备

                    下载:https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip 

                     方便查看zk的内容

《springcloud学习》八 Springcloud整合zookeeper作为注册中心_第1张图片

2.zk代码

          2.1zookeeper下载            

zookeeper官网下载地址

《springcloud学习》八 Springcloud整合zookeeper作为注册中心_第2张图片

              2.2父项目依赖

                   pom.xml



    4.0.0

    
    org.springframework.boot
    spring-boot-starter-parent
    2.0.4.RELEASE
     


    com.fqyd
    springcloud
    1.0-SNAPSHOT

    
        UTF-8
        UTF-8
        1.8
        Finchley.RELEASE
    
    
        springcloud_eureka
        springcloud_eureka_ha
        springcloud_product
        springcloud_product_member
        springcloud_consumer
        springcloud_zk_member
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

             2.3  pom.xml



    4.0.0
    
        com.fqyd
        springcloud
        1.0-SNAPSHOT
        ../pom.xml
    
    com.fqyd
    springcloud_zk_member
    0.0.1-SNAPSHOT
    springcloud_zk_member
    Demo project for Spring Boot

    
        UTF-8
        UTF-8
        1.8
    

    
        
        
            org.springframework.cloud
            spring-cloud-starter-zookeeper-discovery
        

        
        
            org.apache.zookeeper
            zookeeper
            3.4.13
            
                
                    org.slf4j
                    slf4j-log4j12
                
                
                    log4j
                    log4j
                
            
        
    

注意这里导入的zk的版本,应该与zk服务的版本一样,我之前只导入了spring-cloud-starter-zookeeper-discovery依赖,实际上他对应的版本是4.0以上的,为了跟服务器的zk保持一致,我们应该明确版本 

              2.4  application.yml

###会员服务的端口号
server:
  port: 8002
###服务别名----服务注册到注册中心名称
spring:
  application:
    name: zk-member
  cloud:
    zookeeper:
      #注册到zk的地址
      connect-string: 127.0.0.1:2181

                2.5  controller

package com.fqyd.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Description:
 * Author: wude
 * Date:  2019/7/10 16:44
 * Modified By:
 */
@RestController
public class MeberApiController {
    @Value("${server.port}")
    private String port;
    @RequestMapping("getMember")
    public  String getMember(){
        return "this is member!端口号为:"+port;
    }
}

                2.6 启动类

package com.fqyd;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient   //如果服务注册是consul或者zk,可以使用该注解
public class SpringcloudZkMemberApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudZkMemberApplication.class, args);
    }

}

             2.7效果

这里的zk-member就是我服务器指定的服务名

 《springcloud学习》八 Springcloud整合zookeeper作为注册中心_第3张图片

如果我强制关闭zk-member服务,会出现什么问题?

强制关闭zk-member服务后,该页面还是可以查看到该服务器的一些信息,需要等待一段时间左右,才会清理该服务的信息,这是因为zk,需要间隔一段时间,给zk-member包,也就是我们所说的心跳,这也是我博客开头所说的zk是临时节点,而不是永久节点,服务一关闭,他对应的信息也会消失。

《springcloud学习》八 Springcloud整合zookeeper作为注册中心_第4张图片

 

 《springcloud学习》八 Springcloud整合zookeeper作为注册中心_第5张图片

 

 

 

{
	"name": "zk-member",
	"id": "506b477c-99ef-47b2-9ff8-cbf02e20bcfd",
	"address": "DESKTOP-8S3CENH",
	"port": 8002,
	"sslPort": null,
	"payload": {
		"@class": "org.springframework.cloud.zookeeper.discovery.ZookeeperInstance",
		"id": "application-1",
		"name": "zk-member",
		"metadata": {}
	},
	"registrationTimeUTC": 1563779355524,
	"serviceType": "DYNAMIC",
	"uriSpec": {
		"parts": [{
			"value": "scheme",
			"variable": true
		}, {
			"value": "://",
			"variable": false
		}, {
			"value": "address",
			"variable": true
		}, {
			"value": ":",
			"variable": false
		}, {
			"value": "port",
			"variable": true
		}]
	}
}

 

你可能感兴趣的:(#)