既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
一、SpringCloud体系简介
微服务架构已在云原生架构中发挥着举足轻重的作用,而SpingCloud无疑是微服务架构的集大成者,云计算最佳业务实践。
SpringCloud体系主要包括以下组件:
- 服务注册与发现:如Eureka、Consul、Nacos、zookeeper等;
- 服务配置管理:如SpringCloud config、zookeeper、Nacos、Apollo等;
- 服务调用:如Feign、Ribbon、RestTemplate等;
- 服务熔断:如Hystrix、Sentinel等;
- 服务网关:如SpringCloud Gateway、Zuul等;
- 客户端负载均衡:如Ribbon等;
- 服务链路跟踪:如Sleuth等;
- 服务消息总线:如SpringCloud Bus等;
- 分布式消息:如SpringCloud Stream+RocketMQ等;
- 分布式事务:如Seata等。
Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能。Eureka包含Eureka Server和Eureka Client两个组件。
- Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息。
- Eureka Client是一个java客户端,用于与Eureka Server交互,客户端同时也有一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
二、Eureka服务端开发
创建项目父工程
- 新建maven父项目parent,用于统一管理依赖。
- 引入pom依赖,这里使用的SpringCloud版本是Hoxton.SR3
<modelVersion>4.0.0</modelVersion>
<groupId>com.cxy965</groupId>
<artifactId>parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<description>A maven project to study maven.</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR3</spring-cloud.version>
</properties>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>${tomcat.scope}</scope>
</dependency>
</dependencies>
</dependencyManagement>
创建服务端子工程
- 创建注册中心第一个服务端项目registry
- 引入eureka-server的依赖
<groupId>com.cxy965</groupId>
<artifactId>registry</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>com.cxy965</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
</dependencies>
- 编写启动类,增加**@EnableEurekaServer**注解,表示为服务端
package com.cxy965.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* @Author:公众号:程序员965
* @create 2022-06-06
**/
@EnableEurekaServer
@SpringBootApplication
public class RegistryApplication {
public static void main(String[] args) {
SpringApplication.run(RegistryApplication.class, args);
}
}
- 新建application.yml配置文件,定义端口等信息
server:
port: 8001
spring:
application:
name: registry
eureka:
instance:
hostname: 0.0.0.0
lease-renewal-interval-in-seconds: 10 #服务的注册涉及到心跳连接,默认为每30s
lease-expiration-duration-in-seconds: 30 #服务被移除的时间默认为90s
client:
healthcheck:
enabled: true #开启心跳
register-with-eureka: false
fetch-registry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
registry-fetch-interval-seconds: 30 #eureka client间隔多久去拉取服务注册信息,默认为30秒
这样第一个Eureka服务端就开发完成了,接下来我们创建集群。
三、Eureka服务端集群搭建
如果要搭建服务端集群,需要开启 Eureka 集群配置,各服务端启动时 Eureka Server 会将注册信息向其它 Eureka Server 进行同步,因此搭建高可用集群架构只需要将 Eureke Server 配置指向其它可用的 serviceUrl 即可。
- 复制上面 Eureka 单个服务端项目,创建集群第一个服务eurekaserver1;
- 修改application.yml配置文件;
在上面 Eureka 单个服务端项目的基础上,修改配置文件中的 register-with-eureka、fetch-registry以及serviceUrl.defaultZone参数,如下:
server:
port: 8001
spring:
application:
![img](https://img-blog.csdnimg.cn/img_convert/3f0b7a8e0c3832546fb45ead3464a0ae.png)
![img](https://img-blog.csdnimg.cn/img_convert/90097e0d59900c88761d711fd5b8779d.png)
![img](https://img-blog.csdnimg.cn/img_convert/6793ab76d1c0026f373c2496ad07c624.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
转存中...(img-oDvKTenB-1715083523527)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**