zoukankan      html  css  js  c++  java
  • springcloud(3)consul

    consul也是一种注册中心,但它比较于其它的应用,界面显示更加清楚,CAP也是cp机制,对外暴露HTTP和dns接口同时集成了springcloud。

    1.下载。

    https://www.consul.io/downloads

    官网自行选择对应版本。

    2.安装运行。

    本体下载之后只有一个exe文件,可以使用cmd打开当前文件夹输入指令启动。

    consul --version查看对应版本  consul agent -dev 以开发者的模式启动。

     默认端口是8500访问的时候输入localhost:8500即可。

    3.服务提供者

    比较于之前的服务提供者,consul注册的服务提供者需要加入额外对应的pom文件

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

    yml文件中的注册地址也要做出相应的改变。

    server:
      port: 8006
    spring:
      application:
        name: consul-provider-payment
      cloud:
        consul:
          host: localhost
          port: 8500
          discovery:
            service-name: ${spring.application.name}

    剩下的就是controller进行一些测试,在consul的界面上可以看出活动。

    4.消费者

    pom导入consul依赖和上述一样。

    yml格式也和上述差不多,需要改动端口和名称。

    加入配置类文件appconfig

    @Configuration
    public class AppConfig {
    
        /**
         * 注入restTemplate,请用请求rest接口
         * @return
         */
        @Bean
        // 标注此注解后,RestTemplate就具有了客户端负载均衡能力
        // 负载均衡技术依赖于的是Ribbon组件~
        // RestTemplate都塞入一个loadBalancerInterceptor 让其具备有负载均衡的能力
        @LoadBalanced
        public RestTemplate restTemplate(){
            return new RestTemplate();
        }
    }

    负载均衡后续后提到。

    controller文件示例

    RestController
    @Slf4j
    public class ConsumerController {
        private static  final String INVOKE_URL = "http://consul-provider-payment";
        @Resource
        private RestTemplate restTemplate;
        @GetMapping(value = "/consumer/payment/consul")
        public String paymentInfo() {
            String result = restTemplate.getForObject(INVOKE_URL+"/payment/consul",String.class);
            return result;
        }
    }

    在consul页面可以查看对应信息。

    5.三种注册中心的差异性

     本篇所有代码均在GitHub:

  • 相关阅读:
    JDBC 复习4 批量执行SQL
    JDBC 复习3 存取Oracle大数据 clob blob
    Oracle复习
    Linux命令(1)grep
    JDBC 复习2 存取mysql 大数据
    JDBC 复习1 DBUtil
    php 环境搭建问题
    Windows 批处理 bat 开启 WiFi 菜单选项 设置ID PWD
    Bat 批处理启动和停止Oracle 服务
    docker 学习1 WSL docker ,Windows docker
  • 原文地址:https://www.cnblogs.com/lin530/p/13891897.html
Copyright © 2011-2022 走看看