用一张图来认识以下:
上图简要描述了Eureka的基本架构,由3个角色组成:
1、Eureka Server 提供服务注册和发现
2、Service Provider 服务提供方 将自身服务注册到Eureka,从而使服务消费方能够找到
3、Service Consumer 服务消费方 从Eureka获取注册服务列表,从而能够消费服务
案例:
1 在pom.xml文件引入依赖jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
2 配置文件
spring.application.name=spring-cloud-eureka
server.port=8000
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
eureka.client.register-with-eureka :表示是否将自己注册到Eureka Server,默认为true。
eureka.client.fetch-registry :表示是否从Eureka Server获取注册信息,默认为true。
eureka.client.serviceUrl.defaultZone :设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka ;多个地址可使用 , 分隔。
3 在启动类添加@EnableEurekaServer注解
@SpringBootApplication
@EnableEurekaServer
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
启动工程后,访问:http://localhost:8000/,可以看到下面的页面,其中还没有发现任何服务
集群注册中心:
eureka-server作为服务注册中心,若发生故障会导致严重事故。在实际中可能需要多台服务注册中心确保服务高可用
1 配置文件application.yml如下:
---
spring:
application:
name: spring-cloud-eureka
profiles: peer1
server:
port: 8000
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer2
server:
port: 8001
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
application:
name: spring-cloud-eureka
profiles: peer3
server:
port: 8002
eureka:
instance:
hostname: peer3
client:
serviceUrl:
defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/
2 配置C:\Windows\System32\drivers\etc下的hosts文件:
127.0.0.1 peer1
127.0.0.1 peer2
127.0.0.1 peer3
3 将项目打成jar包 依次运行
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3
4 访问:http://localhost:8001/