见者有缘,缘来好运诚邀各位围观我的博客【CS_GUIDER】
个人主页: wl2o2o
✒️博客主页: CSGUIDER(好玩) CSGUIDER(实用)
⭐八股专栏: JavaU8G(内置MusicPlayer)
我的开源博客涵盖了八股文、设计模式、网站搭建、数据库、Linux系统的教程和笔记。我致力于为您提供Java编程的实用指南和资源,包括Java框架、JVM、微服务以及Git。无论您是初学者还是经验丰富的开发人员,都可以从中获益。谢谢您的光临!
目录
- 什么是微服务
- 微服务的本质
- 特点以及使用场景
- 知识扩展
-
什么是微服务
维基百科这样介绍:
微服务的本质
把一个大项目,根据业务逻辑拆分为一个个小模块,模块之间通过 HTTP 或者其他网络通讯协议进行相互调用,这样的项目叫做微服务项目。
特点以及使用场景
微服务框架的特性:
- 每个服务都容易被取代。
- 服务是以能力来组织的,例如用户界面、前端、推荐系统、账单或是物流等。
- 由于功能被拆成多个服务,因此可以由不同的编程语言、数据库实现。
- 架构是对称而非分层(即生产者与消费者的关系)。
使用场景:
- 适用于具持续交付(Continuous Delivery)的软件开发流程。
- 与服务导向架构(Service-Oriented Architecture)不同,后者是集成各种业务的应用程序,但微服务只属于一个应用程序。
知识扩展
微服务可以使用什么技术实现?
Spring Cloud
Spring Cloud Alibaba
Dubbo
RPC
(GRPC
、TRPC
)
为什么微服务架构受欢迎?
- 降低系统耦合性:通过将功能分解到各个离散的服务中,微服务架构降低了系统的耦合性,使得各个服务能够独立地进行开发、部署和扩展。
- 提高灵活性:由于每个服务都是独立的,可以对不同的服务使用不同的技术栈和编程语言,提高了技术的灵活性和效率。
- 便于维护和调试:每个服务都是独立的,当出现问题时,可以迅速定位并修复问题,不会对整个应用程序造成影响,提高了系统的可维护性和稳定性。
- 易于水平扩展:每个服务都可以独立地进行水平扩展,提高了系统的可扩展性。当某个服务的负载增加时,可以单独对该服务进行扩展,而不会影响其他服务。
- 促进业务创新:微服务架构是更面向业务创新的一种架构模式,使得开发团队可以更快地响应业务需求的变化,提高开发效率和应用程序的迭代速度。
从语雀这次 P0 级事故,我们可以学到什么?
知识扩展
分布式与微服务的区别
简单来说:
- 分布式就是把一个大的项目拆分,部署到多台机器;
微服务是把项目按照功能进行拆分。
- 分布式项目对标单机项目;
微服务项目是与整个项目的业务逻辑进行对比的。
面试问题
什么是分布式锁?什么是单机锁?
分布式锁?顾名思义,分布式锁就是要考虑到多台机器的场景
待补充······