SpringCloud Consul基础入门与使用实践总结

【1】Consul简介

官网地址:https://www.consul.io/intro/index.html

下载地址:https://www.consul.io/downloads.html

中文文档:https://www.springcloud.cc/spring-cloud-consul.html

① 基础概念

Consul 是一套开源的分布式服务发现和配置管理系统,由 HashiCorp 公司用 Go 语言开发。

提供了微服务系统中的服务治理、配置中心、控制总线等功能。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建全方位的服务网格,总之Consul提供了一种完整的服务网格解决方案。

它具有很多优点。包括:

  • 基于 raft 协议,比较简洁;
  • 支持健康检查,
  • 同时支持 HTTP 和 DNS 协议
  • 支持跨数据中心的 WAN 集群
  • 提供图形界面
  • 跨平台,支持 Linux、Mac、Windows

② 应用能力

在这里插入图片描述

  • 服务发现 : 提供HTTP和DNS两种发现方式。
  • 健康监测 : 支持多种方式,HTTP、TCP、Docker、Shell脚本定制化监控
  • KV存储 : Key、Value的存储方式
  • 多数据中心 : Consul支持多数据中心
  • 可视化Web界面

③ windows下安装说明

官网安装说明:https://learn.hashicorp.com/consul/getting-started/install.html

下载地址:https://www.consul.io/downloads.html ,如下所示点击下载会得到一个exe安装文件。

在这里插入图片描述

傻瓜式安装后,我们以开发模式启动:

consul agent -dev

通过以下地址可以访问Consul的首页:http://localhost:8500

【2】应用实践

服务分为提供者和消费者,我们从两方面进行实践。

① 服务提供者

pom文件引入依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

yml文件进行配置:

###consul服务端口号
server:
  port: 8006

spring:
  application:
    name: consul-provider-payment
####consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        #hostname: 127.0.0.1
        service-name: ${spring.application.name}

主启动类添加注解:

@EnableDiscoveryClient

② 服务消费者

pom文件引入依赖:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

yml文件修改配置:

###consul服务端口号
server:
  port: 80

spring:
  application:
    name: cloud-consumer-order
####consul注册中心地址
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        #hostname: 127.0.0.1
        service-name: ${spring.application.name}

主启动类添加注解:

@EnableDiscoveryClient

可以看到,服务提供者和发现者关于Consul的配置是一样的。

【3】Eureka、Zookeeper与Consul三者异同

组件语言CAP健康检查对外接口
EurekaJavaAP可配支持HTTP
ConsulGoCP支持HTTP/DNS
ZookeeperJavaCP支持客户端

① CAP

从CAP理论来进行分析。 众所周知,所有的中间件最多只能同时较好的满足两个。

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,

因此,根据 CAP 原理分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:

  • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
  • CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
  • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

在这里插入图片描述

② AP(Eureka)

当网络分区出现后,为了保证可用性,系统B可以返回旧值,保证系统的可用性。

结论:违背了一致性C的要求,只满足可用性和分区容错,即AP

在这里插入图片描述

③ CP(ZK/Consul)

当网络分区出现后,为了保证一致性,就必须拒接请求,否则无法保证一致性

结论:违背了可用性A的要求,只满足一致性和分区容错,即CP。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/674838.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年文艺文化与社会发展国际会议(ICLCSD 2024)

2024年文艺文化与社会发展国际会议 2024 International Conference on Literature, Culture and Social Development 【1】会议简介 2024年文艺文化与社会发展国际会议是一场汇集全球文艺文化和社会科学领域精英的盛会。本次会议以“文艺文化与社会发展”为主题&#xff0c;旨在…

最适合上班族和宝妈的兼职副业,一天500多,小众副业项目

近年来&#xff0c;地方特色小吃逐渐受到人们的热烈追捧&#xff0c;尤其是在直播的助力下&#xff0c;许多地方的特色小吃得以走进大众视野&#xff0c;吸引了大量流量和人气。因此&#xff0c;有很大一部分商家和创业者看准了这一商机&#xff0c;纷纷投身于地方特色小吃的制…

nginx和proxy_protocol协议

目录 1. 引言2. HTTP server的配置3. Stream server的配置3.1 作为proxy_protocol的前端服务器3.2 作为proxy_protocol的后端服务器1. 引言 proxy_protocol 是haproxy开发的一种用于在代理服务器和后端服务器之间传递客户端连接信息的协议。使用 proxy_protocol 的主要优势是能…

系统架构设计师【第15章】: 面向服务架构设计理论与实践 (核心总结)

文章目录 15.1 SOA的相关概念15.1.1 SOA的定义15.1.2 业务流程与BPEL 15.2 SOA的发展历史15.2.1 SOA的发展历史15.2.2 国内SOA的发展现状与国外对比15.2.3 SOA的微服务化发展 15.3 SOA的参考架构15.4 SOA主要协议和规范15.4.1 UDDI协议15.4.2 WSDL规范15.4.3 SOAP协…

子域名太多如何实现HTTPS?一张通配符SSL证书全搞定

在当今数字化时代&#xff0c;网站安全性已经成为网站运营者以及访问者都非常关注的重要问题。部署SSL证书实现HTTPS加密&#xff0c;确保数据传输安全&#xff0c;防止信息被泄露或篡改&#xff0c;消除浏览器“不安全”提示&#xff0c;提高网站安全性以及可信任度已成为必然…

代理IP如何提高网站的SEO排名

目录 一、代理IP的作用 二、使用代理IP提高SEO排名的几种常见方法 1. 采集数据 2. 提交网站 3. 模拟用户行为 4. 搜索引擎优化 三、合理使用代理IP的注意事项 四、代码示例 总结 代理IP是一种可以隐藏真实IP地址的技术&#xff0c;通过使用代理IP&#xff0c;可以实现…

