【Java】升级版微服务教程—为什么会有微服务?什么是SpringCloud?
微服务基本概念
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/2495306481...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
https://xueqiu.com/7940455712...
架构的演变
为什么会有微服务?
假如回到10年前,一天张三入职了电商企业—并夕夕商城。
1.单体架构
没有想到的是,公司业务越来越好,网站用户量越来越大,单体架构的问题就暴露出来了,随着访问量增加,项目经常宕机
于是,招人。对并夕夕商城进行升级优化。
于是增加负载均衡。
2.负载均衡
分布式:一个系统 通过多台服务器 协同完成系统功能
集群:同一个系统放在了多台服务器上 且每个服务器上内容相同 复制了多份
增加负载均衡之后,应用服务器不再是系统的瓶颈了,可以灵活的随着访问量增大的同时增加应用服务器集群的数量。
随着业务量不断增加,数据量也在不断增加,数据库出现性能瓶颈。
招人
在多位同事努力之下,对项目进行进一步的优化—读写分离。
3.读写分离
上述的架构看上去非常的完美,但是,随着并夕夕商城业务量的不断增加,新的问题暴露了出来。
问题:
商品搜索使用数据库模糊查询不行,不精确,慢 【全文检索】
- 不同模块的数据访问的频率是不一样的(热度不同),首页数据访问量比较大,订单数据的访问量相比之下要小很多。所有的数据都去数据库取,影响首页访问速度 【缓存】
招人
4.全文检索缓存
所有的同事开始一起优化项目,商品搜索使用全文检索技术ES完成,并且引入缓存(Redis集群),于是架构变成了这个亚子。
随着并夕夕商城不断壮大,公司迎来了风投,风投两个亿,于是商城发展的更快了,新的问题出现了。
招人:100个人的团队,对项目进行新的优化和升级—服务化(SOA),根据业务模块的不同,拆分为不同的应用。
以上就是分布式的架构
5.服务化
于是公司进入轰轰烈烈的服务化时代,但是有几个问题需要被解决,如下
每一个模块都是一个独立的项目 都可以独立启动 这样的做法 就叫做服务化 模块变成项目之后我们称之为服务 首页模块---》首页服务
问题:
- 服务之间怎么调用?例如:订单服务需要调用商品服务的数据,怎么调用?
- 怎么负载均衡?服务之间负载均衡?app访问后台怎么负载均衡?
- 服务怎么被管理?例如:商品服务宕机了,怎么即时的通知订单服务?如果没有通知订单服务,订单服务发的请求都会阻塞,造成订单宕机,引发链式故障,整个项目崩溃
- 服务之间的异常处理?
......
以上每一个问题都需要一个新的技术解决,而引入的新技术就是微服务技术,SpringCloud(一套技术)
如何解决这几个问题 又需要用到一些新的技术,这些技术就是所谓的微服务的技术(SpringCloud)
基于上面的问题,整个并夕夕商城团队疯狂的努力,找到了一些技术(SpringCloud),分别解决了上述问题,架构图如下:
到此为止,并夕夕商城成为了一个微服务的架构。
什么是微服务
the microservice architectural style [[1]](https://www.martinfowler.com/... is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.【官方文档】
- 每个服务可独立运行在自己的进程里 每个服务独立部署启动
- 一系列独立运行的微服务共同构建起整个系统
每个服务为独立的业务开发,一个微服务只关注某个特定的功能,例如订单管理,用户管理【按照服务拆分】
微服务之间通过一些轻量的通信机制进行通信,例如Restful API(HTTP)进行调用【订单服务如何调用商品服务】
- 可以使用不同的编程语言与数据存储技术开发
官网链接:https://www.martinfowler.com/articles/microservices.html
什么是SpringCloud
SpringCloud=分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。Spring Cloud是一个含概多个子项目的开发工具集,集合了众多的开源框架,他利用了Spring Boot开发的便利性实现了很多功能,如服务注册,服务发现,负载均衡等。
SpringBoot 和 SpringCloud有什么关系
SpringCloud 使用了 SpringBoot 作为底层,通过SpringBoot的自动配置简化分布式的开发
以上是 【Java】升级版微服务教程—为什么会有微服务?什么是SpringCloud? 的全部内容, 来源链接: utcz.com/a/96058.html