spring cloud简介

Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微服务:就是把一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型,独立开发,独立部署,独立运维.并且多个服务相互协调,相互配合,最终完成用户的价值. Spring Cloud是一系列框架的有序集合。其主要的设施有,服务发现与注册,配置中心,消息总线,负载均衡,断路器,数据监控等,通过Spring Boot的方式,可以实现一键启动,和部署。

Spring 没有重新造车轮,只是把各家的应用给综合起来。最后给开发者遗留下了一个足够简单的,相当容易部署的,相当容易学习的Spring 体系。至于为什么要学习Spring Cloud的体系,因为原先的体系过于复杂了,导致开发的环境艰难,正是由于开发的环境的艰难,Spring Cloud 的是Spring体系的简化版,简化了原有的复杂。

spring cloud搭建

博主使用的是IntelliJ IDEA 2021.1.2 版本进行环境搭建演示,如果使用Eclipse等IDE进行开发可以查看论坛内其他博主的博客进行学习。

打开IntelliJ IDEA

点击file - new - project按钮创建一个新的项目

设置GroupId和项目名称和项目路径

本步骤中的项目路径需要自己手动设置,以免找不到项目存放位置的尴尬情况
点击Finish按钮结束项目的创建,成功创建项目如下图:

这时我们进入IDEA以后会发现我们项目只有Springcloud_Demo一个父项目,下面我问会创建Eureka,Zuul,Service等子模块对项目进行创建来实现微服务。

修改Pom文件

再进行Eureka模块搭建之前我们需要先对”Springcloud_Demo“pom文件进行相关Jar包的依赖导入

完整代码如下

<?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.xmy</groupId><artifactId>Springcloud_Demo</artifactId><version>1.0-SNAPSHOT</version><!-- 1 确定spring boot的版本--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version></parent><!--2  确定版本--><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>1.8</java.version><spring-cloud-release.version>Greenwich.RELEASE</spring-cloud-release.version></properties><!-- 3 锁定sprig cloud版本--><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud-release.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><!-- 4 确定spring cloud私有仓库--><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>
</project>

创建Eureka注册中心模块

关于Eureka

Eureka是基于REST(Representational State Transfer)服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移。我们称此服务为Eureka服务。Eureka提供了java客户端组件,Eureka Client,方便与服务端交互。客户端内置了基于round-robin实现的简单负载均衡。在Netifix,为Eureka提供更为复杂的负载均衡方案进行封装,以实现高可用,它包括基于流量、资源利用率以及请求返回状态的加权负载均衡。

创建Eureka模块

右键点击SpringCloud_Demo父项目后,将鼠标拖入New选项框,点击Module选项创建子模块

点击next进行下一步操作

设置Eureka子模块名称,子模块路径,点击finish完成子模块创建

修改Eureka子模块的Pom文件

当Eureka子模块创建完成的时候,这时Eureka_Demo的pom.xml是没有Jar包依赖的的,我们需要手动导入Eureka需要的Jar包依赖。

详细代码如下

<?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>Springcloud_Demo</artifactId><groupId>com.xmy</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>Eureka_Demo</artifactId><dependencies><!--web起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Eureka服务端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId><version>2.2.1.RELEASE</version></dependency></dependencies></project>

创建核心配置文件application.yml

代码如下:

# Tomcat
server:port: 9099# Spring
spring:application:# 应用名称name: eureka-demo
eureka:client:sevice-url:defaultZone: http://localhost:${server.port}/eurekaregister-with-eureka: falsefetch-registry: false

创建Application启动类

将EurekaApplication启动类配置到Configurations中

点击IDEA右上角的Add Configurations按钮,点击左上角的加号按钮后点击Spring Boot选项进入设置页面,设置启动名称以及启动类文件收点击OK按钮完成设置。

启动Eureka

在浏览器输入访问地址: http://localhost:9099访问Eureka注册中心

创建Zuul网关模块

关于Zuul

Zuul是Netflix开源的微服务网关,它可以和Eureka、Ribbon、hystrix等组件配合使用。Zuul的核心是一系列过滤器。这些过滤器完成以下功能:
1 身份认证和安全:识别每个资源的验证要求,并拒绝那些与要求不符的请求。
2 审查与监控:在边缘位置追踪有意义的数据和统计结果,从而带来精确的生产视图。
3 动态路由:动态地将请求路由到不同的后端集群。
4 压力测试:逐渐增加指向集群的流量,以了解性能。
5 负责分配:为每一种负载类型分配对应容量,并弃用超出限定值的请求。
6 静态响应处理:在边缘位置直接建立部分响应,避免其转发到内部集群。
7 多区域弹性:跨越AWS Region进行请求路由,旨在实现ELB(Elastic Load Blancing)使用的多样化,以及让系统的边缘更贴近系统的使用者。

