SpringCloud 集成 zookeeper 学习

    技术2022-07-11  103

    文章目录

    SpringCloud 集成 zookeeper 学习代码地址支付微服务注册zookeeper订单服务微服务注册到zookeeperzookeeper查看服务信息其他链接

    SpringCloud 集成 zookeeper 学习

    代码地址

    https://gitee.com/xueruiquan0613/cloud2020

    支付微服务注册zookeeper

    创建支付微服务 - cloud-provider-payment8004pom.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-order80pom.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 :子节点的数量

    其他链接

    Eureka Consul zookeeper 三个注册中心异同:https://blog.csdn.net/qq_37040886/article/details/106844386SpringCloud 整合 Eureka 学习:https://blog.csdn.net/qq_37040886/article/details/107014433SpringCloud 整合 Consul 学习:https://blog.csdn.net/qq_37040886/article/details/106844216
    Processed: 0.012, SQL: 9