SpringCloud微服务

前言

    开始之前,我们先聊聊,从我们最先接触服务,应该很多都是在tomcat中部署好自己的服务(常见的web服务器还有WebLogic、Apache、Nginx等),提供给外部进行访问。这时候就有个问题值得思考,万一这个tomcat挂了,服务死了呢?这时候我们了解到了集群,多加了一个tomcat,这样一个挂了还有一个。那么两个tomcat怎么访问比较好呢,Nginx出来了,使用Nginx做反向代理,通过Nginx将请求根据相应的规则代理到指定的tomcat中。等等,Nginx也会挂吧。没错,我们继续为Nginx做集群,这样看起来是不是就好很多了,服务也有了很好的保障。
在这里插入图片描述
    这个时候,我们的服务在足够庞大的情况下,想一想,我们修改任一个模块的某个配置,这个时候我们需要全部重新打包进行部署,是不是感觉就比较麻烦了。那么这个时候我们将服务中的各个模块进行垂直分割。比如我们的电商系统中有:用户模块、商品模块、订单模块、支付模块、物流模块等,我们将每一个模块拆分出来做成一个单独的服务,这个时候,我们无论对其中的哪个模块进行修改,只需要对该模块重新打包发布,其余的将不受影响,这样是不是方便更多了。这个时候我们每个模块之间通过RPC(远程过程调用)互相进行通信,照样可以完成各个模块之间的功能。
    可是呢,随着模块的增多,各个模块之间的调用关系是不是就显得比较复杂且难以维护了呢。这个时候是不是找一个能把这些服务进行管理的领导者呢。没错,注册中心就是来做这件事情的。所有的服务将自己注册到注册中心中,报告自己的实时状况,调用者需要服务的时候,就去找注册中心,告诉它自己需要什么服务,取对应的服务进行调用,这样是不是就清晰很多了。当然,这仅仅只是开始,一个强大的分布式系统不仅仅以这点东西作为支撑,我们慢慢来学习。
当前所知的两套开发微服务的技术栈:

Dubbo+zookeeper(注册中心)
SpringCloud+Eureka(注册中心)

了解SpringCloud

1、什么是SpringCloud
    SpringCloud是基于SpringBoot提供了一套完整的微服务解决方案,包括服务的注册与发现、客户端负载均衡、熔断器、配置中心、服务网关、全链路追踪等组件。在学习SpringCloud之前,必须了解SpringBoot,SpringCloud是基于SpringBoot进行开发的。
2、首先通过下面这张图了解一下SpringCloud相关功能:
在这里插入图片描述

注:图不是我画的,在此感谢画图的大牛!!!

3、SpringCloud的五大核心组件:

服务注册与发现:Netflix Eureka
客户端负载均衡:Netflix Ribbon
断路器:Netflix Hystirx
服务网关:Netflix Zuul
分布式配置中心:Spring Cloud Config

4、Spring Cloud版本
    SpringCloud版本名称的命名方式采用了伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如:最早的版本:Angel,第二个版本:Brixton,然后是Camden、Dalston、Edgware、 Finchley、Greenwich、Hoxton。

spring-cloud版本列表如下:

https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies

spring-boot-starter-parent 版本如下:

https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent

5、SpringCloud与SpringBoot版本的对应关系
查看地址:

https://start.spring.io/actuator/info
"spring-cloud": {
	"Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5",
	"Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5",
	"Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6",
	"Finchley.M5": "Spring Boot >=2.0.0.M7 and <=2.0.0.M7",
	"Finchley.M6": "Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1",
	"Finchley.M7": "Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2",
	"Finchley.M9": "Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE",
	"Finchley.RC1": "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE",
	"Finchley.RC2": "Spring Boot >=2.0.2.RELEASE and <2.0.3.RELEASE",
	"Finchley.SR4": "Spring Boot >=2.0.3.RELEASE and <2.0.999.BUILD-SNAPSHOT",
	"Finchley.BUILD-SNAPSHOT": "Spring Boot >=2.0.999.BUILD-SNAPSHOT and <2.1.0.M3",
	"Greenwich.M1": "Spring Boot >=2.1.0.M3 and <2.1.0.RELEASE",
	"Greenwich.SR6": "Spring Boot >=2.1.0.RELEASE and <2.1.999.BUILD-SNAPSHOT",
	"Greenwich.BUILD-SNAPSHOT": "Spring Boot >=2.1.999.BUILD-SNAPSHOT and <2.2.0.M4",
	"Hoxton.SR9": "Spring Boot >=2.2.0.M4 and <2.3.8.BUILD-SNAPSHOT",
	"Hoxton.BUILD-SNAPSHOT": "Spring Boot >=2.3.8.BUILD-SNAPSHOT and <2.4.0.M1",
	"2020.0.0-M3": "Spring Boot >=2.4.0.M1 and <=2.4.0.M1",
	"2020.0.0-M4": "Spring Boot >=2.4.0.M2 and <=2.4.0-M3",
	"2020.0.0-M6": "Spring Boot >=2.4.0.M4 and <2.4.2-SNAPSHOT",
	"2020.0.0-SNAPSHOT": "Spring Boot >=2.4.2-SNAPSHOT"
}

6、相关资料
Spring Cloud Netflix中文文档

https://www.springcloud.cc/spring-cloud-netflix.html

Spring Cloud中文网

https://www.springcloud.cc/

SpringCloud常用五大组件

SpringCloud之Eureka服务的注册与发现
SpringCloud之Ribbon负载均衡器
SpringCloud之Hystrix断路器
SpringCloud之Zuul服务网关
SpringCloud之Spring Cloud Config分布式配置

SpringCloud其他组件

SpringCloud之Spring Cloud Bus消息总线

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值