SpringCloud>03 - Eureka服务注册、发现(二)

扯淡:

上一章简单搭建了一个单机版的Eureka Server,并将用户微服务和文章微服务注册到Eureka Server中,本章将延续上一章配置服务端的高可用,安全认证等。

springboot、springcloud、docker学习目录:【传送门】    

Eureka 安全认证:

Eureka Server 端配置:

官网:

https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.0.2.RELEASE/single/spring-cloud-netflix.html

可知,引入springboot的security依赖,加上配置类,放开/eureka/** 路径。

1、在 springcloud_eureka pom 中添加

   <!-- server 服务端验证 -->
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-security</artifactId>
   </dependency>

2、添加配置类

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }
}

3、启动:访问服务端地址

用户名为user,默认密码生成在控制台:

4、自定义用户名、密码

spring:
  application:
    name: eureka
  # 安全认证
  security:
    user:
      name: ron  # 默认为 user
      password: 123456 # 默认控制台生成

5、使用自定义的用户名密码登录Eureka

Eureka Client 端配置:

在注册地址中加入user:password即可。

1、修改用户微服务、文章微服务的配置文件:

eureka:
  client:
    # 指定服务注册中心的位置
    serviceUrl:
      defaultZone: http://ron:[email protected]:8761/eureka/

2、访问Eureka监控画面

Eureka Server 集群:


Eureka Server 端配置

官网:

大概意思:Eureka可以通过运行多个实例,并让它们彼此注册,来实现高可用。这是它的默认行为,我们只需要向对等点中添加一个有效的serviceUrl即可。

1、为了方便测试,屏蔽掉Eureka 的安全认证相关代码。

2、修改本机hosts文件,添加 peer1、peer2、peer3。

127.0.0.1 peer1

127.0.0.1 peer2

127.0.0.1 peer3

3、修改springcloud_eureka 配置文件

---
spring:
  application:
    name: springcloud-eureka
  profiles: peer1
server:
  port: 8761
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8762/eureka/,http://peer3:8763/eureka/
    healthcheck:
      enabled: true
---
spring:
  application:
    name: springcloud-eureka
  profiles: peer2
server:
  port: 8762
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer3:8763/eureka/
    healthcheck:
      enabled: true
---
spring:
  application:
    name: springcloud-eureka
  profiles: peer3
server:
  port: 8763
eureka:
  instance:
    hostname: peer3
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/
    healthcheck:
      enabled: true

4、启动:

4.1、可以打包成jar文件, 然后使用 java -jar 运行

java -jar springcloud_eureka 1.0-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar springcloud_eureka 1.0-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar springcloud_eureka 1.0-SNAPSHOT.jar --spring.profiles.active=peer3

4.2、我直接使用idea的启动三个服务

点击向下小箭头 ~> Edit Configurations  点击 "+" 添加 Eureka2、Eureka3

指定 Eureka1 启动参数:-Dspring.profiles.active=peer1
指定 Eureka2 启动参数:-Dspring.profiles.active=peer2
指定 Eureka3 启动参数:-Dspring.profiles.active=peer3

4.3、分别启动Eureka1、Eureka2、Eureka3

5、分别使用8761、8762、8763 请求、查看监视画面

Eureka Client 端配置

1、修改用户微服务、文章微服务配置文件

eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:8761/eureka/,http://peer2:8762/eureka/,http://peer3:8763/eureka/

2、查看监控画面

至此、Eureka Server 安全认证、集群都已配置完成。

总结:

1、Eureka Server 安全认证,引入依赖、添加配置类、自定义用户名密码三步。
2、Eureka Client 连接安全认证的服务端,只需在注册服务地址中添加user:password@即可。
3、Eureka Server 集群,只需向对等点添加一个有效的服务地址即可,客户端请求将多个服务实例地址用 "," 隔开。

代码地址:

1、eureka:

https://gitee.com/cpla026/springcloud/tree/master/springcloud_parent/springcloud_eureka

2、文章微服务:

https://gitee.com/cpla026/springcloud/tree/master/springcloud_parent/springcloud_article

3、用户微服务:

https://gitee.com/cpla026/springcloud/tree/master/springcloud_parent/springcloud_user


个人学习分享
更多 springboot、springcloud、docker 文章,关注公众号吧:

猜你喜欢

转载自blog.csdn.net/cp026la/article/details/86605776