前言

SpringCloud2.0推出有一段时间了,是要学习1.5+还是从2.0开始?犹豫的原因是资料不全,目前现有的资料大部分是1.0的。但作为学习者,肯定要学习最新的。不如,先试试。

搭建Eureka注册中心

关于Eureka的介绍,前文《SpringCloud入门1-服务注册与发现(Eureka)》已经学习过了。这次主要针对2.0重新刷新一下。

Maven or Gradle

看官方文档,可以看出spring是特别希望大家都转gradle的,我也用了一段时间,最后发现国内这个真不流行。这次转为maven构建。

项目搭建

新建一个springboot项目,添加eureka server的依赖。

项目地址:

https://github.com/Ryan-Miao/spring-cloud-demo/tree/master/eureka-server

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Finchley.RC2</spring-cloud.version>
</properties>

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

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

对比1.0可以发现,jar包依赖换了名字。

1
spring-cloud-starter-netflix-eureka-server

接下来,只要一个启动类就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

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

@Configuration
public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll()//
.and().csrf().disable();
}
}
}
  • @EnableEurekaServer表示启用Eureka
  • 关于SpringSecurity的问题,2.0以后只要classpath加载了spring security就会默认进行安全拦截,这里允许所有,先忽略安全问题。

然后是配置文件application.properties

1
2
3
4
spring.application.name=spring-cloud-eureka-server
server.port=8761
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
  • port 8761是Eureka客户端默认的端口,选择我们就选择8761
  • 我们需要name来显示项目名称
  • defaultZone是我们注册的地址,这里只开启一个节点,即向自己注册自己

启动即可。