今天开始学习微服务
首先从三部分开始简单的认识微服务:
服务器架构的演变
微服务技术对比
Spring Cloud
服务器架构的演变
单体(应用)架构:这是最初的服务器架构形式,所有的功能都被打包成一个单独的应用程序,运行在一个或多个服务器上。
优点:
架构简单
部署成本低
缺点:
耦合度高、可维护性差、扩展性不足
分布式架构:为了解决单体应用架构的问题,人们开始尝试将系统拆分为多个独立的服务,每个服务运行在单独的服务器上,这就是分布式架构
优点:
降低服务耦合
有利于服务升级拓展
分布式架构的要考虑的问题:
服务拆分粒度如何?
服务集群地址如何维护?
服务之间如何实现远程调用?
服务健康状态如何感知?
面向服务架构(SOA):SOA强调将业务逻辑封装为可重用的服务,并通过标准的接口进行通信。
优点:
服务更加松耦合
提高灵活性和可重用性
微服务架构:微服务是一种经过良好架构设计的分布式架构方案,是SOA的进一步演化,每个服务都运行在独立的进程中,并使用轻量级通信协议进行通信。
优点:
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
面向服务:微服务对外暴露业务接口
自治:团队独立、技术独立、数据独立、部署独立
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务技术对比
微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo。
SpringCloud
SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https://spring.io/projects/spring-cloud。
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
这些组件使得开发人员能够轻松地实现微服务的各种功能,如服务注册与发现、负载均衡、熔断机制、配置管理等。Spring Cloud还提供了对分布式系统的链路追踪功能,可以帮助开发人员快速定位和解决问题。
资料来自哔哩哔哩