注册中心(Eureka)提供服务的注册和发现功能。每一个微服务都要到注册中心将自己的信息进行注册,才能被已经注册的其他微服务发现和访问。注册中心由Eureka服务端和Eureka客户端组成服务端主要提供注册和发现功能,客户端主要是每一个微服务
注册中心搭建
一,创建一个springboot项目,引入springcloud
pom文件注册中心依赖如下:
1,指定springcloud 版本
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<skipTests>true</skipTests><!-- 跳过测试 -->
<spring-cloud.version>Edgware.SR4</spring-cloud.version>
</properties>
2,添加<dependencyManagement>
<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>
3, 添加springcloud和Eureka依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
二,修改application.properties文件
#服务名称,注册中心根据服务名发现服务
spring.application.name=springcloud-eureka
#端口号
server.port=8001
#表示是否将自己注册到Eureka Server,默认为true
eureka.client.register-with-eureka=false
#表示是否从Eureka Server获取注册信息,默认为true
eureka.client.fetch-registry=false
#设置与Eureka Server交互的地址
#查询服务和注册服务都需要依赖这个地址。默认是http://localhost:8761/eureka
#多个地址可使用 , 分隔
eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/
三,修改XXXApplication.java
@EnableEurekaServer
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
四,注册中心集群
由于注册中心是关键服务如果是单点的话,出现故障就是毁灭性的,所以要使用集群的方式降低风险
每次部署修改application.properties文件中的server.port和eureka.client.serviceUrl.defaultZone,也可以创建多个application-xxxxx.properties文件打包后通过命令java -jar XXXX.jar --spring.profiles.active=xxxx运行
spring.application.name=springcloud-eureka
server.port=8001
eureka.client.serviceUrl.defaultZone=\
http://localhost:8002/eureka/,http://localhost:8003/eureka/
#Spring就会自动为我们获取第一个非回环IP地址(自动获取ip)
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=\
${spring.cloud.client.ipAddress}:${server.port}