微服务
2025-06-09 15:53:49 0 举报
AI智能生成
微服务是一种架构模式,旨在通过将应用程序分解为小型、独立的服务来优化开发和部署。这些服务围绕业务能力组织,每个服务实现特定的业务功能,并通过轻量级的通信机制进行相互间的协作。与传统单体应用架构相比,微服务架构提高了系统的可维护性和伸缩性。核心特性包括服务自治、基础设施自动化、组织文化和技术的演进等。文件类型通常涉及代码仓库、配置文件、文档和API定义等。修饰语可能包括“弹性”、“可扩展”、“分布式”等,以强调其结构的灵活性和对负载的适应性。
作者其他创作
大纲/内容
什么是微服务
以前所有的代码都放在同一个工程中、部署在同一个服务器、同一项目的不同模块不同功能互相抢占资源,微服务就是将工程根据不同的业务规则拆分成微服务,部署在不同的服务器上,服务之间相互调用,java中有的微服务有dubbo(只能用来做微服务)、springcloud( 提供了服务的发现、断路器等)
微服务的特点
按业务划分为一个独立运行的程序,即服务单元
服务之间通过HTTP协议相互通信
自动化部署
可以用不同的编程语言
可以用不同的存储技术
微服务是一个分布式系统
微服务的优势
将复杂的业务拆分为若干小的业务,业务简单化,新人只需要了解他所接管的服务的代码,减少了学习成本
微服务是分布式服务,服务于服务之间没有任何耦合。微服务系统的微服务单元具有很强的横向拓展能力
服务于服务之间采用HTTP网络通信协议来通信,单个服务内部高度耦合,服务与服务之间完全独立,无耦合。这使得微服务可以采用任何的开发语言和技术来实现,提高开发效率、降低开发成本
微服务是按照业务进行拆分的,并有坚实的服务边界,若要重写某一业务代码,不需了解所有业务,重写简单。
微服务的每个服务单元是独立部署的,即独立运行在某个进程中,微服务的修改和部署对其他服务没有影响。
微服务在CAP理论中采用的AP架构,具有高可用分区容错特点。高可用主要体现在系统7x24不间断服务,他要求系统有大量的服务器集群,从而提高系统的负载能力。分区容错也使得系统更加健壮
微服务的不足
微服务的复杂度
构建一个微服务比较复杂,服务与服务之间通过HTTP协议或其他消息传递机制通信,开发者要选出最佳的通信机制,并解决网络服务差时带来的风险
分布式事物
将事物分成多阶段提交,如果一阶段某一节点失败仍会导致数据不正确。如果事物涉及的节点很多,某一节点的网络出现异常会导致整个事务处于阻塞状态,大大降低数据库的性能
服务划分
将一个完整的系统拆分成很多个服务,是一件非常困难的事,因为这涉及了具体的业务场景
服务部署
最佳部署容器Docker
Spring Cloud
什么是Spring Cloud
Spring Cloud是一系列框架的有序集合,给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包
SpringCloud的优点
耦合度比较低。不会影响其他模块的开发
减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发。
配置比较简单,基本用注解就能实现,不用使用过多的配置文件
微服务跨平台的,可以用任何一种语言开发。
每个微服务可以有自己的独立的数据库也有用公共的数据库。
直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然后暴露接口,通过组件进行服务通信。
SpringCloud的缺点
部署比较麻烦,给运维工程师带来一定的麻烦。
针对数据的管理比麻烦,因为微服务可以每个微服务使用一个数据库。
系统集成测试比较麻烦
性能的监控比较麻烦
0 条评论
下一页