SpringCloud 整合 zookeeper 学习

SpringCloud 整合 zookeeper 学习

支付微服务注册zookeeper

  • 创建支付微服务 - cloud-provider-payment8004
  • pom.xml
 	<dependencies>
 		<!--自定义的api-->
        <dependency>
            <groupId>org.huiyuanai</groupId>
            <artifactId>cloud-api-common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <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>
            <exclusions>
                <!--先排除自带的zookeeper3.5.3-->
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--添加zookeeper3.4.9版本-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.9</version>
        </dependency>
        <!--通用依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</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>
  • application.yml
server:
  port: 8004
spring:
  application:
    name: cloud-provider-payment
  cloud:
    zookeeper:
      connect-string: 122.51.223.62:2181
  • 启动类
@SpringBootApplication
@EnableDiscoveryClient // 该注解用于使用consul和zookeeper作为注册中心时注册服务
    public class PaymentMain8004 {
        public static void main(String[] args) {
            SpringApplication.run(PaymentMain8004.class, args);
            System.out.println("PaymentMain8004 启动成功, 。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚");
        }
}
  • 服务接口
@RestController
@Slf4j
public class PaymentController {
    @Value("${server.port}")
    private String serverPort;

    @RequestMapping(value = "/payment/zk")
    public String paymentzk(){
        return "springcloud with zookeeper:" + serverPort + "\t" + UUID.randomUUID().toString();
    }
}

订单服务微服务注册到zookeeper

  • 创建订单微服务 - cloud-consumerzk-order80
  • pom.xml
	 <dependencies>
        <dependency>
            <groupId>org.huiyuanai</groupId>
            <artifactId>cloud-api-common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <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>
            <exclusions>
                <!--先排除自带的zookeeper3.5.3-->
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--添加zookeeper3.4.9版本-->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.9</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</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>
  • application.yml
server:
  port: 80
spring:
  application:
    name: cloud-consumer-order
  cloud:
    zookeeper:
      connect-string: 122.51.223.62:2181
  • 主启动类
@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderZkMain80.class,args);
        System.out.println("OrderZkMain80 启动成功, 。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚");
    }
}
  • RestTemplate & 负载均衡 配置
@Configuration
public class ApplicationContextConfig {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}
  • 订单接口
@RestController
public class OrderZkController {
    private static final String INVOKE_URL = "http://cloud-provider-payment";

    @Autowired
    private RestTemplate restTemplete; // 注入配置类中导入容器中的RestTemplate

    @RequestMapping(value = "/consumer/payment/zk")
    public String paymentInfo(){
        String result = restTemplete.getForObject(INVOKE_URL + "/payment/zk", String.class);
        return result;
    }
}

zookeeper查看服务信息

  • 启动zookeeper服务,进入客户端
./zkServer.sh start
./zkCli.sh
  • 查看命令 — ls
# 查看根节点下信息
[zk: localhost:2181(CONNECTED) 0] ls /

在这里插入图片描述

默认只有一个zookeeper节点,services是注册到zookeeper下的服务

注册到zookeeper下的服务
在这里插入图片描述

  • 获取节点数据和更新信息 — get

在这里插入图片描述

cZxid :创建节点的id
ctime : 节点的创建时间
mZxid :修改节点的id
mtime :修改节点的时间
pZxid :子节点的id
cversion : 子节点的版本
dataVersion : 当前节点数据的版本
aclVersion :权限的版本
ephemeralOwner :判断是否是临时节点
dataLength : 数据的长度
numChildren :子节点的数量

热门文章

暂无图片
编程学习 ·

vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇1】

项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建。 本主题讲述了vue+element-ui JYAdmin 后台管理系统模板-集成方案,从零到一的手写搭建全过程。 该项目不仅是一个持续完善、高效简洁的后台管理系统模板,还是一套企业级后台系统开发集成方案,致力…
暂无图片
编程学习 ·

ASP.NET Core2.0项目实战-003

Views布局(Layouts)视图组件(ViewComponents)分部视图(PartialViews)HTML助手(HtmlHelpers) 页面标签的辅助类Tag助手(TagHelpers)配置全部视图(Global view configutation)视图找的时候如果home里面没有还会找shared文件夹里面的using System; using System.Colle…
暂无图片
编程学习 ·

SQL Server—游标(是什么?声明、打开、检索、关闭、释放)

目录游标是什么?如何创建一个游标?操作游标的四个步骤?如何判断游标的提取状态?关闭游标就可以了为什么还要释放呢?他们有什么区别?游标是什么? 是一种数据访问机制,它允许用户单独的操作数据行,而不是对整个行集进行操作。用户可以通过单独处理每一行逐条手机信息并对…
暂无图片
编程学习 ·

ECharts雷达图详细配置说明

