史上最全 SpringCloud入门教程,从零开始带你深入♂学习(五)——consul服务注册中心

33 篇文章 3 订阅
24 篇文章 22 订阅

SpringCloud(五)——consul服务注册中心

consul简介

consul是一个可以提供服务发现,健康检查,多数据中心,Key/Value存储等功能的分布式服务框架,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,使用起来也较为简单。Consul用Golang实现,因此具有天然可移植性(支持Linux、Windows和Mac OS X);安装包仅包含一个可执行文件,方便部署。

consul安装和使用

领取资料

1.下载consul https://www.consul.io/downloads

image

2、直接解压到安装目录(尽量解压到全英文名字的目录)

3、用cmd命令行进入到consul安装目录输入consul agent -dev打开consul

image

image

4、访问consul的web服务端口 http://localhost:8500 ,默认端口是8500

领取资料
image

consul服务客户端开发

1、新建一个consuk客户端模块,添加对应依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--consul客户端依赖-->
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-consul-discovery -->
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<!--健康检查依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2、新建application.yaml配置文件

领取资料

server:
  port: 8082
spring:
  application:
    name: CONSULCLIENT #指定服务名称
  cloud:
    consul:
      host: localhost:8500     #consul server服务注册地址
      discovery:
        #指定注册当前服务的服务名称 默认值为${spring.application.name}
        service-name: AAA

领取资料

3、编写主启动类

package com.study.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient //作用:通用服务注册客户端注解 可以对consulClient zookeeperClient eurekaClient都生效
public class Consul_8082 {
    public static void main(String[] args) {
        SpringApplication.run(Consul_8082.class,args);
    }
}

4、启动测试

启动consulServer
image
领取资料
启动consul客户端,访问localhost:8500 进入sonsul注册中心页面
image

出现这种情况是因为 consulServer 检测所有客户端心跳,但是发送心跳时client必须给予响应才能使该客户端正常使用,在现有的客户端中我们并没有引入健康检查依赖,所以导致健康检查始终不能通过,所以导致不能使用

注意:Consul没有自我保护机制

不同注册中心区别

# 1.CAP定理
- CAP定理:CAP定理又称CAP原则,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。
	`一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
	`可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
	`分区容忍性(P),就是高可用性,一个节点崩了,并不影响其它的节点(100个节点,挂了几个,不影响服务,越多机器越好)
[领取资料](https://jq.qq.com/?_wv=1027&k=ak26GrpX)
# 2.Eureka特点
- Eureka中没有使用任何的数据强一致性算法保证不同集群间的Server的数据一致,仅通过数据拷贝的方式争取注册中心数据的最终一致性,虽然放弃数据强一致性但是换来了Server的可用性,降低了注册的代价,提高了集群运行的健壮性。

# 3.Consul特点
- 基于Raft算法,Consul提供强一致性的注册中心服务,但是由于Leader节点承担了所有的处理工作,势必加大了注册和发现的代价,降低了服务的可用性。通过Gossip协议,Consul可以很好地监控Consul集群的运行,同时可以方便通知各类事件,如Leader选择发生、Server地址变更等。

# 4.zookeeper特点
- 基于Zab协议,Zookeeper可以用于构建具备数据强一致性的服务注册与发现中心,而与此相对地牺牲了服务的可用性和提高了注册需要的时间。

组件名语言CAP一致性算法服务健康检查对外暴露接口Spring Cloud集成
EurekaJavaAP可配支持HTTP已集成
ConsulGoCPRaft支持HTTP/DNS已集成
ZookeeperJavaCPPaxos支持客户端已集成

最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。 可以的话请给我一个三连支持一下我哟,我们下期再见

领取资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值