前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务系统架构

微服务系统架构

作者头像
GreatSQL社区
发布2023-02-24 09:52:17
3430
发布2023-02-24 09:52:17
举报
文章被收录于专栏:GreatSQL出品技术文章

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。

微服务系统架构

背景

回忆一下微服务架构是如何进化产生的,最早出现的是单体应用架构,后来为了具备一定的扩展和可靠性,就有了垂直拆分架构,也就是加了个负载均衡,而到现在的微服务架构则是进一步在探讨一个应用系统该如何设计才能够更好的开发、管理更加灵活高效。

什么是微服务架构

微服务架构的核心思想是:分而治之,就是开发多个围绕业务领域的组件来构建应用,让组件可以独立的开发、测试、部署和加速。

其优点在于:

  • 支持独立迭代按需扩展,适合业务快速变化和扩展
  • 支持分布式或多团队开发,不同的团队负责各自不同的领域,相对独立、专注,也就更高效
  • 支持多语言混合开发、多版本组件独立部署、测试和共存

微服务架构的前置条件

从技术角度看:服务注册、统一配置、安全认证、统一日志/告警、分布式事务、持续集成等基础服务要前置于业务模块之前完成,该部分工作如果在业务实现后,重构增加该部分功能会增加不必要的成本。

从团队角度看:架构和团队的影响是双向的,微服务在组织的落地需要实践或者点,需要组织内部成员在:服务划分、持续交付、问题分析等领域形成一些经验后,再分步骤推广。

微服务架构的原则

无状态原则

首先,需要定义一下状态,如果数据需要被多个服务或特定服务的多个阶段共享,可以将其成为状态。

无状态原则并不是说在微服务架构中不允许状态的存在,而是要把有状态的服务改变成无状态的独立业务服务,比如:将状态数据在请求间传递或放到分布式存储中,都可以解决状态服务的问题,这样服务就可以按需动态伸缩。

Restful通信风格

  • JSON请求和响应,轻量简单,人机可读
  • 实现编程语言无关
  • 基于无状态HTTP协议,易测试易扩展

前后端分离

简单的说,就是前后端代码物理分离,而不是将:JS, HTML, CSS, JSP都堆到一起,后期难以维护。

微服务架构与SOA架构的异同

相同点:

  • 业务被拆分成多个不同的服务
  • 单个服务支持部署多个
  • 单一服务支持同时多版本部署

不同点:

  • 微服务的指导方针中包括:每个服务使用独立的数据库存储
  • SOA服务之间通常通过ESB消息总线进行通信,微服务之间通常直接通信

微服务架构适用的场景

  • 研发团队:研发团队分布式、多开发语言场景下相对适合,人员在20人以上的规模
  • 有独立的运维部署团队
  • 业务复杂:10+以上核心业务模块,且业务持续升级改进
  • 项目需要长期迭代维护
  • 业务处于高速发展期或成熟期

微服务架构不适用的场景

  • 初创公司或10人以下的小团队
  • 概念验证性质的项目

微服务与单体应用在生产率上的比较

根据马丁·福勒介绍, 在系统复杂度较小时,单体应用的生产率更高,微服务架构反而降低了生产率。但是,当复杂度到了一定规模,无论采用单体应用还是微服务架构,都会降低系统的生产率。区别是:单体应用生产率开始急剧下降,而微服务架构则能缓解生产率下降的程度。如下图:

结束语

在软件开发的世界,没有银弹,架构的选择是基于研发团队、业务需求和市场机会等因素综合考虑的结果,不要人云亦云,也不要因循守旧,

Enjoy GreatSQL :)


点击小程序留言


深入浅出MGR》视频课程

戳此小程序即可直达B站

https://www.bilibili.com/medialist/play/1363850082?business=space_collection&business_id=343928&desc=0


文章推荐:


关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee: https://gitee.com/GreatSQL/GreatSQL

GitHub: https://github.com/GreatSQL/GreatSQL

Bilibili:

https://space.bilibili.com/1363850082/video

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GreatSQL社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 微服务系统架构
    • 背景
      • 什么是微服务架构
        • 微服务架构的前置条件
          • 微服务架构的原则
            • 无状态原则
          • Restful通信风格
            • 前后端分离
              • 微服务架构与SOA架构的异同
                • 微服务架构适用的场景
                  • 微服务架构不适用的场景
                    • 微服务与单体应用在生产率上的比较
                      • 结束语
                      相关产品与服务
                      云数据库 SQL Server
                      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档