Spring Cloud是目前非常流行的微服务框架。它不是一种技术,而是一系列框架的集合。它基于分别实现不同的功能,包括配置管理,服务发现,断路器,智能路由,网关,控制总线,一次性令牌,全局锁,领导选举,分布式会话,监控等。
常用的Spring Cloud组件
Spring Cloud Netflix(https://github.com/spring-cloud/spring-cloud-netflix)
是对Netflix开发的一套分布式服务框架的封装,包括服务的发现和注册,负载均衡、断路器、REST客户端、请求路由等。
Spring Cloud Config(https://github.com/spring-cloud/spring-cloud-config)
将配置信息中央化(如文件系统、SVN、Git等)保存, 配置Spring Cloud Bus可以实现动态修改配置文件
Spring Cloud Security(https://github.com/spring-cloud/spring-cloud-security)
对Spring Security的封装,并能配合Netflix使用。
下面从搭建Eureka Server开始介绍
Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于Netflix Eureka做了二次封装。主要负责完成微服务架构中的服务治理功能,包括服务注册和服务发现。
搭建Eureka Server
创建Maven工程
添加依赖(配置pom.xml)
添加Spring Boot依赖支持
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>添加Spring Cloud依赖支持
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Edgware.SR3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>添加相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>配置Build属性
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.10.RELEASE</version>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<target>1.8</target>
<source>1.8</source>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
创建启动类
在src/main/java目录下创建一个包,并创建类EurekaServer(类名随你意),类的内容如下:
package com.huluohu.cloud.eureka; |
添加应用配置
在src/main/resources目录下,创建application.yml(或application.properties)配置文件,添加以下内容:
spring: |
同时,在src/main/resources目录下在创建一个application-local.yml(或application-local.properties)文件,其中local后缀表示profile(spring boot的环境区分,这里用local表示本地环境,你也可以改成dev、test等你认为合理的后缀),并添加以下内容:
spring: |
启动Eureka Server
现在相关配置都已经完成了,可以启动Eureka Server。
点击IDEA的Run—>Run…—>Edit Configurations…
点击+号,选择Spring Boot,然后在上图中选择Main Class为我们创建的EurekaServer类型,Active profiles填写为local,然后点击Apply按钮,并点击Run按钮。
启动完成!
在浏览器中输入http://localhost:8761
创建Eureka Client(服务提供者)
创建maven项目
添加依赖
<parent> |
spring-boot和spring-cloud配置参考上面Euerka Sevrer部分。
创建启动类
package com.huluohu.cloud.provider; |
方法同创建EurekaServer一样。
添加应用配置
在src/main/resources目录下 创建application.yml
spring: |
启动ProviderApplication
方法同启动EurekaServer一样
这时候在浏览器中刷新之前的Eureka Server页面,可以看到ProviderApplication已经注册到Eureka Server上了: