2017年网站建设公司,织梦cms下载,会议展厅设计装修公司,人人快速开发平台一、业务背景
注册中心Eureka在微服务开发中经常使用到#xff0c;用来管理发布的微服务#xff0c;供前端或者外部调用。但是如果放到生产环境#xff0c;我们直接通过URL访问的话#xff0c;这显然是不安全的。 所以需要给注册中心加上登录认证。 通过账号和密码认证进行…一、业务背景
注册中心Eureka在微服务开发中经常使用到用来管理发布的微服务供前端或者外部调用。但是如果放到生产环境我们直接通过URL访问的话这显然是不安全的。 所以需要给注册中心加上登录认证。 通过账号和密码认证进行登录
二、实施步骤
1、在pom文件中引入依赖 !--加入安全认证 eureka登录认证--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-security/artifactId/dependency 2、在yml文件中配置账号密码
#服务名称
spring:application:name: eurekasecurity:enabled: trueuser:name: adminpassword: 123456 3、如何注册的Eurekayml中配置
eureka:client:register-with-eureka: true # 表示是否向Eureka注册中心注册自己fetch-registry: false # false表示自己端就是注册中心我的职责就是维护服务实例并不需要去检索服务service-url:defaultZone: http://${spring.security.user.name}:${spring.security.user.password}10.8.215.8:8761/eureka/ #注册的注册中心集群配置
4、关键的一步。重写WebSecurityConfigurerAdapter要不然会注册不成功。如果没有这个类会报com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
Configuration
EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {//关键就在于这行代码http.csrf().disable();super.configure(http);}
}
三、Eureka介绍
Eureka是Netflix开发的服务发现框架是一个基于REST一种软件架构风格一种针对网络应用的设计和开发方式可以降低开发的复杂性提高系统的可伸缩性的服务。主要以AWS云服务为支撑提供服务发现并实现负载均衡和故障转移。SpringCloud将它集成在其子项目spring-cloud-netflix中以实现SpringCloud的服务发现功能。
1、Eureka本身有哪些组件
Eureka Server 和Eureka Client
服务端提供服务注册当客户端服务启动的时候会主动向服务端进行注册服务端会存储所有已经注册服务节点信息。服务端会管理这些节点信息并且会将异常的节点移除服务列表。
客户端会每隔30秒发送心跳给服务端告诉服务端自己时可用的。如果一个服务长时间没有发送心跳大约90秒内会被移除服务器列表。另外客户端有缓存功能所以即便Eureka集群中所有节点都失效或者发生网络分割故障导致客户端不能访问任何一台Eureka服务器Eureka服务的消费者仍然可以通过Eureka客户端缓存来获取现有的服务注册信息。
无论是服务端还时客户端都支持集群模式注册信息和更新信息会在整个eureka集群的节点进行复制。
2、Eureka的优势
比较流行的服务治理框架还有zookeeper那与之相比较为什么偏向于选择eureka。如果用分布式架构的CAP定理C-数据一致性A-服务可用性P-服务对网络分区故障的容错性这三个特性在任何分布式系统中不能同时满足最多同时满足两个来说的话eureka是偏向于AP而zookeeper是偏向于CP。一般开发中大多追求是高可用那么eureka就更有优势。另外eureka集群中如果某个服务器不可用它不会有类似于ZooKeeper的选举leader的过程客户端请求会自动切换到新的Eureka节点当宕机的服务器重新恢复后Eureka会再次将其纳入到服务器集群管理之中重新同步新的服务注册即可
3、注册中心
管理各种服务功能包括服务的注册、发现、熔断、负载、降级等比如dubbo admin后台的各种功能。有了服务中心后任何一个服务都不能直接去相互调用必须通过注册中心来调用
这样一来服务之间的相互调用就不用去维护对方的地址信息而是由注册中心来统一管理不容易出错易于维护方便集群监控每个服务。