SpringCloud(10)之使用Zookeeper作为注册中心

一、前言

之前一直使用Eureka作为注册中心,后来发现有的公司使用Consul,有的公司使用Zookeeper了,这是什么原因呢?百度后发现Eurkea 2.x不再维护,Eurkea 1.x仍可用于生产环境。不想基于不确定的明天,那么今天就改成别的注册中心吧,比如Zookeeper,以下简称zk。

现在在Windows上安装zk已经相当简单了,在官网下载压缩包,zip、tar都可以,解压缩之后,进入bin目录,执行zkServer.cmd,默认在2181端口开启了服务,很简单吧。

我们可以使用一个叫做zktools的可视化工具,来观察zk的节点:

二、zookeeper服务注册与发现

我们只需要将我们原来的注册中Eureka换成zk就OK了。

但是需要注意的是,我们在调试的需要,需要提前关闭linux的防火墙,要不然两台服务器是不能够通信的。

三、服务提供者进zookeeper

pom文件。

<dependencies>
    <!-- SpringBoot整合Web组件 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
        <groupId>com.woxueit.springcloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>${project.version}</version>
    </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>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
 </dependencies>

其实也不难发现,我们引入的其他的jar都是一样的,唯独不一样的是我们引入了springcloud整合的zk包不再引入eureka的jar包。

application.yml文件

#8004表示注册到zookeeper服务器的支付服务提供者端口号
 server:
  port: 8004
 
 
 #服务别名----注册zookeeper到注册中心名称
 spring:
  application:
    name: cloud-provider-payment
  cloud:
    zookeeper:
      connect-string: 192.168.50.3:2181

主启动   PaymentMain8004

 @SpringBootApplication
 @EnableDiscoveryClient //该注解用于向使用consul或者zookeeper作为注册中心时注册服务
public PaymentZkMain(){

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

controller,这里我们的业务代码就省略掉了,因为我们这里主要是研究zk是如果作为注册中心的。

@RestController
 @Slf4j
 public class PaymentController
 {
    @Value("${server.port}")
    private String serverPort;
 
    @GetMapping(value = "/payment/zk")
    public String paymentzk()
    {
        return "springcloud with zookeeper: "+serverPort+"\t"+ UUID.randomUUID().toString();//UUID这个是流水号,每次点击都不一样(UUID导java.uitl包的)
    }
 }

启动zookeeper ,然后我们登陆上去zk就发现多一个文件节点,文件名称就是我们的服务名 ,这里就不多介绍,主次分明,主要也是玩一下各个技术方案作为服务注册中心,但是目前市场上很少公司会选用zk作为服务注册中心。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值