【springcloud合集】02:微服务架构理论基础-阿里云开发者社区

开发者社区> 一条coding> 正文

【springcloud合集】02:微服务架构理论基础

简介: 以前的服务器就好像,一个会语数外全能的老师,为学生提供服务,这个老师生病了,那全校停课。现在微服务流行后,学校有了数学教研组,语文教研组,外语教研组,每个教研组有一群老师具体负责某科的教学,缺了谁,学校都照样运转。
+关注继续查看

?

基于分布式的微服务架构满足哪些维度?

服务注册与发现


服务调用


服务熔断


负载均衡


服务降级


服务消息队列


配置中心管理


服务网关


服务监控


全链路追踪


自动化构建部署


服务定时任务调度操作

什么是springcloud?

官方:

?

分布式服务架构的一站式解决方案,是多种微服务架构落地技术的集合体,俗称微服务全家桶。


个人理解:


以前的服务器就好像,一个会语数外全能的老师,为学生提供服务,这个老师生病了,那全校停课。现在微服务流行后,学校有了数学教研组,语文教研组,外语教研组,每个教研组有一群老师具体负责某科的教学,缺了谁,学校都照样运转。


而这个变化中,那些改变历史的程序员就是把一个服务器中的众多服务,或好几台服务器中的众多服务,分类出来,解耦合出来,把他们类似的功能交给同一个集群来做,把互相耦合在一起的功能剥离出来,按业务,按功能来把他们作为一个个微服务放在服务器上,而这个服务器就只提供一个服务,或较少的服务。让一个超大的服务逻辑,解耦合为一个个小服务,均匀的分布在各自的服务器中。微服务就微在这。


每个教研组就是一个微服务集群。他们提供同样的服务,而注册中心Eureka就是这个存放这个教研组老师名单的地方,学生们想先访问这个注册中心获取教师名单,然后根据相应的负载方法去访问各自老师。不至于让集群中某一老师累死也不至于让某一老师闲死。


Zuul网关呢,就是学校的门卫,某些学生来学校找谁,它负责指引(路由),并且通过一些非常简单的配置,达到阻拦一些人进入(身份验证),或者控制想学数学的人只能去数学教研组,不能去核能教研组学怎么造原子弹(权限验证)。


Hystrix熔断器呢,可以把它当成学校的志愿者,当一个教研组集体罢课后,学生找不到老师了,这些志愿者及时的告诉来访问的学生,相应的结果,异常信息等,免得大量的学生在学校等待,这些志愿者赶快把这些等待的学生梳理出去,学生一直在学校等待,那其他需要学生的学校,也会等待学生,最后造成大面积的学校瘫痪。这里学生我们看成一个个请求。熔断器就是把某事故的蔓延即使熔断了。


当然这些组件也是微服务需要注册到Eureka注册中心


Spring Cloud 就可以看成是这个学校了。众多上面提到的组件相当于都是这个学校的各职能部门。



springboot和springcloud版本对应选择

spring boot


源码地址:https://github.com/spring-projects/spring-boot/releases/


中文开发文档:https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Release-Notes


官方推荐:使用2.0+版本——Java 8-Java9



spring cloud


中文开发文档:https://www.bookstack.cn/read/spring-cloud-docs/docs-index.md


官方推荐:G版 H版(过早的版本不再维护)


本系列文章使用的各组件版本:

20201104165235562.png


?

springcloud各功能组件升级那些事

20201104170416892.png

?

1,Eureka停用,可以使用zk作为服务注册中心


2,服务调用,Ribbon准备停更,代替为LoadBalance


3,Feign改为OpenFeign


4,Hystrix停更,改为resilence4j


或者阿里巴巴的sentienl


5.Zuul改为gateway


6,服务配置Config改为 Nacos


7,服务总线Bus改为Nacos



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
SpringCloud迁移至EDAS微服务——Series2:在 ECS 集群中部署 Web 应用
1705 0
Spring Boot 2.x基础教程:使用国产数据库连接池Druid
Spring Boot 2.x基础教程:使用国产数据库连接池Druid
24 0
Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
Spring Boot 2.x基础教程:默认数据源Hikari的配置详解
11 0
1.3—Spring基础配置—1.依赖注入
Spring框架本身有四大原则: 1)使用POJO进行轻量级和最小侵入式开发。 2)通过依赖注入和基于接口编程实现松耦合。 3)通过AOP和默认习惯进行声明式编程。 4)使用AOP和模板(template)减少模式化代码。
1101 0
1.3—Spring基础配置—3.AOP
Sping学习笔记—AOP
1387 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11662 0
初识SpringCloud(2)集群/分布式/微服务/SOA的相关概念
这篇主要来讲讲 Spring Cloud 的一些基础知识。 一、集群/分布式/微服务/SOA是什么? 技术小白看到这些词(集群/分布式/微服务/SOA)时,感觉遥不可及。但真正接触到"面向切面编程"的时候,发现原来如此啊,只不过当时被它的名字给唬住了。
10089 0
Rainbond 部署SpringCloud微服务架构业务实践
SpringCloud架构作为目前业界使用最广的微服务架构模式,其后期运维交付问题较多。如何使用Rainbond来解决SpringCloud微服务架构在交付运维阶段的难题,本文将以实践的方式来阐述。
1354 0
Spring 框架基础(03):核心思想 IOC 说明,案例演示
本文源码:GitHub·点这里 || GitEE·点这里 一、IOC控制反转 1、IOC容器思想 Java系统中对象耦合关系十分复杂,系统的各模块之间依赖,微服务模块之间的相互调用请求,都是这个道理。
1998 0
SpringCloud微服务实战(六)-统一配置中心
1 统一配置中心概述 为什么需要统一配置中心 2 Config Server 直接运行报错,因为会从 git拉取配置文件 在 Git 建立新仓库存放配置文件 ...
1036 0
+关注
121
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载
http://www.vxiaotou.com