文章目录

认识微服务单体架构分布式架构需要考虑的问题

微服务微服务的具体架构微服务技术对比企业中的技术需求

总结

服务拆分注意事项

认识微服务

随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢?

了解微服务架构的优缺点

单体架构

单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。

单体架构的优缺点如下:

优点:

架构简单部署成本低

缺点:

耦合度高(维护困难、升级困难)

分布式架构

分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

分布式架构的优缺点:

优点:

降低服务耦合有利于服务升级和拓展

缺点:

服务调用关系错综复杂

需要考虑的问题

服务拆分的粒度如何界定?服务集群地址如何维护?服务之间如何调用?服务健康状态如何感知?

集群、微服务、分布式

①. 微服务:拒绝大型单体应用,基于业务对微服务进行拆分,各个服务独立部署运行

(微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器)

②. 集群、分布式、节点

集群:几台服务集中在一起,实现同一业务

集群可以是我是一个应用。这一个应用扛不住了,把这个应用部署在不同的机器上,对外提供的是一个服务 分布式:将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)节点:集群中的一个服务器

注意:集群(多个人在一起作同样的事情) 分布式(多个人在一起作不同的事)分布式中的每一个节点都可以做集群,而集群不一定是分布式的集群是个物理形态,分布式是工作方式

举例:

小饭店原来只有一个厨师,切菜洗菜备料炒菜全干后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,两个厨师的关系是集群为了让厨师专心炒菜,把菜做到极致,再请了个配菜师负责切菜,备菜,备料 … 厨师和配菜师的关系是分布式一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。一个配菜师因故请假了,但是其余的配菜师还是该啥就干啥,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群

微服务

微服务的架构特征:

单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责自治:团队独立、技术独立、数据独立,独立部署和交付面向服务:服务提供统一标准的接口,与语言和技术无关隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。、

微服务的具体架构

但方案该怎么落地?选用什么样的技术栈?全球的互联网公司都在积极尝试自己的微服务落地方案。

其中在Java领域最引人注目的就是SpringCloud提供的方案了。

微服务技术对比

企业中的技术需求

学习的使用的版本

SpringBoot版本是2.3.4.RELEASESpringCloud版本是Hoxton.SR8spring-cloud-alibaba-dependencies是2.2.2.RELEASE

UTF-8

UTF-8

1.8

Hoxton.SR8

5.1.47

2.1.1

总结

单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝 微服务:一种良好的分布式架构方案

①优点:拆分粒度更小、服务更独立、耦合度更低 ②缺点:架构非常复杂,运维、监控、部署难度提高

SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件

服务拆分注意事项

不同微服务,不要重复开发相同业务微服务数据独立,不要访问其它微服务的数据库微服务可以将自己的业务暴露为接口,供其它微服务调用

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。