介绍
Eureka的服务发现包含两大组件:服务端发现组件(Eureka Server)和客户端发现组件(Eureka Client)。服务端发现组件也被称之为服务注册中心,主要提供了服务的注册功能,而客户端发现组件主要用于处理服务的注册与发现。
1 首先创建一个meven 父工程 这里用到的依赖,这里重点注意环境中使用的是jdk8 ,切勿用高版本,
<?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>
<groupId>com.qqwl.erueka</groupId>
<artifactId>eruekaDemo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>eureka-server</module>
<module>erueka-provider</module>
<module>erueka-consumer</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
这里目录结构
2 新建子工程erueka-server
<?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>eruekaDemo</artifactId>
<groupId>com.qqwl.erueka</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>eureka-server</artifactId>
<description>注册中心</description>
<dependencies>
<!--eureka服务端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
启动类编写
package com.qqwl.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer// 这里加上注册中心注解
@SpringBootApplication
public class EureakApplication {
public static void main(String[] args) {
SpringApplication.run(EureakApplication.class, args);
}
}
配置文件
server:
port: 10086
eureka:
instance:
ip-address: 127.0.0.1 # 应用实例IP
client:
register-with-eureka: false # 是否将自己注册到eureka中
fetch-registry: false # 是否从eureka中获取信息
service-url: # 注册中心地址
defaultZone: http://127.0.0.1:10086/eureka/
这里启动后 用网站打开localhost:10086 查看搭建注册中心
3 新建子工程erueka-provider 服务提供者
依赖
<?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>eruekaDemo</artifactId>
<groupId>com.qqwl.erueka</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<!--服务提供者-->
<artifactId>erueka-provider</artifactId>
<dependencies>
<!--mybatis依赖-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--eureka客户端-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</project>
启动类 请注意这个@EnableEurekaClient 注解
package com.qqwl;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class EurekaProvider {
public static void main(String[] args) {
SpringApplication.run(EurekaProvider.class,args);
}
}
配置文件
server:
port: 9091
spring:
application:
name: erueka-provider #服务提供者
datasource:
driver-class-name: com.mysql.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/jyb?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
eureka:
client:
service-url: # 注册中心地址
defaultZone: http://127.0.0.1:10086/eureka/ #默认注册的地址
4 服务消费者 ,
依赖
<?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>eruekaDemo</artifactId>
<groupId>com.qqwl.erueka</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>erueka-consumer</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
</dependencies>
</project>
配置文件
# 配置应用基本信息
server:
port: 8081
spring:
application:
name: erueka-consumer
# 配置eureka server
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:10086/eureka
启动类参考步骤3
这里注意启动顺序,先启动注册中心Eureka-Server 在启动其他服务,这里需要其他服务注册到Eureka-server 进行管理,可以访问http://127.0.0.1:10086 查看注册情况
源码:https://gitee.com/hizhongyuan/eureka-demo.git