关于Spring-Could Api文档地址
中文文档:https://springcloud.cc/
官方文档:http://projects.spring.io/spring-cloud/#quick-start
Spring Cloud 服务注册实现原理:
A、B、C、三个服务将项目注册到注册中心去,注册中心会不定时的检测每个项目的是否正常运行或者被注册。
先创建一个Maven-Project root父类便于版本控制(pom)
编写POM文件添加Spring-Cloud基本应用包
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.2.3.RELEASEversion>
parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>Dalston.SR1version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
创建注册中心项目springcloud-eureka 并且通过maven指定父类目录
编写spring-demo-register 文件添加依赖包文件POM.xml,加入的 spring-cloud-starter-eureka-server 会自动引入 spring-boot-starter-web,因此只需 加入该依赖,我们的项目就具有 Web 容器的功能
<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-eureka-serverartifactId>
dependency>
dependencies>
配置application.ym文件,eureka.client.registerWithEureka 属性,声明是否将自己的信息注册到 Eureka 服务器,默认值为 true。属性 eureka.client.fetchRegistry 则表示, 是否到 Eureka 服务 器中抓取注册信息,server.port表示服务器端口,eureka.instance.hostname表示主机名
server:
port: 8888
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
编写启动类, 启动我们的 Eureka 服务器
了@EnableEurekaServer, 声明这是一个Eureka服务器
@SpringBootApplication
@EnableEurekaServer
public class RegisterMain
{
public static void main(String[] args)
{
new SpringApplicationBuilder(RegisterMain.class).run(args);
}
}
springcloud-root和springcloud-eureka模块目录层级结构:
访问 localhost:8888,出现如下页面,表示注册中心已完成
创建一个springcloud-common maven项目
编写启动类
@EnableEurekaClient 声明该应用是Eureka 客户端
@SpringBootApplication
@EnableEurekaClient
public class AppMain
{
public static void main(String[] args)
{
new SpringApplicationBuilder(AppMain.class).run(args);
}
}
配置application.ym文件,将应用名称配置为 spring-cloud-comon, 该服务将会被注册到端口为 8888 的 Eureka服务器,也就是前面所构建的服务器
server:
port: 8001
spring:
application:
name: spring-cloud-comon
eureka:
instance:
hostname: localhost
instance-id: spring-cloud-comon
appname: ${spring.application.name}
client:
service-url:
defaultZone: http://localhost:8888/eureka/
大家可以看到,在没有将spring-cloud-comon服务注册到Eureka服务器时,Eureka服务器页面,Application下面是空的