认识微服务

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

1.认识微服务

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

1.0.学习目标

了解微服务架构的优缺点

1.1.单体架构

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

image-20210713202807818

单体架构的优缺点如下:

优点:

  • 架构简单
  • 部署成本低

缺点:

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

1.2.分布式架构

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

image-20210713203124797

分布式架构的优缺点:

优点:

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

缺点:

  • 服务调用关系错综复杂

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

  • 服务拆分的粒度如何界定?
  • 服务之间如何调用?
  • 服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

1.3.微服务

微服务的架构特征:

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

image-20210713203753373

微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。

因此,可以认为微服务是一种经过良好架构设计的分布式架构方案 。

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

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

1.4.SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。

SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。

其中常见的组件包括:

image-20210713204155887

另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:

image-20210713205003790

我们课堂学习的版本是 Hoxton.SR10,因此对应的SpringBoot版本是2.3.x版本。

1.5.总结

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

    ①优点:拆分粒度更小、服务更独立、耦合度更低

    ②缺点:架构非常复杂,运维、监控、部署难度提高

  • SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件
相关文章
|
网络协议 Go
curl --resolve参数的作用
curl --resolve参数的作用
1391 0
|
网络架构
子网划分中subnet-id可以取全0和全1吗?子网计算实战
子网划分划分中的全0 和全 1在不同模式下处理情况不同。分为 classful 和classless,如果你的路由器工作在classful环境下,全0 和全1网段是不能使用的,而classless的掩码任何时候都和IP地址成对地出现。所以说要看题目给的具体情况,
1330 0
|
存储 缓存 JSON
Unity资源热更新知识梳理及工作流介绍
研究了大半年的热更,才做出了一套相对完善的热更架构。不得不说,这块的知识点还是多而杂的,值得专门开篇博文来记录梳理。
3644 0
|
3月前
|
人工智能 IDE 开发工具
2026年阿里云Qoder CN编程智能体全解:核心配置、接入流程与定价体系说明
2026年阿里云Qoder CN作为本土化专业AI编程智能体,完成产品体系全面升级,整合多端编程工具、智能代码理解、跨文件工程重构、私域知识库适配等核心能力,是面向个人开发者、研发团队、企业技术部门打造的全栈式智能编程平台。区别于通用对话大模型,Qoder CN深度适配国内开发习惯、代码规范与工程场景,依托百炼大模型生态,兼容多款主流国产大模型,搭配分层清晰的订阅定价与轻量化接入流程,可覆盖零基础代码学习、日常工程开发、大型项目迭代、企业规范化研发等全维度场景,成为当前本土化AI编程工具的核心代表。
739 4
|
3月前
|
机器学习/深度学习 缓存 人工智能
SSE流式传输稳定性进阶:心跳保活、断连重连、分片处理与双端容错实战.162
SSE(Server-Sent Events)是基于HTTP的单向流式协议,天然适配大模型逐字输出场景。具备轻量、兼容性好、自动重连、低内存占用等优势,相比WebSocket更契合服务端单向推送需求,是AI应用流式响应的理想选择。
628 8
|
4月前
|
弹性计算 安全 网络虚拟化
阿里云VPC专有网络架构规划完全指南:从零构建企业级网站服务器网络
本文提供了一份从零开始的阿里云专有网络VPC架构规划与网站服务器部署的完整实战指南。首先从VPC网络规划的核心原则入手,详细讲解CIDR地址选择、交换机多可用区设计、公网与私有子网分层隔离等基础规划方法。接着深入剖析VPC内部的核心组件搭建,包括SLB负载均衡的多可用区高可用配置、安全组与网络ACL的分层访问控制体系构建。在此基础上,系统讲解了如何通过云企业网CEN实现跨地域VPC互联、通过高速通道专线与IPsec VPN实现混合云架构,以及通过共享VPC实现多账号资源互通。文中还提供了VPC创建、SLB配置、安全组规则设置等实践代码示例,并对NAT网关统一公网出口、共享带宽包、IPv6启用等
|
5月前
|
存储 运维 网络协议
数据存储架构技术有哪些?一文掌握数据存储三大架构技术!
本文深入解析DAS、NAS、SAN三大存储架构:DAS直连低延迟但难扩展;NAS网络共享便捷,适合文件协作;SAN高性能高可靠,支撑核心业务。厘清差异,助你科学选型、降本增效、避开运维雷区。
|
11月前
|
存储 缓存 固态存储
系统分区完全指南:多种方法实现专业磁盘管理
合理磁盘分区可提升搜索效率、增强容错性、优化性能并便于管理。建议分为系统盘与数据盘,Windows推荐GPT格式,支持更大容量与UEFI启动。可通过系统自带工具或DiskGenius进行分区操作,注意备份、4K对齐及电源稳定。
2315 3
|
11月前
|
前端开发 数据库连接 API
ReactJS代码示例: 文件方式配置及环境变量的使用
总结一下,在ReactJS中使用文件方式来设置和获取环境变量是非常方便和实用的。只需要创建一个 .env文件,并在其中添加相应的键值对即可。然后,在代码中通过 process.env.YOUR_VARIABLE_NAME 来获取相应值即可。如果有不同开发和生产环境,则可能需要为每个环境创建一个单独 .env.environment_name 文件,并根据当前运行模式加载相应文件。
296 13