栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud 之 Consul服务注册与发现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud 之 Consul服务注册与发现

Consul服务注册与发现
  • Consul简介
  • 安装并运行Consul
  • 服务提供者
  • 服务消费者
  • 三个注册中心异同点
    文章目录
    • Consul服务注册与发现
      • Consul简介
      • 安装并运行Consul
      • 服务提供者
      • 服务消费者
      • 三个注册中心异同点
        • CAP

Consul简介

功能:

  • 服务发现
  • 健康检测
  • KV存储
  • 多数据中心
  • 可视化Web界面
安装并运行Consul
  1. 官网下载并解压
  2. 使用开发者模式启动,cmd窗口进入软件路径运行 consul agent-dev
  3. 访问Consul的首页:http://localhost:8500
服务提供者
  1. 新建Module支付服务 provider8006

  2. 改pom

    新添consul依赖:

    
                org.springframework.cloud
                spring-cloud-starter-consul-discovery
                2.2.1.RELEASE
            
    
  3. 写配置

    server.port=8006
    
    spring.application.name=consul-provider-payment
    #consul注册中心地址
    spring.cloud.consul.host=localhost
    spring.cloud.consul.port=8500
    #hostname:127.0.0.1
    spring.cloud.consul.discovery.service-name=${spring.application.name}
    
  4. 主启动类

    主启动类上添加 @EnableDiscoveryClient 注解

  5. 业务类controller

    @RestController
    public class PaymentConsulController {
    
        @Value("${server.port}")
        private String serverPort;
    
        @RequestMapping("/payment/consul")
        public String paymentConsul(){
            return "spring cloud with consul:"+serverPort+"t"+ UUID.randomUUID().toString();
        }
    }
    
  6. 验证测试

    启动主启动类,查看consul后台界面,显示服务提供者注册进consul:

服务消费者
  1. 新建module,消费服务order80 cloud-consumerConsul-order80

  2. 改pom

  3. 写配置

  4. 主启动类

  5. 配置Bean

    新建配置类:

    @Configuration
    public class ApplicationContextConfig {
    
        @Bean
        @LoadBalanced //赋予了RestTemplate负载均衡的能力
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }
    
  6. Controller

    @RestController
    public class OrderConsulController {
    
        public static final String INVOKE_URL = "http://consul-provider-payment";
    
        @Autowired
        private RestTemplate restTemplate;
    
        @RequestMapping("/consumer/consul/")
        public String paymentInfo(){
            return restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);
        }
    }
    
  7. 测试

    查看consul后台界面:

三个注册中心异同点

CAP
  • C:Consisitency(强一致性)
  • A:Availability(可用性)
  • P:Partition tolerance(分区容错性)
  • CAP理论关注粒度是数据,而不是整体系统设计的策略

AP(Eureka)

CP(Zookeeper,Consul)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878456.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号