spring cloud系列教程第一篇-介绍
前言:
现在Java招聘中最常见的是会微服务开发,微服务已经在国内火了几年了,而且也成了趋势了。那么,微服务只是指spring boot吗?当然不是了,微服务需要治理,需要监控等等一系列的组件。这就诞生了spring cloud。从本篇开始,凯哥(凯哥Java:kaigejava)将和大家分享spring cloud系列教程。凯哥将和大家分享2020年之前的spring cloud热门技术。还要会和大家分享2020年比较火的spring cloude Alibaba相关的组件。好了,我们言归正传.
本文主要内容:1:微服务介绍;2:分布式体系常用的几个维度;3:spring cloud以及2020年开始升级的替代技术。
本文是由凯哥(凯哥Java:kagejava)发布的《spring cloud系列教程》教程的第一篇:《spring cloud系列教程第一篇-介绍》。
一:微服务介绍:
Martin Fowler在2014年3月份对微服务的定义:
翻译:
微服务架构是一种架构模式,它提倡将单一的应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务之间采用轻量级的通信机制相互协作(通常是基于HTTP协议的restful API).每个服务都围绕着具体业务进行构建,并且能够被独立的部署在生产环境等。另外,应当尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。
简单理解:生活中,我们都见过搭积木吧。一个完整的积木作品是由很多小的积木配合搭建起来的。我们可以把微服务也这么理解。一个复杂的需求,就相当于是积木最终作品样子,一个一个单一的应用程序(服务)可以理解为一块块的积木。它们之间通过通信机制进行协作。最终实现复杂的功能。这样是不是更好理解了。
二:分布式体系常见的几个维度
分布式体系几个常用见的维度:一般在分布式体系中我们需要考虑的问题,既然是一个一个单一的服务,那么每个服务是不是需要有个统一的注册地方来让其他服务发现?多个服务之间调用怎么来调用?每个单一服务是否运行正常呢?怎么处理?服务的负载怎么处理?如果服务出现了问题怎么办?服务之间队列消息怎么处理?
如下图,是分布式体系需要几个维度及相应维度的处理技术:
从上图中,我们可以发现,当有了微服务后,需要从上面那么多角度来维护,如果一个维度使用一个,那么管理起来是不是很麻烦?现在我们知道,小米手机的生态系统和华为的生态系统做的很好。买了小米手机、小米电脑、小米家电等小米生态中的电子产品,只要一个账号登陆后,很好的兼容。那么微服务有没有类似这样的技术呢?答案是有的:还是spring官方提供的,那就是spring cloud技术。那么,接下来,我们来看看什么是spring cloud.
三:Spring cloud是什么?
Spring cloud是分布式微服务的一站式解决方案,是多种微服务架构落地技术的集合体,俗称:微服务全家桶。
Spring cloud集合中优质技术:
这些优质的技术,用来解决上面提到的几个维度。
目前通用的架构及技术:
分布式体系几个维度常用的几个技术:
上图的不同维度解决方案都是在2020年以前的。但是,从2020年后,有了升级。我们浏览技术网站的时候,是不是会经常看到:spring cloud Alibaba这个东西?对,没错。这就是2020年之后的升级替代产品。我们来看看2020升级后的每个维度解决方案:
四:2020年升级之后各个维度使用技术:
从上图中,我们可以看出,有些技术在2020年之后会慢慢被替换掉。但是,具体你所在的或者是你即将去的公司会不会用最新的技术,这个还不好说的。所以,凯哥这个spring cloud系列教程即会讲解之前的技术也会讲解spring cloud Alibaba 这个最新的技术。欢迎大家和凯哥(凯哥Java:kaigejava)一起学习。