04SpringCloudAlibaba服务注册中心—Consul

news2024/9/24 11:26:32

目录

Consul简介

Consul是什么What is Consul? | Consul by HashiCorp

Consul能做什么

Consul下载:Downloads | Consul by HashiCorp

Consul使用:Spring Cloud Consul 中文文档 参考手册 中文版

安装并运行Consul

1、官网安装说明:Install Consul | Consul - HashiCorp Learn

2、下载完成后只有一个consul.exe文件,硬盘路径下双击运行,查看版本号信息

 使用开发模式启动

1、 consul agent -dev

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

3、结果页面​

zookeeper服务提供者

1、04-cloud-provider-payment-consul-8006

2、pom.xml

3、改yum

4、主启动

5、业务类

测试1:

     访问:http://localhost:8006/payment/consul​

zookeeper服务消费者

1、04-cloud-consumer-order-consul-80

2、pom.xml

3、改yum

4、主启动

5、业务类

config

controller

测试

三个注册中心异同点 

CAP

        C:Consistency(强一致性)

        A:Availability(可用性)

        P:Partition tolerance(分区容错性)

        CAP理论关注粒度是数据,而不是整体系统设计的策略

CAP理论的核心是:


Consul简介

Consul是什么What is Consul? | Consul by HashiCorp

Consul能做什么

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

Consul下载:Downloads | Consul by HashiCorp

Consul使用:Spring Cloud Consul 中文文档 参考手册 中文版

安装并运行Consul

1、官网安装说明:Install Consul | Consul - HashiCorp Learn

2、下载完成后只有一个consul.exe文件,硬盘路径下双击运行,查看版本号信息

        ①解压

        ②配置环境变量

        ③检查是否成功

 使用开发模式启动

1、 consul agent -dev

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

3、结果页面

zookeeper服务提供者

1、04-cloud-provider-payment-consul-8006

2、pom.xml

    <dependencies>
        <!--SpringCloud consul-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

3、改yum

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

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

4、主启动

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2022-03-28-下午 8:45
 */
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentConsulMain8006 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentConsulMain8006.class,args);
    }
}

5、业务类

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2022-03-28-下午 8:47
 */
@RestController
public class PaymentConsulController {


    @Value("${server.port}")
    private String serverPort;

    @GetMapping("/payment/consul")
    public String paymentInfo() {
        return "spring cloud with consul: " + serverPort + "\t\t" + UUID.randomUUID().toString();
    }
}

测试1:

     访问:http://localhost:8006/payment/consul

zookeeper服务消费者

1、04-cloud-consumer-order-consul-80

2、pom.xml

    <dependencies>
        <!--SpringCloud consul-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <!-- SpringBoot整合Web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--日常通用jar包配置-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

3、改yum

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

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

4、主启动

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2022-03-28-下午 9:22
 */
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentConsulOrderMain80 {
    public static void main(String[] args) {

        SpringApplication.run(PaymentConsulOrderMain80.class,args);
    }
}

5、业务类

config

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2022-03-28-下午 7:22
 */
@Configuration
public class RestTemplateConfig {
    
    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

controller

/**
 * @author gh  Email:@2495140780qq.com
 * @Description
 * @date 2022-03-28-下午 9:22
 */
@RestController
public class OrderConsulController {

    public static final String INVOKE_URL = "http://cloud-provider-payment-consul-8006";

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/consumer/payment/consul")
    public String paymentInfo() {
        return restTemplate.getForObject(INVOKE_URL +"/payment/consul", String.class);
    }
}

测试

三个注册中心异同点 

CAP

        C:Consistency(强一致性)

        A:Availability(可用性)

        P:Partition tolerance(分区容错性)

        CAP理论关注粒度是数据,而不是整体系统设计的策略

CAP理论的核心是:

AP(Eureka)
CP(Zookeeper/Consul)

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