创建Zuul子模块

右键点击SpringCloud_Demo父项目后,将鼠标拖入New选项框,点击Module选项创建子模块

点击Finish完成子模块创建

修改Zuul子模块的Pom文件

当Zuul子模块创建完成的时候,这时Zuul_Demo的pom.xml是没有Jar包依赖的的,我们需要手动导入Zuul需要的Jar包依赖。

详细代码:

<?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>Springcloud_Demo</artifactId><groupId>com.xmy</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>Zuul_Demo</artifactId><dependencies><!--网关依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency><!--添加eureka客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency></dependencies></project>

创建核心配置文件Application

详细代码:

server:port: 10010
spring:application:name: zuuldemo
zuul:prefix: /api
eureka:client:service-url:defaultZone: http://localhost:9099/eureka

在Zuul_Demo模块下的src/main/resources文件夹下创建application.yml核心配置文件,进行编写核心配置

编写ZuulApplication启动类

在Zuul_Demo模块下的src/main/java/com/xmy路径下创建ZuulApplication.java文件

详细代码如下:

package com.xmy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;@EnableZuulProxy
@EnableEurekaClient
@SpringBootApplication
public class ZuulApplication {public static void main(String[] args){SpringApplication.run(ZuulApplication.class,args);}
}

将ZuulApplication启动类配置到Configurations中

启动Zuul网关模块

需要先启动Eureka注册中心后再启动Zuul网关
访问:http://localhost:9099

可以看到Zuul网关服务已经被注册到Eureka注册中心。

创建Service服务模块

关于Service

Service模块是客户端模块,用户编写代码和功能实现。前端请求发送到Zuul网关再有网关发送到Service服务,可以是系统的安全性提升。

创建Service子模块

右键点击Cloud_Demo父项目后,将鼠标拖入New选项框,点击Module选项创建子模块,

点击ArtifactId输入框输入Service模块名称,在此我们使用Service_Demo进行命名。

点击Finish按钮完成子模块创建。

修改Service子模块的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 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>Springcloud_Demo</artifactId><groupId>com.xmy</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>ServiceDemo</artifactId><dependencies><!--web起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Eureka客户端 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--通用mapper起步依赖--><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.0.4</version></dependency><!--MySQL数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--mybatis分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.3</version></dependency></dependencies></project>

创建核心配置文件

详细代码:

server:port: 9080
spring:application:name: demoservicedatasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/cloud_project?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: 1022
eureka:client:service-url:defaultZone: http://localhost:9099/eureka

在Service_Demo模块下的src/main/resources文件夹下创建application.yml核心配置文件,进行编写核心配置

编写ServiceApplication启动类

在Service_Demo模块下的src/main/java/com/xmy路径下创建ServiceApplication.java文件

详细代码:

package com.xmy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;@SpringBootApplication
@EnableEurekaClient
public class ServiceApplication {public static void main(String[] args){SpringApplication.run(ServiceApplication.class,args);}
}

将ServiceApplication启动类配置到Configurations中

设置启动名称和启动路径后点击OK按钮

启动Service服务模块

需要先启动Eureka注册中心和Zuul网关服务后启动ServiceApplication
访问:http://localhost:9099

可以看到Zuul网关和Service服务都被注册到Eureka注册中心。到此我们的已经完成环境搭建。之后需要自行在Service服务中编写代码来实现功能,想创建多个service都可以,另外每个服务也可以链接不同的数据库;到此一个简单的Spring Cloud的环境搭建已经完成。

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

