consul注册中心入门

1、搭建consul环境:

1.1、本地搭建:

        1.1.2:安装一个没有中文的目录即可

2、consul的原理:

 

3、启动:

3.1:启动必须在consul.exe当前目录cmd窗口启动。

3.2.开发模式 数据保存在内存 重启之后会丢失

consul agent -dev

3.3、服务模式 可以保留以前数据

consul agent -server -ui -bootstrap-expect 1 -data-dir 
// 下边路径是自己创建一个文件夹data
D:\xuexiruanjian\consul\data -node=n1 -bind=127.0.0.1

4、consul服务注册使用步骤

4.1、导入依赖:

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

4.2、配置:

server:
  port: 8001  #项目端口号
spring:
  application:
    name: consul-provider #服务名
  cloud:
    consul:
      host: localhost 
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        heartbeat:
          enabled: true #开启心跳检测
        prefer-ip-address: true #注册时优先使用ip
        enabled: true #开启服务注册与发现  默认就是true

5、feign的使用步骤:

1、导入依赖:消费者导入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>

2、创建feign接口,接口上写@FeignClients(被调用方的服务名)

package com.itheima.client;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@FeignClient("consul-provider")
public interface UserClient {

    @GetMapping("/user/getUserName")
    public String getUserName(@RequestParam String name);
}

3、添加feign的配置:

feign:
  client:
    config:
      default:
        connectTimeout: 3000 #连接超时时间
        readTimeout: 6000 #读取数据超时时间

  

4、开启feign远程调用,@EnableFeignClients

4.1、消费者启动类添加@EnableFeignClients

package com.itheima;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;

@SpringBootApplication
@EnableFeignClients //开启feign远程调用
public class ConsulConsumerApp {
    public static void main(String[] args) {
        SpringApplication.run(ConsulConsumerApp.class, args);
    }
}

5、测试

5.1、消费者调用UserClient

package com.itheima.controller;

import com.itheima.client.UserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("order")
public class OrderController {

    @Autowired
    UserClient userClient;

    @RequestMapping("getOrder")
    public String getOrder(){
        String name = userClient.getUserName("zhangsan");
        return name;
    }

}

6、一个开源的属于哪个公司:

7、feign使用方式

 

8、consul配置管理:

1.新建配置:

 

2.consul配置依赖:

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

3.配置文件必须叫 bootstrap.yml

3.1、必须要在提供者里配置

server:
  port: 8001
spring:
  application:
    name: consul-provider
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
        heartbeat:
          enabled: true #开启心跳检测
        prefer-ip-address: true #注册时优先使用ip
        enabled: true #开启服务注册与发现  默认就是true
      config:
        enabled: true #开启 从配置中心读取配置  默认true
        prefix: config # 配置的前缀
        name: abc #配置的名称
        data-key: data #数据的key
        #consul中 可以的值 就是  prefix + name + data-key        config/abc/data
        format: yaml #consul中配置的格式

4.通过@Value注解读取配置

@Value("${stu.name}")
private String name;
@Value("${stu.age}")
private int age;

@GetMapping("get")
public String get(){
    return "consul config "+ name+"   "+age;
}

5.consul热更新:

方式一: @Value注解 + @RefreshScope注解

方式二:使用@ConfigurationProperties注解

5.1。这个实体类必须在提供者

package com.itheima.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Data
@Configuration
@ConfigurationProperties(prefix = "stu")
public class Student {
    private String name;
    private int  age;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值