微服务架构

微服务架构

微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发、设计、运行和运维的小应用

SOA 和微服务的区别:

  • 微服务不再强调传统 SOA 架构里面比较重的 ESB(企业服务总线 )
  • SOA 的思想进入到单个业务系统内部实现真正的组件化

单体应用本身带来的主要问题

  • **系统复杂:**内部多个模块紧耦合,关联依赖复杂,牵一发动全身
  • **运维困难:**变更或升级的影响分析困难,任何一个小修改都可能导致单体应用整体运行故障
  • **无法扩展:**无法拆分部署,出现性能瓶颈后往往只能够增加服务器或增加集群节点,但是数据库的问题难以解决

引入微服务架构

正是由于单体应用本身带来的问题,考虑引入微服务架构

微服务特点:

  • 一个微服务一般完成某个特定的功能,比如订单管理、客户管理
  • 每个微服务都是一个微型应用,有着自己的六边形架构,包括商业逻辑和各种接口
  • 微服务通过暴露 API 被别的服务或者应用客户端所用
  • 在运行时,每个实例通常是一个云虚拟机或者 Docker 容器

微服务核心

  • 其一足够构成一个小应用(从 DB 到 UI)
  • 其二微服务应用之间只能通过 Service API 进行交互
  • 其三一般运行在云虚拟机或更轻的 Docker 容器上

API Gateway

实际上是微服务架构里面的很重要的内容,其作用类似于传统企业内部的 ESB 服务总线,只是更加轻量和高性能来解决微服务的管控和治理问题

去中心化和全分布式架构中,网关成了一个中心点或瓶颈点,所以需要考虑网关宕机也不要影响到服务的调用和运行

基本服务管控内容

  • 负载均衡
  • 缓存
  • 路由
  • 访问控制
  • 服务代理
  • 监控
  • 日志

可扩展的立方体 3D 模型

即通过微服务架构实施后扩展性的变化

在这里插入图片描述

  • **X轴:**水平弹性扩展能力,即通过负载均衡来实现水平弹性扩展,但是 DB 问题无法解决
  • **Y轴:**本质是应用的分解,即将传统的单体应用分解为多个微服务应用
  • **Z轴:**当微服务应用引入了 DB 扩展问题的时候,可以对数据库进行拆分

微服务的不足

  • **CAP原则:**由于服务无状态和引入了分布式,较难解决事务一致性问题
  • **集成复杂:**任何彻底的分解都将带来集成的复杂度,即模块在集成时需要外部微服务更多的配合
  • **部署问题:**稍大项目都涉及到大量服务节点部署,还涉及到部署后的配置,扩展和监控问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GettingReal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值