spring cloud搭建教程相关推荐

  1. 简陋的spring cloud搭建并部署云服务器

    目录 1.创建父项目 2.创建本地Eureka注册中心模块 1.Eureka-server 2.Eureka-client(HelloWorld) 3.总结 3.添加包含业务的eureka子模块 4. ...

  2. springcloud gateway ribbon使用_Github点赞接近 70k 的Spring Cloud学习教程+实战项目推荐!牛批!...

    这篇文章继续来推荐 Spring Cloud 的教程和实战项目了!想必不用不多说,大家都知道 Spring Cloud 的重要程度.几乎稍微有点规模的公司,一般都离不开要和微服务打交道.同时,Spri ...

  3. Spring Cloud入门教程(二):客户端负载均衡(Ribbon)

    对于大型应用系统负载均衡(LB:Load Balancing)是首要被解决一个问题.在微服务之前LB方案主要是集中式负载均衡方案,在服务消费者和服务提供者之间又一个独立的LB,LB通常是专门的硬件,如 ...

  4. Github点赞接近 70k 的Spring Cloud学习教程+实战项目推荐!牛批!

    本文已经收录进:awesome-java (Github 上非常棒的 Java 开源项目集合) 这篇 Guide 来推荐 Spring Cloud 的教程和实战项目了!想必不用不多说,大家都知道 Sp ...

  5. Spring Cloud Alibba教程:Sentinel的使用

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 什么是Sentinel Sentinel,中文翻译为哨兵,是为微服务提供流量控制.熔断降级的功能 ...

  6. Spring Cloud Alibba教程:如何使用Nacos作为配置中心

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 在上一篇文章中讲解了如何使用Nacos作为服务注册中心注册.Nacos除了可以作为服务注册中心, ...

  7. Spring Cloud基础教程

    Spring Cloud基础教程  2017-04-04 被围观 90375 次 该教程内容不定时更新,如您对这些内容感兴趣,可以关注我的博客或微信公众号! 本教程示例代码: GitHub:https ...

  8. 使用Nacos实现服务注册与发现(spring cloud 组件教程大全四)

    使用Nacos实现服务注册与发现(spring cloud 组件教程大全四) idea 创建maven父子工程(spring cloud 组件教程大全 一) windows下nacos的安装及Mysq ...

  9. spring cloud搭建_Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!

    Spring Cloud 的注册中心可以由 Eureka.Consul.Zookeeper.ETCD 等来实现,这里推荐使用 Spring Cloud Eureka 来实现注册中心,它基于 Netfl ...

  10. Spring Cloud入门教程 - Zuul实现API网关和请求过滤

    简介 Zuul是Spring Cloud提供的api网关和过滤组件,它提供如下功能: 认证 过滤 压力测试 Canary测试 动态路由 服务迁移 负载均衡 安全 静态请求处理 动态流量管理 在本教程中 ...

最新文章

  1. canvas动画3:交互
  2. linux 内核维护,Linux 4.18内核系列生命周期结束:用户需尽快更新内核
  3. SEO--我们是不是走错了路?
  4. 以《英雄联盟》为例,看影响MOBA游戏策略的3个层面
  5. sqlserver 查询中文查询不到 查询英文可以查到_估值数据和财报数据查询方法
  6. 数据库---初识sql语句
  7. Spring Boot关于thymeleaf公共页面抽取
  8. 案例解析丨Spark Hive自定义函数应用
  9. Ubuntu12.04中eclipse提示框黑色背景色修改
  10. linux安装mongodb并创建用户
  11. 农学院计算机考试题,天津农学院计算机考试参考.doc
  12. 需求分析文档、概要设计文档、详细设计文档
  13. 2D人脸识别之Camera篇
  14. 虚拟机服务器ip端口映射,VMware虚拟机配置端口转发(端口映射),实现远程访问【转】...
  15. Paypal绑定WorldFirst美元账户免费转账教程!
  16. 服务器CPU型号数字详解,一文读懂CPU的型号标识
  17. 磨皮,美白,搞笑图片处理
  18. 转:教人找电影的攻略
  19. HDU 6438Buy and Resell
  20. Dede URL优化拼音命名

热门文章

  1. Python多线程进程协程
  2. 未能加载文件或程序集 或它的某一个依赖项。试图加载格式不正确的程序。问题解决
  3. 谷歌浏览器翻译插件的安装与使用
  4. 永恒之蓝病毒补丁+封445端口
  5. VS Code 下载、下载慢、更新(适用于压缩包下载)
  6. 线性代数系列讲解第七篇 正交向量及正交空间
  7. C# 使用DataMatrix.net.dll进行二维码打印
  8. 戴尔win10新电脑装linux,如何给戴尔新机装系统win10
  9. 纯手工焊接七彩圣诞树
  10. SHON WEBB:真正的自律,就是将这两件事做到极致