记一次mysql索引优化

生产日志告警出现一条慢 sql 告警, 通过 sql 监控平台拿到 这条sql 语句是 : SELECTid,report_id,report_detail_id,item_code,report_type,photo FROM**** 表 WHEREdel_flag 0 AND (report_type 1 AND report_detail_id IN ( 1742 )) 之后用 explain 分析这条 sql 的命中…

前端框架前置知识之Node.js:Node.js入门

前端程序员有必要学 Node.js 吗&#xff1f;要学到什么程度&#xff1f; 小朋友&#xff0c;你是否有很多问号&#xff1f; 对于node.js&#xff0c;不知道你是否和我一样有很多问号&#xff1f; 其实在学习node.js之前&#xff0c;我已经学完了Vue框架&#xff0c;而且已经…

cad怎么一键闭合所有线

在CAD软件中&#xff0c;将断开的图形快速闭合为一个整体是一项常见且实用的操作。下面详细介绍几种不同的方法来实现一键闭合所有线&#xff1a; 使用圆角命令FILLET 输入命令&#xff1a;在CAD命令行中输入“FILLET”&#xff08;快捷键&#xff1a;F&#xff09;。多选模式&…

122. 买卖股票的最佳时机 II(中等)

122. 买卖股票的最佳时机 II 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转&#xff1a;122. 买卖股票的最佳时机 II 2.详细题解 实现最大的利润&#xff0c;即只要有盈利就收入囊中&#xff0c;由于交易没有具体限制次数&#xff0c;因此可以依…

若依开发-数据库修改密码

若依忘记密码 在SecurityUtils类添加 public static void main(String[] args) {System.out.println(SecurityUtils.encryptPassword("admin123"));}即可打印出加密后密码

视频汇聚共享平台LntonCVS安防视频监控系统搭建医院医疗监控统一管理方案

近年来&#xff0c;一些不法分子已经将其罪恶活动延伸到医院&#xff0c;严重威胁了医院和病人的生命财产安全。这些不法分子使用扒窃、抢劫和破坏等卑劣手段扰乱了医院的工作秩序&#xff0c;窃取他人财物并破坏社会治安。鉴于此&#xff0c;社会对良好的医院环境给予了广泛关…

订单排队新纪元:创新营销模式引领企业腾飞

在当今高度竞争的商业环境中&#xff0c;如何以新颖的方式吸引用户并推动企业持续盈利&#xff1f;接下来&#xff0c;我们将探讨一种独特的营销策略——循环订单机制&#xff0c;帮助企业家们巧妙抓住市场机遇&#xff0c;实现业绩飞跃。 循环订单机制&#xff0c;作为一种创新…

查询语言:ClickHouse的SQL基础与特点

1.背景介绍 查询语言&#xff1a;ClickHouse的SQL基础与特点 作者&#xff1a;禅与计算机程序设計艺術 1. 背景介绍 1.1 ClickHouse简介 ClickHouse是Yandex开源的一个高性能分布式 column-oriented DBSMS (Column-based Distributed SQL Management System)&#xff0c;它…

关于软件<PDF文档管理系统V1.0>的介绍

<PDF文档管理系统V1.0>&#xff08;下载地址在最下面&#xff09;是我在2023年发布的<知识辅助系统>的改善以及重新开发版本&#xff0c;软件在重新开发提供了<知识辅助系统>的所有功能的基础上&#xff0c;添加了一些新的功能。软件尽量提供简单、实用的功能…

你还不知道的APP安全测试项总结!

一、安装包测试 1.1、关于反编译 目的是为了保护公司的知识产权和安全方面的考虑等&#xff0c;一些程序开发人员会在源码中硬编码一些敏感信息&#xff0c;如密码。而且若程序内部一些设计欠佳的逻辑&#xff0c;也可能隐含漏洞&#xff0c;一旦源码泄漏&#xff0c;安全隐患…

Linux驱动开发笔记(三)平台设备驱动

文章目录 前言一、Linux的设备模型1. 总线1.1 bus_type结构体1.2 注册/注销总线 2. 设备2.1 device结构体2.2 内核注册/注销设备 3. 驱动3.1 device_driver结构体3.2 注册/注销驱动 4. attribute属性文件4.1 attribute_group结构体4.2 设备属性文件4.3 驱动属性文件4.3. 总线属…

构建高可用微服务:SpringCloud Alibaba解决方案揭秘

【前言】 随着互联网的快速发展,越来越多的企业在应用程序开发过程中选择微服务架构。微服务架构是将一个大型应用程序拆分成多个小型服务的架构模式,每个服务都具有独立的业务逻辑,并且可以独立部署、升级和扩展。 Spring Cloud Alibaba 是阿里巴巴基于 Spring Cloud 开发…

【matlab】绘图文本标注

用代码生成标注 代码 clc clear close all%创建一个球&#xff0c;使用地质颜色映射表&#xff1a; cla reset%清除当前坐标轴中的所有图像对象,同时把除position.units属性外的其他属性设为默认状态 load topo; [x y z]sphere (45); ssurface (x,y, z,facecolor,texturemap,…

深入理解feign远程调用的各种超时参数

1. 引言 在spring cloud微服中&#xff0c;feign远程调用可能是大家每天都接触到东西&#xff0c;但很多同学却没咋搞清楚这里边的各种超时问题&#xff0c;生产环境可能会蹦出各种奇怪的问题。 首先说下结论&#xff1a; 1)只使用feign组件&#xff0c;不使用ribbion组件&…