您现在的位置是:首页 >技术杂谈 >spring cloud搭建(eureka)网站首页技术杂谈
spring cloud搭建(eureka)
天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习新东西是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
spring cloud搭建
spring cloud 相关组件搭建(建议顺序):
- eureka(注册中心服务)本篇
- P-C service(服务提供者和服务调用者)spring cloud搭建(P-C service)
- feign(接口调用)spring cloud搭建(feign)
- hystrix(熔断器)spring cloud搭建(hystrix)
- zuul(网关服务)spring cloud搭建(zuul)
一、spring cloud简介
- springcloud是spring体系的简化版。
- spring cloud是基于spring boot实现的管理项目的工具包。
- spring cloud利用spring boot的开发便利性简化了分布式系统的开发。
- springcloud微服务架构可以把一个项目拆分为多个微服务,每个微服务相对独立(包括技术选型独立、开发独立、部署独立、运维独立),但多个服务间又相互配合协调,完成整体的项目,完整服务于用户。
- springcloud有一系列框架,如服务注册中心、配置中心、消息总线、负载均衡、断路器、数据监控等。
- spring cloud通过spring boot来启动和部署。
二、开发环境:
JDK版本:1.8
maven版本:3.9.0
开发工具:IDEA社区版ideaIC-2018.3
项目框架:spring boot 版本为 2.7.3 springboot搭建传送门spring cloud 版本为 2021.0.5
三、创建并配置父项目spring_cloud_demo
创建一个maven项目,作为父项目,进行配置pom
具体步骤如下:
1. 创建项目
File–>New–>Project…
2. 删除src包
用不到这个,右键Delete即可
3. 配置父项目pom.xml
3.1 父项目所需依赖
<!--spring boot版本控制-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
</parent>
<!--父类依赖管理-->
<dependencyManagement>
<dependencies>
<!--spring cloud版本控制-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
注:这里经常出现spring boot和spring cloud版本兼容问题,上面用的两个版本是兼容的,如果使用其他版本遇到兼容问题可参考这篇文章解决:
spring boot和spring cloud版本兼容问题解决
3.2 父项目完整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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cloud</groupId>
<artifactId>spring_cloud_demo</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>spring_cloud_eureka</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--spring boot版本控制-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.3</version>
</parent>
<!--父类依赖管理-->
<dependencyManagement>
<dependencies>
<!--spring cloud版本控制-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.5</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
到此父项目就创建并配置完成
四、创建并配置子项目eureka
eureka介绍
- eureka是一个基于REST的服务,通过它可以将服务注册以及获取服务信息,可以实现负载均衡和中间层服务故障转移的功能。
- 与zookeeper相似,可以作为服务注册中心。
- 服务提供者将服务注册到eureka,服务的消费者通过eureka获取服务信息后调用服务提供者。
1.创建子项目eureka
右键spring_cloud_demo父项目–New–Module
填写信息并创建
2. 配置Eureka的pom.xml
2.1 Eureka所需依赖
<dependencies>
<!--spring boot web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring cloud eureka server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
2.2 eureka完整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_demo</artifactId>
<groupId>com.cloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spring_cloud_eureka</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--spring boot web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring cloud eureka server-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
</project>
3. 创建eureka包结构
创建两个文件
在java包下创建com.eureka包,在eureka包中创建Eureka服务启动类EurekaApplication.java
在resources包下创建Eureka配置文件application.yml
4. 创建Eureka的启动类
注意,在启动类上添加@EnableEurekaServer注解开启Eureka
EurekaApplication.java
package com.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @ClassDescription: eureka启动项
* 注解@EnableEurekaServer是用来开启注册中心服务的
* @Author:李白
* @Date:2023/5/30 17:08
*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
5. 配置Eureka服务的yml文件
application.yml
#Tomcat
server:
port: 8001
#Spring
spring:
application:
#这里是项目别名,当该服务被注册到注册中心后,会以此名称显示该服务
name: Eureka_app
#Eureka
eureka:
#客户端
client:
#是否将服务注册到eureka客户端,默认是打开的,可在注册中心查看已注册的服务
register-with-eureka: false
#是否发现注册中心的已注册的服务信息,默认是打开的,可以获取已注册到eureka中的服务的信息列表
fetch-registry: false
#服务地址
service-url:
#默认的服务地址,eureka注册中心的地址,可以访问它查看已注册的服务
defaultZone: http://localhost:${server.port}/eureka/
6. 启动Eureka服务
启动后控制台大概这个样子就是成功了
8. 查看注册中心
根据自己配置的端口,访问以下地址即可查看注册中心
http://localhost:8001
已注册的服务实例会展示在Instances currently registered with Eureka列表下
以上就是spring cloud搭建中的Eureka部分