服务注册
谈服务注册,就不得不提到三个对象:服务注册中心,服务提供者,服务消费者。服务提供者在注册中心注册服务,服务消费者在注册中心订阅服务,这样,服务消费者就可以通过在注册中心获取的服务提供者的服务地址,通过调用HTTP请求来使用服务。
1.1 服务注册中心
简而言之,服务注册中心提供:服务注册功能,服务订阅功能,维护服务列表。spring cloud中常用的注册中心有:Eureka, Zookeeper, Consul。
1.2 Eureka的使用
Eureka有三个对象:Eureka Server, Eureka Provider, Eureka Consumer。具体到组件就两个:Eureka Server就是服务端,后面两个都是客户端。
Eureka是用Java开发的,而且提供了采用spring boot进行了封装了的jar包,所以只需要在spring boot项目中引入Eureka的starter即可使用。
1.2.1 Eureka服务端搭建
1.首先创建一个简单的spring boot项目,再引入spring cloud依赖和Eureka的starter依赖(注意spring boot和spring could的版本对应,参看spring could官网)。
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>org.ping</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR1</spring-cloud.version>
</properties>
<dependencies>
<!--eureka-server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.然后在启动类上开启EurekaServer,注解@EnableEurekaServer。
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
3.接着是application全局配置文件。
spring.application.name=eurekaServer
server.port=1111
# 服务端不能注册自己
eureka.client.register-with-eureka=false
# 服务端不需要拉取服务注册列表
eureka.client.fetch-registry=false
4.准备工作完成,启动项目。然后再浏览器输入:http://localhost:1111/,即可看到Eureka服务端管理页面。