Spring Cloud 教程 - Eureka Server

如何使用Eureka Server

将groupId 为 org.springframework.cloud,artifactId 为spring-cloud-starter-netflix-eureka-server的依赖添加到项目中即可引入Eureka Server,具体版本号可以参考Spring Cloud Project 使用如下代码快速启动Eureka Server

@SpringBootApplication@EnableEurekaServerpublic class Application {    public static void main(String[] args) {        new SpringApplicationBuilder(Application.class).web(true).run(args);
    }

}

Server 包含一个主页和其他的HTTP API,默认在/eureka/*路径下。

 高可用,Zones和Regions

Eureka并不包含存储,但是所有的服务实例必须发送心跳信息来更新啊们的状态,这些信息都是在内存中操作的。客户端同样也包含一个Eureka的注册信息。 默认情况下,一个Eureka的Server同样也是一个Eureka的Client,需要配置Service URL来定位对方。

独立模式

由于Server和Client缓存的存在,使得独立模式下的Eureka对于失败更具有弹性,只要有其他的监控或者弹性运行时保证其可用 接口。在独立模式下,可以选择关闭Client想问,这样Client就不会持续尝试获取其他断点,例如:

server:
  port: 8761eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
对等模式

通过多实例互相注册,可以使得Eureka更具弹性和可靠性。例如:

---
spring:
  profiles: peer1
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2/eureka/---
spring:
  profiles: peer2
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1/eureka/

配置两个Eureka Server,这两个Server互相注册。

使用IP地址注册

通过设置eureka.instance.preferIpAddress=true 开启IP地址注册,设置后,Eureka Client会使用IP注册器服务而不是其hostname。

为Eureka Server添加安全认证

可以通过spring-boot-starter-sercurity对Eureka Server添加安全认证。默认情况下,将其添加到classpath后,会对每个请求进行CSRF检查。Eureka并不会生成CSRF token,所以需要关掉对/eureka/*路径下的检查:

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

用户认证可以通过设置如下开启

security:
    basic:
        enabled: true
    user:
        name: name
        password:password

原文发布于微信公众号 - 代码拾遗(gh_8f61e8bcb1b1)

原文发表时间:2018-08-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐百川的学习频道

Spring IO Platform 简介

Spring IO Platform框架简单来说就是一个版本号兼容系统,它将常用第三方类库的兼容的版本组织起来。只要我们在项目中引用了Spring IO Pla...

2259
来自专栏加米谷大数据

Flume的高可靠,高性能和高扩展性

Flume 是Apache旗下的一款开源、高可靠、高扩展、容易管理、支持客户扩展的数据采集系统。 Flume使用JRuby来构建,所以依赖Java运行环境。

1032
来自专栏杂烩

分布式服务框架之Dubbo整合Spring项目(一)

        先说一下架构,项目采用Maven管理依赖,总共三个项目,一个是接口包common-inter,一个是服务提供者provider,最后一个是服务消...

1681
来自专栏Danny的专栏

SLF4J和Logback日志框架详解

SLF4J是一套简单的日志外观模式的Java API,帮助在项目部署时对接各种日志实现。

1544
来自专栏张伟博客

jenkins执行shell启动tomcat失败

集成Jenkins+manven,构建持续部署。构建完毕,Jenkins会执行服务器某个目录下的Shell,

4782
来自专栏惨绿少年

NFS启动时报错Linux NFS:could not open connection for tcp6

1.1 启动时出现的错误 [root@znix ~]#/etc/init.d/nfs start Shutting down NFS daemon:     ...

2230
来自专栏Android相关

Gradle For Android(8)--建立持续集成

Continuous Integration(CI)持续集成可以在团队中每天构建非常多次。每一次自动构建都可以验证最新Push到主仓库的提交。这种方式可以帮助我...

1593
来自专栏Java技术栈

Spring Boot功能实战

添加web功能启动器 添加了Spring Boot基础依赖后,如要使用web mvc功能,只需要添加如下启动器即可,Spring Boot会自动装配web功能。...

36111
来自专栏编程

Spring-Data-REST轻松搞定RESTfulAPI

背景 昨天同事问我有没有研究过 ,没有~但是看名字就大概知道是做什么的(命名的重要性),因为之前有了解过 ,过一会发过两个截图过来。真的很强大,感觉这个在使用...

2706
来自专栏程序猿DD

Spring Cloud实战小贴士:健康检查

今天在博客的交流区收到一条不错的问题,拿出来给大家分享一下。具体问题如下: 因为项目里面用到了redis集群,但并不是用spring boot的配置方式,启动后...

24610

扫码关注云+社区

领取腾讯云代金券