快捷搜索:  汽车  科技

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)右键工程-New-Model开始新建EurekaService模块:File-New-Project这里可以什么都不选springboot父工程新建完成后结构

一、SpringCloud简介

Spring Cloud是一系列框架的有序集合提,供了快速构建分布式系统的一些工具,它利用springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。所以需要开发中对springboot有一定的了解,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

二、创建服务注册中心

2.1EurekaService注册中心

srpingCloud Eureka是SpringCloud Netfix组件中的一部分,是服务注册和发现模块,所有服务都需要在这里注册;

2.2创建EurekaService

首先创建一个springboot父工程,后面其他所有小模块全部在这基础上创建;

File-New-Project

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(1)

这里可以什么都不选

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(2)

springboot父工程新建完成后结构

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(3)

开始新建EurekaService模块:

右键工程-New-Model

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(4)

这里我的springboot版本是2.2.7,勾选Eureka Server 点击next

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(5)

Eureka Server模块新建完成后目录结构:

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(6)

Eureka Server的pom文件:

<?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.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.firstwave</groupId> <artifactId>sf-server-eureka</artifactId> <version>0.0.1-SNAPSHOT</version> <name>sf-server-eureka</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR4</spring-cloud.version> </properties> <dependencies> <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.3启动EurekaServer

在Eureka Server模块的启动类中添加@EnableEurekaServer注解

package com.firstwave.sfservereureka; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class SfServerEurekaApplication { public static void main(String[] args) { SpringApplication.run(SfServerEurekaApplication.class args); } }

配置文件application.properties

# server server.port=8761 # application spring.application.name=server-eureka # eureka eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/ # eureka eureka.instance.hostname=localhost # 设置不注册自身 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false

默认注册中心会注册自身,设置eureka.client.register-with-eureka:false和eureka.client.fetch-registry:false来表明自己是一个eureka server,不注册自己。

执行SfServerEurekaApplication启动注册中心;

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(7)

2.4访问注册中心

eureka server 是有界面的,打开浏览器访问:http://localhost:8761 界面如下:

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(8)

2.5创建服务提供者(EurekaClient)

当EurekaClient注册到服务中心时,他会提供一些元数据,比如主机、端口等,EurekaServer 从每个EurekaClient实例接收心跳消息,如果发生超时,则注册中心会删除超时的实例。

创建过程与EurekaServer类似,选择依赖包时勾选Discovery Client

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(9)

创建EurekaClient后结构如下:

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(10)

对应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 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.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.firstwave</groupId> <artifactId>sf-eureka-client</artifactId> <version>0.0.1-SNAPSHOT</version> <name>sf-eureka-client</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <spring-cloud.version>Hoxton.SR4</spring-cloud.version> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</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>

在启动类中添加注解@EnableEurekaClient表明自己是一个EurekaClient

仅仅@EnableEurekaClient是不够的,还需要在配置文件中注明自己的服务注册中心的地址

spring.application.name=eureka-client server.port=8762 # eureka eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

spring.application.name很重要,后面服务与服务之间的相互调用都是通过这个名字去映射的

先启动刚刚创建的EurekaServer 再启动EurekaClient 顺序不能错,要不然注册不了;

启动工程成功后,打开http://localhost:8761

springcloudeureka怎么用(SpringCloud第一篇服务注册与发现Eureka)(11)

源码:https://gitee.com/shafeipersional/sf-springcloud-learning/tree/master/chapter1/sf-springcloud-learning

猜您喜欢: