1、介绍:注册中心eureka是spring cloud微服务架构的基石,所有服务比如网关、配置中心等等都需要依赖于网关服务。当然你也可以使用zokkeeper来替代。两者最主要区别是zk有leader而eureka是相对独立的。取舍看自身。
spring cloud项目推荐大家使用idea环境开发,因为对cloud匹配非常友好。
2、eureka服务器配置:
(1)创建一个boot项目(idea支持直接创建eureka项目),并引入以来(即pom文件)。
解读:Dalston.SR4为cloud依赖版本;dependencyManagement提供cloud父级依赖;eureka-server为euraka服务器jar;security为eureka简单登录验证jar
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </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> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </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>
(2)启动类配置启动eureka服务器:@EnableEurekaServer
(3) 配置文件:application.properties配置(当然也可以使用yml文件。不过个人还是喜欢也试验properties文件)
server.port=8761 #security基础验证 management.security.enabled=true security.basic.enabled=true security.user.name=root security.user.password=123456 #eureka是否注册自己、是否获取注册表信息 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false #eureka注册信息 eureka.instance.hostname=localhost eureka.client.serviceUrl.defaultZone= http://${security.user.name}:${security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/ #eureka.client.serviceUrl.defaultZone=http://user:123456@localhost:8761/eureka/ eureka.server.enable-self-preservation=false #eureka server刷新readCacheMap的时间,注意,client读取的是readCacheMap,这个时间决定了多久会把readWriteCacheMap的缓存更新到readCacheMap上/默认0 eureka.server.response-cache-update-interval-ms=30000 #eureka server缓存readWriteCacheMap失效时间,这个只有在这个时间过去后缓存才会失效,失效前不会更新,过期后从registry重新读取注册服务信息,registry是一个ConcurrentHashMap。 #由于启用了evict其实就用不太上改这个配置了/默认180s #eureka.server.response-cache-auto-expiration-in-seconds=30000 #启用主动失效,并且每次主动失效检测间隔为30s,默认为0 eureka.server.eviction-interval-timer-in-ms=30000
(4)启动服务,访问localhost:8761 即可查看eureka注册页面
2、eureka客户端配置
(1)添加依赖
<!--eureka客户端--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency>
(2)启动类中添加注解:@EnableEurekaClient
(3)application.properties中添加配置:
################################################################################ # eureka 配置 #项目名称 spring.application.name=APP_NAME #端口 server.port=8085 #注册eureka eureka.client.serviceUrl.defaultZone=http://root:123456@127.0.0.1:8761/eureka/ #eureka client刷新本地缓存时间/默认30s eureka.client.registry-fetch-interval-seconds=5
3、解读eureka、2.0版本与此版本配置区别:
(1)依赖差别:
spring-cloud-starter-netflix-eureka-server
spring-cloud-starter-netflix-eureka-client
(2)security在2.0版本需要代码继承实现。(此处欠缺、未试验出来)