南城区做网站,建设网站必须要服务器吗,直播软件的app,企业网d1net一句话导读 微服务是一种架构模式#xff0c;英文翻译 microservice#xff0c;微服务架构的核心理念是将大型、复杂的单体应用拆分成更小的、自治的组件#xff0c;每个组件即为一个微服务
目录
一句话导读
一、微服务的定义
二、微服务的特点 1.独立性 2.松耦合 3.可伸…一句话导读 微服务是一种架构模式英文翻译 microservice微服务架构的核心理念是将大型、复杂的单体应用拆分成更小的、自治的组件每个组件即为一个微服务
目录
一句话导读
一、微服务的定义
二、微服务的特点 1.独立性 2.松耦合 3.可伸缩性 4.技术多样性 5.独立部署
三、微服务的利与弊 1.优点 2.弊端
四、微服务架构典型示例 一、微服务的定义 微服务Microservice是一种以服务为中心的软件架构模式按照我们之前文章的讨论他是为了解决单体应用复杂度问题的一个手段将复杂的单体应用通过不同的方法拆分成合理的一系列微小的服务每个服务负责一个特定的业务功能可以独立开发、部署和扩展独自为一个进程可以是不同的语言开发服务间采用轻量级的通讯协议如http、消息队列等进行交互多个服务组合形成一个微服务体系服务间松耦合并高度自治。
二、微服务的特点 1.独立性 每个微服务都是独立的应用单元可以独立部署和运行。这使得团队可以独立开发和扩展服务而不会对其他服务造成影响。 2.松耦合 微服务之间使用轻量级的通信机制进行交互从而实现了松耦合。这使得服务之间的变更和演化更加容易不会影响其他服务的正常运行。 3.可伸缩性 由于每个微服务都可以独立扩展可以根据实际需求调整每个服务的资源和容量从而实现更好的可伸缩性。 4.技术多样性 微服务架构允许不同的服务使用不同的技术栈和编程语言这使得团队可以选择最适合其业务需求和技术能力的技术。 5.独立部署 由于微服务独立部署可以更快地进行部署和发布新功能从而实现持续交付和快速响应业务需求。
三、微服务的利与弊 1.优点 降低复杂度将大型工程分而治之每个微服务只关注某一个领域 独立开发部署每个微服务都可以由不同的团队独立开发和部署使得团队具有更大的自治权和快速迭代能力 技术选型不受限制各自团队可以根据自己团队的技术特点选择合适的技术栈完成开发只要遵循统一的接口协议即可 服务可以独立扩展微服务要求服务间松耦合相互独立各自拥有自己的数据库无状态接口这使得服务可以独立扩展不受限制 故障隔离由于微服务是独立不是的一个微服务的故障不会影像到其他微服务的正常运行提高了整个系统的稳定性 2.弊端 服务拆分是难题如何做服务拆分服务之间的边界在哪里如何做到松耦合这些问题都是比较棘手的问题 项目整体管理难对于一个大型项目如果项目被拆分出几十上百个小服务、小团队各自拥有自己的管理风格和技术栈要想整体管理该项目那将是一个大的项目管理工程。 服务发现与治理难随着服务数量的增加服务发现和治理变得更加困难需要引入额外的组件和机制来管理服务。 服务通信开销增大微服务之间的通信可能涉及网络开销特别是在服务数量庞大时可能会导致性能问题 数据一致性难保证由于每个微服务都有自己的数据存储数据一致性成为一个挑战需要采取合适的解决方案来确保数据一致性。 跨服务测试和调试难在微服务架构中跨服务的测试和调试可能变得复杂需要合理的测试策略和工具。
四、微服务架构典型示例 拿我们上篇博客《02单体应用真的是地狱吗》中国的例子来说小王和小任的教育APP发展到一定阶段业务是越来越复杂最后他们是考虑用微服务来解决这个问题将服务拆分成了认证服务、用户服务、口算服务、打卡服务、订单服务、商城服务、报表服务等等伴随着业务的不对发展后续肯定还有新的服务出现。如下图微服务架构是一个体系涵盖了服务注册、配置、治理、调用、监控等等。 图1 微服务典型架构