0


Zookeeper服务注册与发现

Eureka停止更新了你怎么办?
SpringCloud整合Zookeeper代替Eureka?

官网

现有的关于eureka2.0的开源工作已经停止。作为2.x分支上现有工作存储库的一部分发布的代码库和工件被视为使用风险自负。

Eureka 1.x是Netflix服务发现系统的核心部分,目前仍是一个活跃的项目

Zookeeper安装

  1. 安装 JDK

  1. 拷贝 apache-zookeeper-3.5.7-bin.tar.gz 安装包到 Linux 系统下

  1. 解压到文件 tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz

  1. 移动到module目录

mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7 /opt/module

  1. 配置修改

/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg;

执行mv zoo_sample.cfg zoo.cfg

  1. mkdir zkData

  2. 打开 zoo.cfg 文件,修改 dataDir 路径

vim zoo.cfg #修改如下内容
dataDir=/opt/module/zookeeper-3.5.7/zkData

  1. 启动 Zookeeper

在/root/opt/module/apache-zookeeper-3.5.7-bin/bin 目录下执行

./zkServer.sh start 启动

jps -l 查看进程是否启动

./zkServer.sh status 查看状态

./zkCli.sh 启动客户端
quit 退出客户端
zkServer.sh stop 停止 Zookeeper

创建新支付模块项目

1. 启动zk

在Linux系统上,没有图形化界面,如下启动成功

systemctl stop firewalld 关闭防火墙
systemctl status firewalld 查看防火墙状态

2. 创建新的支付模块

1. 创建模块spring_cloud_payment_8004

2. pom依赖

新增zookeeper pom

<!-- SpringBoot整合zookeeper客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
kartifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>

保持其他支付模块一致

3. 配置文件
#8004表示注册到zookeeper服务器的支付服务提供者端口号
server:
  port: 8004
#服务别名---- 注册zookeeper到注册中心名称
spring:
  application:
    name: cloud-provider-payment
    datasource:
      type: com.alibaba.druid.pool.DruidDataSource
  cloud:
    zookeeper:
      connect-string: 47.105.184.98:2181
4. 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8004 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8004.class,args);
    }
}
5. controller层代码
@RestController
@Slf4j
public class PaymentController {

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

    @GetMapping("/payment/zk")
    public String getZk(){
        return "springcloud with zookeeper: port: "+serverPort+",  "+ UUID.randomUUID().toString();
    }
}
6. zookeeper服务器启动后,连接客服端

电脑强制防火墙关闭,掉不通阿里云服务器 ,建议远程与本地防火墙关闭在进行尝试

创建新的order模块

1. 创建项目

名字: spring_cloud_order_zk_80

2. pom

与其他订单模块一致

3. 配置文件
server:
  port: 80
spring:
  application:
    name: cloud-order-service
  cloud:
  #注册到zookeeper地址
    zookeeper:
      connect-string: 47.105.184.98:2181
4. 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZk80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderZk80.class,args);
    }
}
5. RestTemplate
@Configuration
public class RestTemplateConfig {
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
6. controller
@RestController
@Slf4j
public class Orderzk80Controller {
    public static final String INVOKE_URL = "http://cloud-provider-payment";
    @Resource
    RestTemplate restTemplate;

    @GetMapping("/payment/zk")
    public String getPaymentbyid() {
        log.warn("orderzk80");
        return restTemplate.getForObject(INVOKE_URL + "/payment/zk", String.class);
    }
}

集群版zk注册

只需要修改配置文件

server:
  port: 80
spring:
  application:
    name: cloud-order-service
  cloud:
  #注册到zookeeper地址
    zookeeper:
      connect-string: 47.105.184.98:2181

这个connect-string指定多个zk地址即可

connect-string: 1.2.3.4,2.3.4.5


本文转载自: https://blog.csdn.net/qq_45905724/article/details/136168667
版权归原作者 小涂学编程 所有, 如有侵权,请联系我们删除。

“Zookeeper服务注册与发现”的评论:

还没有评论