微服务基本概念是什么

71次阅读
没有评论

共计 2331 个字符,预计需要花费 6 分钟才能阅读完成。

这篇文章主要介绍了微服务基本概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微服务基本概念是什么文章都会有所收获,下面我们一起来看看吧。

微服务基本概念架构的演变

为什么会有微服务?

假如回到 10 年前,一天张三入职了电商企业—并夕夕商城。

公司初创,人比较少,公司网站的用户也很少,公司只有一个工程师

项目架构比较简单

1. 单体架构

没有想到的是,公司业务越来越好,网站用户量越来越大,单体架构的问题就暴露出来了,随着访问量增加,项目经常宕机

问题:架构简单 难以抗住高并发

于是,招人。对并夕夕商城进行升级优化。

分析升级的方向:

数据库 和 应用代码要放在不同的服务器上

增加应用负载能力【集群】

于是增加负载均衡。

2. 负载均衡

分布式:一个系统 通过多台服务器 协同完成系统功能

集群:同一个系统放在了多台服务器上 且每个服务器上内容相同 复制了多份

负载均衡的问题

成本

Session

增加负载均衡之后,应用服务器不再是系统的瓶颈了,可以灵活的随着访问量增大的同时增加应用服务器集群的数量。

随着业务量不断增加,数据量也在不断增加,数据库出现性能瓶颈。

招人

在多位同事努力之下,对项目进行进一步的优化—读写分离。

3. 读写分离

上述的架构看上去非常的完美,但是,随着并夕夕商城业务量的不断增加,新的问题暴露了出来。

问题:

商品搜索使用数据库模糊查询不行,不精确,慢【全文检索】

图书查询 模糊匹配

不同模块的数据访问的频率是不一样的(热度不同),首页数据访问量比较大,订单数据的访问量相比之下要小很多。所有的数据都去数据库取,影响首页访问速度【缓存】

招人

4. 全文检索缓存

所有的同事开始一起优化项目,商品搜索使用全文检索技术 ES 完成,并且引入缓存(Redis 集群),于是架构变成了这个亚子。

随着并夕夕商城不断壮大,公司迎来了风投,风投两个亿,于是商城发展的更快了,新的问题出现了。

问题:

不同业务模块之间的耦合太高,一个模块出问题整个服务器宕机

维护困难,假如应用服务器集群 200 台,那么项目上线意味着需要部署 200 台服务器

譬如:修改了订单的代码 订单模块要重新部署 意味着所有的服务器都需要重新部署一遍

冗余,有些模块没有必要部署在所有的服务器上

招人:100 个人的团队,对项目进行新的优化和升级—服务化(SOA),根据业务模块的不同,拆分为不同的应用。

以上就是分布式的架构

5. 服务化

于是公司进入轰轰烈烈的服务化时代,但是有几个问题需要被解决,如下

每一个模块都是一个独立的项目 都可以独立启动 这样的做法 就叫做服务化 模块变成项目之后我们称之为服务 首页模块 —》首页服务

这就是服务化 这就是微服务,微服务是:特殊的分布式架构【服务化】

首页的访问量比较大 就可以部署五个

订单的访问量小 就可以只部署一个

问题:

服务之间怎么调用?例如:订单服务需要调用商品服务的数据,怎么调用?

怎么负载均衡?服务之间负载均衡?app 访问后台怎么负载均衡?

服务怎么被管理?例如:商品服务宕机了,怎么即时的通知订单服务?如果没有通知订单服务,订单服务发的请求都会阻塞,造成订单宕机,引发链式故障,整个项目崩溃

服务之间的异常处理?

……

以上每一个问题都需要一个新的技术解决,而引入的新技术就是微服务技术,SpringCloud(一套技术)

如何解决这几个问题 又需要用到一些新的技术,这些技术就是所谓的微服务的技术(SpringCloud)

基于上面的问题,整个并夕夕商城团队疯狂的努力,找到了一些技术(SpringCloud),分别解决了上述问题,架构图如下:

到此为止,并夕夕商城成为了一个微服务的架构。

服务化 微服务主要的内容就是按照业务模块拆分不同的应用服务,并且解决拆分之后遇到的问题

什么是微服务

每个服务可独立运行在自己的进程里 每个服务独立部署启动

一系列独立运行的微服务共同构建起整个系统

每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理,用户管理【按照服务拆分】

微服务之间通过一些轻量的通信机制进行通信,例如 Restful API(HTTP)进行调用【订单服务如何调用商品服务】

可以使用不同的编程语言与数据存储技术开发

官网链接:https://www.martinfowler.com/articles/microservices.html

什么是 SpringCloud

SpringCloud= 分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。Spring Cloud 是一个含概多个子项目的开发工具集,集合了众多的开源框架,他利用了 Spring Boot 开发的便利性实现了很多功能,如服务注册,服务发现,负载均衡等。

服务管理 需要一个技术

服务调用 需要一个技术

负载均衡 需要一个技术

…….

这些技术怎么来?

自己找,技术之间的整合没有一定的技术实力搞不定

SpringCloud,SpringCloud 官方找了一套解决微服务问题的技术,做了封装和整合,让用户可以直接使用,不需要关心技术整合的问题

开发微服务相当于买一台电脑

自己组装,自己找微服务的技术相当于自己组装电脑

买品牌机,使用 SpringCloud 相当于直接买了一个联想的电脑,CPU 显卡等等都帮你处理好了

SpringBoot 和 SpringCloud 有什么关系

使用负载均衡需要很多的配置,写配置

自己写配置

SpringBoot 自动配置

SpringCloud 使用了 SpringBoot 作为底层,通过 SpringBoot 的自动配置简化分布式的开发

关于“微服务基本概念是什么”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“微服务基本概念是什么”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-04发表,共计2331字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)