SpringCloud04-Consul

SpringCloud04-Consul

1.Consul

  1. Consul是一套开源的分布式服务发现和配置管理系统,由HashiCorp 公司用Go语言开发。
  2. Consul提供服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

2.Consul下载、安装和运行。

  1. 下载地址。https://www.consul.io/downloads
  2. 官方文档地址。https://learn.hashicorp.com/tutorials/consul/get-started-install
  3. SpringCloud社区地址。https://docs.spring.io/spring-cloud-consul/docs/current/reference/html/
  4. 下载后直接解压,得到exe文件。
  5. 在exe目录运行consul --version,查看版本信息。
  6. exe目录运行,consul agent -dev,开发模式启动。
  7. 运行完成访问地址,http://localhost:8500/

3.创建Consul微服务客户端cloud-consul-provider-payment8006

  1. pom.xml,其他依赖省略。
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
  1. yml
server:
  port: 8006

spring:
  application:
    name: cloud-provider-payment
  cloud:
    consul:
      host: 127.0.0.1
      port: 8500
      discovery:
        service-name: ${spring.application.name}
  1. Main
@EnableDiscoveryClient
@SpringBootApplication
public class CloudConsulProviderPayment8006Main {

    public static void main(String[] args) {
        SpringApplication.run(CloudConsulProviderPayment8006Main.class, args);
    }
}
  1. 其他业务类省略。

4.创建Consul微服务客户端cloud-consul-consumer-order80

  1. pom.xml、yml、Main、业务类省略。
  2. 80通过RestTemplate+LoadBalance调用8006。
  3. 说明,spring-cloud-starter-consul-discovery默认有spring-cloud-starter-loadbalance

5.CAP理论

  1. C,一致性;A,可用性;P,分区容错性。
  2. CAP理论说明了,一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求。
    1. CA,单点集群,满足—致性,可用性的系统,通常在可扩展性上不太强大。
    2. CP,满足一致性,分区容忍必的系统,通常性能不是特别高。
    3. AP,满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
  3. 对于分布式系统,一般情况下P必须满足。所以一个分布式系统,一般不是AP就是CP。

6.Eureka、Zookeeper和Consul的区别

组件名 语言CAP 服务健康检查 对外暴露接口 Spring Cloud集成
Eureka Java AP 可配支持 HTTP
Consul Go CP 支持 HTTP/DNS
Zookeeper Java CP 支持客户端 已集成
  1. Eureka的AP主要体现在自我保护机制中,15分钟内有85%的Client没有发送心跳,就进入自我保护模式,同时不会剔除这些没有发送心跳的Client。破坏了一致性的规则来保证高可用。
posted @ 2021-10-07 19:52  行稳致远方  阅读(11)  评论(0)    收藏  举报