SpringCloud(Hoxton)--使用zookeeper作为注册中心

落日映苍穹つ 2021-08-28 02:44 509阅读 0赞

cloud-provider-payment8004模拟支付模块

依赖:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <parent>
  4. <artifactId>cloud2020</artifactId>
  5. <groupId>pers.zhang.springcloud</groupId>
  6. <version>1.0-SNAPSHOT</version>
  7. </parent>
  8. <modelVersion>4.0.0</modelVersion>
  9. <artifactId>cloud-provider-payment8004</artifactId>
  10. <dependencies>
  11. <!-- SpringBoot整合Web组件 -->
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-web</artifactId>
  15. </dependency>
  16. <dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
  17. <groupId>pers.zhang.springcloud</groupId>
  18. <artifactId>cloud-api-commons</artifactId>
  19. <version>${project.version}</version>
  20. </dependency>
  21. <!-- SpringBoot整合zookeeper客户端 -->
  22. <dependency>
  23. <groupId>org.springframework.cloud</groupId>
  24. <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
  25. <!--先排除自带的zookeeper3.5.3-->
  26. <exclusions>
  27. <exclusion>
  28. <groupId>org.apache.zookeeper</groupId>
  29. <artifactId>zookeeper</artifactId>
  30. </exclusion>
  31. </exclusions>
  32. </dependency>
  33. <!--添加zookeeper3.4.9版本-->
  34. <dependency>
  35. <groupId>org.apache.zookeeper</groupId>
  36. <artifactId>zookeeper</artifactId>
  37. <version>3.4.9</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework.boot</groupId>
  41. <artifactId>spring-boot-devtools</artifactId>
  42. <scope>runtime</scope>
  43. <optional>true</optional>
  44. </dependency>
  45. <dependency>
  46. <groupId>org.projectlombok</groupId>
  47. <artifactId>lombok</artifactId>
  48. <optional>true</optional>
  49. </dependency>
  50. <dependency>
  51. <groupId>org.springframework.boot</groupId>
  52. <artifactId>spring-boot-starter-test</artifactId>
  53. <scope>test</scope>
  54. </dependency>
  55. </dependencies>
  56. </project>

配置:application.yml

  1. server:
  2. port: 8004
  3. #服务别名:注册zookeeper到注册中心名称
  4. spring:
  5. application:
  6. name: cloud-provider-payment
  7. cloud:
  8. zookeeper:
  9. connect-string: localhost:2181

启动类:

  1. @EnableDiscoveryClient
  2. @SpringBootApplication
  3. public class PaymentMain8004 {
  4. public static void main(String[] args) {
  5. SpringApplication.run(PaymentMain8004.class, args);
  6. }
  7. }

Controller:

  1. @RestController
  2. @Slf4j
  3. public class PaymentController {
  4. @Value("${server.port}")
  5. private String serverPort;
  6. @RequestMapping(value = "/payment/zk")
  7. public String paymentzk(){
  8. return "springcloud with zookeeper:" + serverPort + "\t" + UUID.randomUUID().toString();
  9. }
  10. }

cloud-consumerzk-order80模拟订单模块

依赖:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <parent>
  4. <artifactId>cloud2020</artifactId>
  5. <groupId>pers.zhang.springcloud</groupId>
  6. <version>1.0-SNAPSHOT</version>
  7. </parent>
  8. <modelVersion>4.0.0</modelVersion>
  9. <artifactId>cloud-consumerzk-order80</artifactId>
  10. <dependencies>
  11. <!-- SpringBoot整合Web组件 -->
  12. <dependency>
  13. <groupId>org.springframework.boot</groupId>
  14. <artifactId>spring-boot-starter-web</artifactId>
  15. </dependency>
  16. <!-- SpringBoot整合zookeeper客户端 -->
  17. <dependency>
  18. <groupId>org.springframework.cloud</groupId>
  19. <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
  20. <!--先排除自带的zookeeper-->
  21. <exclusions>
  22. <exclusion>
  23. <groupId>org.apache.zookeeper</groupId>
  24. <artifactId>zookeeper</artifactId>
  25. </exclusion>
  26. </exclusions>
  27. </dependency>
  28. <!--添加zookeeper3.4.9版本-->
  29. <dependency>
  30. <groupId>org.apache.zookeeper</groupId>
  31. <artifactId>zookeeper</artifactId>
  32. <version>3.4.9</version>
  33. </dependency>
  34. <dependency>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-devtools</artifactId>
  37. <scope>runtime</scope>
  38. <optional>true</optional>
  39. </dependency>
  40. <dependency>
  41. <groupId>org.projectlombok</groupId>
  42. <artifactId>lombok</artifactId>
  43. <optional>true</optional>
  44. </dependency>
  45. <dependency>
  46. <groupId>org.springframework.boot</groupId>
  47. <artifactId>spring-boot-starter-test</artifactId>
  48. <scope>test</scope>
  49. </dependency>
  50. </dependencies>
  51. </project>

配置:application.yml

  1. server:
  2. port: 80
  3. spring:
  4. application:
  5. name: cloud-sonsumer-order
  6. cloud:
  7. zookeeper: #注册到zookeeper
  8. connect-string: localhost:2181

配置类:

  1. @Configuration
  2. public class ApplicationContextConfig {
  3. @Bean
  4. @LoadBalanced
  5. public RestTemplate getRestTemplate(){
  6. return new RestTemplate();
  7. }
  8. }

Controller:

  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. public class OrderZKMain80 {
  4. public static void main(String[] args) {
  5. SpringApplication.run(OrderZKMain80.class, args);
  6. }
  7. }

启动类:

  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. public class OrderZKMain80 {
  4. public static void main(String[] args) {
  5. SpringApplication.run(OrderZKMain80.class, args);
  6. }
  7. }

测试

启动zookeeper,然后启动两个微服务:

连接zookeeper,可以看到服务已经注册:
在这里插入图片描述

在80端口调用8004的服务:

访问:http://localhost/consumer/payment/zk
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,509人围观)

还没有评论,来说两句吧...

相关阅读

    相关 注册中心zookeeper

    概念 Zookeeper是一个分布式、可靠的、可扩展的协调服务,为分布式应用提供一致性服务。它是树型结构,能做到集群管理数据,当提供者出现断电等异常停机时,zk能自动删除