04 Consul服务注册中心

Consul服务注册中心

Consul官网:https://www.consul.io/
Consul中文文档:https://www.springcloud.cc/spring-cloud-consul.html

简介
Consul是一种服务网格解决方案,提供具有服务发现,配置和分段功能的全功能控制平面。这些功能中的每一个都可以根据需要单独使用,也可以一起使用以构建完整的服务网格。Consul需要一个数据平面,并支持代理和本机集成模型。Consul附带了一个简单的内置代理,因此一切都可以直接使用,还支持Envoy等第三方代理集成。

下载windows 版本后

解压后得到一个 consul.exe 在所在目录打开 cmd 输入xonsul agent -dev

在浏览器输入

http://localhost:8500/

服务提供者注册进 Consul

  1. 新建服务提供者cloud-provider-consul-payment8006。
  2. pom文件
    <!--SpringCloud consul-server-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-consul-discovery</artifactId>
    </dependency>
  1. yml 文件
server:
  port: 8006

spring:
  application:
    name: consul-provider-payment
  cloud:
    consul:
      host: localhost  #用linux的ip地址(consul在本机就填localhost)
      port: 8500
      discovery:
        service-name: ${spring.application.name}
  1. 启动类
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentConsulMain {

    public static void main(String[] args) {
        SpringApplication.run(PaymentConsulMain.class,args);
    }
}
  1. controller 层
@RestController
@Slf4j
public class PaymentContrller {

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

    @RequestMapping(value="/payment/consul")
    public String paymentConsul(){
        return "springcloud with consul:"+serverPort+"\t"+ UUID.randomUUID().toString();
    }
}

测试

服务消费者注册进

  1. 新建模块cloud-consumer-consul-order80
  2. pom(与8006相同)
  3. yml(端口号为80
server:
  port: 80

spring:
  application:
    name: consul-consumer-order
  cloud:
    consul:
      host: localhost  #用linux的ip地址(consul在本机就填localhost)
      port: 8500
      discovery:
        service-name: ${spring.application.name}

  1. 主启动类(与8006相同)
  2. config(和zk的消费者相同)
  3. controller.OrderConsulController

三者的异同

AP(Ereka)

CP(Zookeeper/Consul)

CAP理解 来自于评论区

CAP理论的一个例子。开学了,你和同桌互对寒假作业答案,对到一半同桌去了厕所,恰好老师进来要收作业,你决定:AP【交就交吧,有错也无所谓了,交作业要紧】;CP【等同桌回来,把答案对完再交,满分要紧】

posted @   flypiggg  阅读(69)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示