温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

微服务基本概念是什么

发布时间:2022-01-12 09:07:07 来源:亿速云 阅读:145 作者:iii 栏目:云计算

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

微服务基本概念

架构的演变

为什么会有微服务?

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

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

项目架构比较简单

1.单体架构

微服务基本概念是什么

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

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

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

分析升级的方向:

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

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

于是增加负载均衡

2.负载均衡

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

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

微服务基本概念是什么

负载均衡的问题

  1. 成本

  2. Session

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

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

招人

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

3.读写分离

微服务基本概念是什么

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

问题:

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

    图书查询 模糊匹配

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

招人

4.全文检索缓存

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

微服务基本概念是什么

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

问题:

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

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

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

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

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

以上就是分布式的架构

5.服务化

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

微服务基本概念是什么

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

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

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

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

微服务基本概念是什么

问题:

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

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

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

  4. 服务之间的异常处理?

    ......

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

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

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

微服务基本概念是什么

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

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

什么是微服务

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

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

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

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

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

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

什么是SpringCloud

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

  • 服务管理 需要一个技术

  • 服务调用 需要一个技术

  • 负载均衡 需要一个技术

    .......

这些技术怎么来?

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

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

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

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

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

SpringBoot 和 SpringCloud有什么关系

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

  • 自己写配置

  • SpringBoot自动配置

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

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI