(SSM+SE)SSO(3.2 注册和配置中心)

注册中心Eureka和配置中心config server

这两个呢都是spring cloud里的技术,使用也是很广泛的.

先说eureka:

首先把项目中关于nacos的部分都注释掉:
在这里插入图片描述
创建一个新的module,eureka不像nacos,需要自己创建module,添加依赖和进行相关的配置:
在这里插入图片描述
添加依赖:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

配置application.yml文件:

server:
  port: 2001
spring:
  application:
    name: eureka-server

eureka:
  server:
    #自我保护 当有超过85%的服务心跳出现异常时进入保护状态
    #在测试时关闭 部署项目时开启
    enable-self-preservation: false

  instance:
    hostname: eureka01
  client:
    #不向自身注册
    register-with-eureka: false
    #不向自身拉去注册信息
    fetch-registry: false

修改一下hosts文件,加这么两句:

127.0.0.1 eureka01
127.0.0.1 eureka02

写一个启动类:

@EnableEurekaServer
@SpringBootApplication
public class eurekaApplication {
    public static void main(String[] args) {
        SpringApplication.run(eurekaApplication.class,args);
    }
}

然后就可以启动了,输入http://eureka01:2001/查看
![(https://img-blog.csdnimg.cn/ae49cd00737740a495e5bed985c46f99.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NzE1NTMwNw==,size_16,color_FFFFFF,t_70)
在这里插入图片描述
接着在auth和resource中添加Eureka的依赖,完成注册

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

添加yml配置:

eureka:
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka

在启动类上添加@EnableEurekaClient.启动项目
报了如下错误:
在这里插入图片描述
在这里插入图片描述

原因是没有注释nacos的两个依赖.
在这里插入图片描述
重新启动
在这里插入图片描述
注册成功!

服务的高可用和注册中心的高可用:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改启动的端口,然后启动两个服务
在这里插入图片描述
在到Eureka中查看:
在这里插入图片描述

我们将eureka的配置文件复制两份,并且做出修改:
在这里插入图片描述
eureka01:

server:
  port: 2001
spring:
  application:
    name: eureka-server01

eureka:
  instance:
    hostname: eureka01
  client:
    service-url:
      defaultZone: http://eureka02:2002/eureka
    fetch-registry: true
    register-with-eureka: true

eureka02:

server:
  port: 2002
spring:
  application:
    name: eureka-server02

eureka:
  instance:
    hostname: eureka02
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka
    fetch-registry: true
    register-with-eureka: true

在这里插入图片描述
修改启动时使用的配置文件
在这里插入图片描述
在这里插入图片描述
修改defaultZone:

eureka:
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka, http://eureka02:2002/eureka

configserver

configserver将配置文件放在git上,如github或gitte,在项目运行时从git获取:

新建一个configserver的module:
在这里插入图片描述

添加依赖:

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

配置yml文件:

spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/你的项目目录
          search-paths: config

eureka:
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka, http://eureka02:2002/eureka
server:
  port: 7001

创建一个文件夹 config,并且把auth和resource的yml文件复制到此处并改名:
在这里插入图片描述

配置configserver的启动类,添加两个注解:

@EnableEurekaClient
@EnableConfigServer
@SpringBootApplication
public class ConfigserverApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConfigserverApplication.class, args);
    }
}

先开启eureka,再启动configserver,查看http://localhost:7001/auth-dev.yml是否存在.

在这里插入图片描述
在common中添加config client的依赖:

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

在auth和resource创建一个bootstrap.yml,用于连接config server获取配置文件:

auth:

spring:
  cloud:
    config:
      discovery:
        service-id: config-server
        enabled: true
      name: auth
      profile: dev
eureka:
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka, http://eureka02:2002/eureka

resource:

spring:
  cloud:
    config:
      discovery:
        service-id: config-server
        enabled: true
      name: resource
      profile: dev
eureka:
  client:
    service-url:
      defaultZone: http://eureka01:2001/eureka, http://eureka02:2002/eureka

最后启动进行测试:
在这里插入图片描述
到这里已经完成了,最后在配置一下动态刷新,可以在运行时重新往config server获取配置.
我们以auth为例子:

添加actuator依赖(关于actuator看这里:https://blog.csdn.net/tangyaya8/article/details/81157747)

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

在auth-dev.yml中添加:

management:
  endpoints:
    web:
      exposure:
        include: refresh

UserController中添加:

    @GetMapping("/name")
    public String getname(){
        return userService.getname();
    }

UserService添加:

    @Value("${spring.application.name}")
    private String name;

	 public String getname() {
        return name;
    }

查看http://localhost:8081/name
在这里插入图片描述

修改auth-dev.yml

spring:
  application:
    name: sso01-auth

使用postman以post方式访问http://localhost:8081/actuator/refresh来刷新配置
在这里插入图片描述

查看http://localhost:8081/name
在这里插入图片描述
记得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值