springCloud微服务之注册中心eureka集成
工具 idea
1.创建一个微服务项目
输入groupId和Artifactid
2.添加微服务通用依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<modules>
<module>spring-cloud-eureka</module>
<module>spring-cloud-user</module>
<module>spring-cloud-order</module>
<module>spring-cloud-good</module>
<module>spring-cloud-zuul</module>
<module>spring-cloud-turbine</module>
</modules>
<groupId>com.jdpay</groupId>
<artifactId>Spring-cloud-study</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</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>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.创建eureka服务注册组件并添加依赖
项目右键创建新的module
修改pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>Spring-cloud-study</artifactId>
<groupId>com.jdpay</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-eureka</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
4、创建eureka启动类和配置文件
创建一个包并创建启动类,如下图所示
- @EnableEurekaServer 此注解表示启用服务注册组件,是一个eureka的服务端
@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class,args);
System.out.println("EurekaApplication启动。。。");
}
}
创建springBoot配置文件,配置文件中采用两个端口,这样做的目的是实现eureka的高可用,也就是互相注册,如果其中一个服务出问题了,还有另一个服务在运行着不会导致严重的宕机,当然也可以用docker-compose实现高可用,暂时采用这种方式
- service-url.defaultZone 表示当前服务注册到服务中心的地址,后续的其他服务组件都将采用这种方式注册
- profile 表示启动时激活那个配置文件
- — 此分隔符就是实现分割多个配置参数的作用
spring:
application:
name: spring-cloud-eurekea
server:
port: 8801
eureka:
instance:
hostname: eureka1
client:
service-url:
defaultZone: http://localHost:8801/eureka
---
spring:
profiles: eureka2
server:
port: 8802
eureka:
instance:
hostname: eureka2
client:
service-url:
defaultZone: http://localHost:8802/eureka
5、启动eureka服务注册中心
在idea启动配置里面,复制一个同样的启动配置,填入激活的配置文件名称
出现多个springBoot启动的时候,idea会提示是否使用run dashboard面板,这个面板对于我们同时启动多个组件很方便还可以分组管理
两个同时启动
浏览器访问eureka可视化注册中心
在浏览器访问 http://localhost:8801/
会发现服务注册中心已经都出现了,有两个而且是高可用的