赞
踩
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
Eureka包含两个组件:Eureka Server和Eureka Client。具体怎么部署这里就不说了,直接说问题
Eureka 客户端注册时需要配置服务端地址,类似如下配置
eureka:
instance:
hostname: hello-service
prefer-ip-address: true
instance-id: ${
eureka.instance.hostname}:${
server.port}
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: "http://localhost:8761/eureka/"
这种配置后客户端就会注册到Eureka注册中心,在Eureka界面就能看到:
但是这样把界面暴露到外面,会把注册信息泄漏,一般公司也不允许暴露没有安全认证的后台界面
所以尝试把Eureka界面加密
引入security
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Eureka服务端增加basic鉴权:
spring:
application:
name: eureka-server
security:
basic:
enabled: true
user:
name: admin
password: 123456
配置完成后发现现在访问eureka界面需要用户名和密码登录了
但是登录进去后发现刚才的hello服务并没有注册进来
呕吼,应该是客户端没配置鉴权信息的原因,在官网找到了客户端鉴权配置方式
https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。