  • 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求
  • 根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
    • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
    • CP - 满足一致性,分区容忍必的系统,通常性能不是特别高。
    • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发板测试手册——系统启动、文件传送操作步骤详解(1)

目 录 前 言 4 1 评估板快速测试 5 1.1 系统启动测试 5 1.2 文件传送测试 11 1.2.1 通过 Linux 系统启动卡 11 1.2.2 通过 OpenSSH 12 1.3 LED 测试 15 1.4 KEY 测试 15 1.5 DDR 读写测试 16 1.6 SD 卡读写测试 17 1.7 eMMC 读写测试 18 前 言 本指导文档适用开发…

2022 CSDN年度报告已出炉

2022年已过&#xff0c;我们迎来了2023年&#xff0c;那么在2022年&#xff0c;你在CSDN平台都做了些什么&#xff0c;收获了什么呢&#xff1f;2022 CSDN年度报告已出炉&#xff0c;来看看你的2022年度报告吧。 点此查看2022年度报告 或扫码查看你的2022 CSDN年度报告哦&…

23种设计模式(三)——策略模式【组件协作】

文章目录意图什么时候使用策略真实世界类比策略模式的实现策略模式的优缺点亦称&#xff1a;Strategy 意图 定义了一组策略&#xff0c;分别在不同类中封装起来&#xff0c;每种策略都可以根据当前场景相互替换&#xff0c;从而使策略的变化可以独立于操作者。比如我们要去某个…

Type-challenges: tuple to object / union

type-challenges/README.zh-CN.md at main type-challenges/type-challenges GitHub https://github.com/TIMPICKLE/type-challenges/blob/main/questions/00010-medium-tuple-to-union/README.zh-CN.md lets do it , mate! 首先概念澄清&#xff1a; JS&#xff1a; con…

TKE 注册节点,IDC 轻量云原生上云的最佳路径

林顺利&#xff0c;腾讯云原生产品经理&#xff0c;负责分布式云产品迭代和注册节点客户扩展&#xff0c;专注于云原生混合云新形态的推广实践。 背景 企业在持续业务运维过程中&#xff0c;感受到腾讯云 TKE 带来的便捷性和极致的使用体验&#xff0c;将新业务的发布以及老业…

回答问题】ChatGPT上线了!给我推荐20个比较流行的图像全景分割模型

给我推荐20个比较流行的图像全景分割模型 好的&#xff0c;这是 20 个比较流行的图像全景分割模型&#xff1a;DeepLabv3 PSPNet FCN U-Net Mask R-CNN UNet SegNet ENet ICNet ENet GCN DANet BiSeNet DenseASPP DenseASPPv2 DenseASPPv3 DenseASPPv4 DenseASPPv5 DenseASPPv…

Redis数据持久化

数据持久化 RDB (Redis DataBase) 在指定的时间间隔内将内除中的数据集快照写入磁盘&#xff0c;即Snapshot快照。 备份如何执行 Redis会单独创建&#xff08;fork&#xff09;一个子进程来执行持久化&#xff0c;会先将数据写入到一个临时文件&#xff0c;待持久化过程结束…

【嵌入式Linux环境搭建-02】虚拟机安装Ubuntu20系统

虚拟机安装 Ubuntu 系统 前面用的VMware15.5&#xff0c;安装完Ubuntu20.04报错&#xff0c;试了以下方法都不行。 建议直接安装VMware16.2&#xff0c;步骤和上面一样 报错 解决&#xff1a;VMware Workstation 与 Device/Credential Guard 不兼容_山顶夕景的博客-CSDN博客…

JS阻止事件冒泡的方法*基础原理与运用

目录 事件冒泡html布局css样式代码 非标准写法&#xff1a;IE6-8 利用事件对象cancelBubble属性 标准写法&#xff1a;利用事件对象里面的stopPropagation()方法 下拉菜单 操作方法 事件冒泡html布局css样式代码 首先创建三个嵌套的方块&#xff0c;便于案例分析 <div…

NewSQL如何解决高可用、分片?

1 什么是New SQL&#xff1f; 无论你其他方面做的比Old SQL好再多&#xff0c;SQL和ACID是刚需&#xff0c;这个命你革不掉的。你不支持SQL&#xff0c;就不会有多少人用。所以近几年很多之前不支持SQL的数据库&#xff0c;都开始支持SQL了&#xff0c;甚至于像Spark、Flink这…

自然语言处理 第十章 信息抽取 复习

信息抽取信息抽取复习重点&#xff1a;信息抽取概述从任务内容分为&#xff1a;从处理文档类型分为&#xff1a;从发展时间和处理文档分为&#xff1a;实体识别与抽取限定域命名实体识别基于规则或字典的方法 &#xff1a;规则模版&#xff08;字典&#xff09;匹配统计学习方法…

23.1、Java中的类加载器反射模块化

1.类加载器 1.1类加载 类加载的描述 当程序要使用某个类时&#xff0c;如果该类还未被加载到内存中&#xff0c;则系统会通过类的加载&#xff0c;类的连接&#xff0c;类的初始化这三个步骤来对类进行初始化。如果不出现意外情况&#xff0c;JVM将会连续完成这三个步骤&#…

spring boot 七:SpringBoot自定义配置Jackson的ObjectMapper

spring boot 七&#xff1a;SpringBoot2.5.4自定义配置Jackson的ObjectMapper 1 前言 SpringBoot底层默认使用的自动依赖注入&#xff0c;即spring-boot-autoconfigure包的META-INF下&#xff0c;存在spring.factories文件&#xff0c;里面有自动注入的jackson自动配置类。在…

[数据结构基础]栈和队列的结构及接口函数

一. 栈 1.1 栈的概念及结构 栈是一种特殊的线性表&#xff0c;其只允许在固定的一段进行插入和删除元素的操作。进行数据插入和删除的一端成为栈顶&#xff0c;另一端称为栈底。栈结构中的数据遵循先进后出原则&#xff08;LIFO&#xff1a;Last in First Out&#xff09;&am…

03 Hive概述

Hive概述1、什么是Hive2、Hive优缺点3、Hive架构原理4、Hive 和 数据库比较5、Hive计算引擎1、什么是Hive 由Facebook开源用于解决海量结构化日志的数据统计工具。 Hive是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供 类SQ…

如何在外籍人员子女学校和同事有效工作

香港 (Xinwengao.com) — PD Academia 的 Henry Wong 在新加坡出生长大&#xff0c;在美国接受高等教育&#xff0c;现在在美国半退休。他在中国生活了16年。他与许多西方人和中国人一起工作。他始终将自己视为东方与西方的交汇点&#xff0c;是学术界与行政部门之间的桥梁。他…

刷油漆【中等】

在一个8 \times 8 的网格中&#xff0c;一些水平的行被涂成红色&#xff0c;一些垂直的列被涂成蓝色&#xff0c;条纹是按顺序画的&#xff0c;一个接着一个。绘制条纹时它会重新绘制它所经过的所有单元格。(原理跟刷油漆一样)现在你需要确定最后一个上色的是什么颜色红色条纹是…

静态路由配置

获取未知网段的路由信息&#xff1a; 静态路由&#xff1a;由网络管理员手工配置的路由条目 动态路由&#xff1a;所有路由器上开启同一种路由协议&#xff0c;之后&#xff0c;通过路由器之间沟通&#xff0c;协商&#xff0c;最终计算生成路由条目。 静态路由的优点&#xf…

MySQL2-初识MySQL

目录 1.数据库 1.1.什么是数据库? 1.2.为什么要用数据库&#xff1f; 1.2.1.数据存储的发展史 1.2.2.文件存储的缺点 1.3.数据库分类 1.3.1.关系型数据库&#xff08;RDBMS&#xff09; 1.3.2.非关系型数据库&#xff08;了解&#xff09; 1.3.3.关系型数据库和非关系…

STM32——TIM简介与TIM中断

文章目录一、TIM简介二、定时器类型基本定时器通用定时器高级定时器三、定时中断基本结构四、时序图预分频器时序计数器时序计数器无预装时序计数器有预装时序RCC时钟树五、定时器定时中断六、定时器外部时钟七、定时器库函数&#xff08;tim.h&#xff09;一、TIM简介 TIM&am…