首先讲一下Eureka服务注册中心。对于Eureka,你可以把他理解为dubbo中的zokkeeper。用于监听其他服务的,并且springcloud帮我们封装好了很多东西,使用起来还是非常方便的。讲点概念性的东西,以及Eureka的介绍:一个系统架构中,任何单点的服务都不可能保证不会中断,因此需要eureka去做客户端的发现模式,保证其中一个节点中断后,其他的节点能保证提供服务,实现高可用 Eureka Server会提供服务注册服务,各个服务节点启动后,会在Eureka Server中进行注册,这样Eureka Server中就有了所有服务节点的信, 并且Eureka有监控页面,可以在页面中直观的看到所有注册的服务的情况。同时Eureka有心跳机制,当某个节点服务在规定时间内没有发送心跳信号时,Eureka会从服务注册表中把这个服务节点移除。Eureka还提供了客户端缓存的机制,即使所有的Eureka Server都挂掉,客户端仍可以利用缓存中的信息调用服务节点的服务。 Eureka通过心跳检测、健康检查、客户端缓存等机制,保证了系统具有高可用和灵活性。
讲了概念性的东西,接下来实战一下,首先自己创建一个springboot项目,命名Eureka,接下来做一些pom文件的配置,我的版本用的是1.5.8的版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
<relativePath/>
</parent>
<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>Dalston.SR4</spring-cloud.version><!-- 统一版本管理 -->
</properties>
接下来引入统一多模块的依赖版本
<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>
然后就是一些常规的依赖config,eureka,eureka-server;包括maven仓库别忘记了。
这里顺便提一下,对于Eureka来说,实现负载均衡一般是配合ribbon搭配使用的,那么ribbon的依赖,Eureka已经帮我继承在spring-cloud-starter-eureka中了,只需要用@LoadBalanced 注解来实现,这个后面讲。
做好所有依赖以后,在Application启动项中添加@EnableEurekaServer注解,作用是表明应用为eureka服务,有可以联合多个服务作为集群,对外提供服务注册以及发现功能。
接下来在application.yml中做一些基本配置,这里我直接贴下,没什么比较重要的东西
spring:
application:
name: spring-cloud-demo-service
server:
port: 8000
eureka:
client:
register-with-eureka: true #是否在注册中心注册自己
fetch-registry: false #是否检索服务
serviceUrl:
defaultZone: http://127.0.0.1:8000/eureka/
instance:
prefer-ip-address: true
恭喜你,已经配置完成了,接下来启动项目,登录http://127.0.0.1:8000,如果顺利进入页面,那么久OK了