// 指定图表的配置项和数据 var option = {backgroundColor: rgba(204,204,204,0.7 ),// 背景色,默认无背景 rgba(51,255,255,0.7)title: {text: 各教育阶段男女人数统计,link: https://www.xxx.com,target: blank,top: 5%,left: 3%,textStyle: {color: #fff,fontSize: 20,…
暂无图片
编程学习 ·

windows使用小技巧——Windows 10 HEVC扩展要收费怎么办?教你怎么免费下载HEVC扩展

平时我一般都使用potplayer打开视频,但在整理视频的时候mov格式的文件总是不能显示缩略图。如果用windows10自带图片查看器打开时会提示下载HEVC,点击后会要求付7元下载。本来已经准备支付宝了,结果发现要将支付宝账号加入windows账号下。。。算了算了,还是看看有没有别的办…
暂无图片
编程学习 ·

IntelliJ IDEA中使用markdown画流程图

安装 Scene Builder下载安装:https://gluonhq.com/products/scene-builder/ 中 Download Scene Builder for Java 8IntelliJ IDEA -> Preferences -> Languages and Frameworks -> JavaFX 中的 "Path to SceneBuilder" 设置为 "/Applications/SceneBu…
暂无图片
编程学习 ·

【C】猜数字游戏

#include<stdio.h> int main(){int random,N,urname;int count;scanf("%d %d\n", &random, &N);scanf("%d", &urname);//先判断大与小两种情况 for(count=1;urname>0&&count<=N; count++){if(random<urname)printf(&qu…
暂无图片
编程学习 ·

Spring Boot + RabbitMQ 配置参数解释

application.properties配置文件写法#rabbitmq spring.rabbitmq.virtual-host=/ spring.rabbitmq.host=192.168.124.20 spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest spring.rabbitmq.listener.concurrency=10 spring.rabbitmq.l…
暂无图片
编程学习 ·

创新实践记录一

使用UGUI制作开始界面 一、UGUI概述 1.1常用组件 UGUI是从Unity4.6开始被集成到Unity编译器中的官方UI系统,具有灵活,快速和可视化兼容性好的特点。以下为常用的UGUI控件:1.2创建UGUI控件 创建UI控件时,如果没有Canvas和EventSystem系统会自动创建。Canvas画布,是所有UI控…
暂无图片
编程学习 ·

梯度直方图和灰度共生矩阵

下面这三篇文章写的不错:https://blog.csdn.net/guanyuqiu/article/details/53117507https://blog.csdn.net/qq_32892383/article/details/79768684https://blog.csdn.net/qq_32892383/article/details/79779513
暂无图片
编程学习 ·

加速推进新基建,中国联通软件研究院助力广东智造云升级为全国工业平台

加速推进新基建,中国联通软件研究院助力广东智造云升级为全国工业平台发稿时间:2020-07-01 11:260【字体: 大 中 小】6月23日,中国联通智造云全国级工业市场顺利完成上线,6月28日,智造云产品成功在湖北省签约下单,打破了省内地域的限制,实现了省分政企创新业务迈向全国…
暂无图片
编程学习 ·

数据库原理及应用教程陈志泊-第三章课后习题

一、选择题1. B 2. A 3. C 4. B 5. C 6. C7. B 8. D 9. A 10. D 11. C 12. D二、填空题1. 结构化查询语言2. 数据查询、数据定义、数据操纵、数据控制3. 外模式、模式、内模式4. 数据库、事务日志5. NULL/NOT NULL 、 UNIQUE 约束、 PRIMARY KEY 约束、 FOREIGN KEY …
暂无图片
编程学习 ·

比较数组,vector对象和array对象

要了解数组,vector对象及array对象的相似与不同之处,结合以下示例分析: #include <iostream> #include <vector> #include <array>int main() {using namespace std;double a1[4] = {1.2,2.4,3.6,4.8};vector<double> a2(4);a2[0] = 1.0/3.0;a2[1] …
暂无图片
编程学习 ·

自学Django之路---Day4.View,路由规则,反向解析

知识点:locals()可以将局部变量以字典的方式打包点语法 "."访问属性,之前已经多次用到了: {% for student in students %}<li>{{ student.s_name }}</li>{% endfor %}"."访问方法: 在Student类中定义一个方法: class Student(models.Model…
暂无图片
编程学习 ·

springboot中application.yml配置中常用的配置信息

server:port:8001mybatis:config-location:classpath:mybtais/mybatis.cfg.xml #mybatis配置文件所在路径typ-aliases-package:com.auguigu.springcloud.entities #所有Entity别名类所在包mapper-location:- classpath:mybatis/mapper/**/*.xml #mapper映射文件spring:app…
暂无图片
编程学习 ·

第四天:Spark Streaming

Spark Streaming概述 1. Spark Streaming是什么 Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语如:map、reduce、join、window等进行运算。而结果…