今天开始,将spring cloud 系列从入门到源码,一步一步的进行研究,再此做个记录。以期在理解上若有什么偏颇,可以有人帮忙指正,也为要进入spring cloud的同道中人,给予一点点的启发,防止步入同我一样的坑中。
第一个要做的,肯定是微服务最为不可缺少的,服务的注册管理与发现。那就从官方的Eureka开始吧,直接进入项目实战。
我用的是IEDA,如图所示,选择springboot项目:
然后填写项目名称,下一步,直到:
然后,就可以完成项目创建了,我们先来看一下pom文件:
<properties>
<java.version>1.8</java.version>
<!--指定springcloud的版本-->
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<!-- Eureka的客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--Eureka的服务端-->
<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-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<!--用来统一管理springcloud 的各组件的版本信息,不会作为jar下载下来-->
<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>
jar包引入之后,首先要进行配置,我比较喜欢yml格式的配置文件,主要配置如下:
spring:
application:
name: eureka-1
eureka:
instance:
hostname: localhost
server:
wait-time-in-ms-when-sync-empty: 0
enable-self-preservation: false
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://localhost:8848/eureka/
server:
port: 8848
这是单机demo,不能用于线上,至于线上环境,我会使用Alibaba的Nocas,到时,会详细的讲解。
配置文件中的配置,主要用于告诉程序,不要把自己作为服务进行注册,正式的生产环境中,往往是会把自己作为服务进行注册的。
配置完毕,启动程序。访问对应ip和端口号,这里端口号是刚刚配置的8848,ip为localhost即可,发现会有如下错误,怎么回事呢?
原来还有一步需要做,就是在启动主类中添加@EnableEurekaServer注解,如下:
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
再次启动,再次访问localhost:8848,发现:
eureka服务顺利启动,但是发现,还没有注册进来服务,这里空空如也,下一篇将讲述服务注册进Eureka的过程。