为什要微服务化?

这篇具有很好参考价值的文章主要介绍了为什要微服务化?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什要微服务化?

一、大而集中式的服务

从 0 到 1 的堆砌式发展

一个服务承载所有,一个系统涵盖一切,这可能是大多数公司初创时的技术风貌。一切追求快速验证,快速响应,快速实现。

但是,伴随着业务的膨胀发展,相应的技术支撑要求也在不断提升。从最开始的一个简单的服务,不断地添枝加叶,各种各样的功能模块相继被堆砌式添加上去。慢慢的服务开始变得臃肿,繁杂。功能模块间相互交织,耦合,混乱不堪。

  • 同一个服务模块可能会在多个地方被不同方式的使用;
  • 一个数据可能被存多张表中,并且数据经常不一致;
  • 修改一个功能却不小心影响了其它功能;
  • 一个小小的变动却要重新上线整个服务,造成大量功能抖动;
  • 想要集成某些新特性,却因为现有繁杂的无关依赖冲突所扰;
  • 每个新来的人员都要都要花费大量时间去熟悉,梳理整个系统的面貌;
  • 面对新的业务需求支撑,往往捉襟见肘。
  • ... ... 等等

二、微服务化需要做哪些事情?

1、明确界限

最直接的问题就是,你要把整个集中式的大服务拆成哪几个服务?

这并不是一个容易的问题,它不仅仅是技术方面的问题,更多的要考虑到业务的界限。

比如,对于一个社区,可以基本的划分为用户、内容两块儿。

用户模块可以继续分为用户基础、访问、设置、权限等。

内容则可以继续细分为内容、审核、推荐、搜索等。

业务大了,每一块儿都会成为一个体量服务应用。

2、依赖定序

在明确了服务界限之后,就要进一步明确当前服务的脉络结构、流程链条、依赖关系等。

  • 哪些是上游服务?
  • 哪些是支持性的服务?
  • 哪些是最核心服务?
  • 哪些是最基础的服务?
  • 哪些是业务性不强,单纯地功能性依赖服务?
  • 哪些是对外依赖最小的服务?
  • 哪些是非核心却耗资源的服务?
  • ... ... 等等。

好了,知道了这些,我们就可以确定一个服务拆分的先后顺序。当然,顺序没有固定原则,每个公司可以根据当下的实际情况去调整。

一般来说,最基础的服务是依赖最多的,也是相对核心的,这个会作为第一顺序去拆解出来。比如,对于用户模块的用户信息服务,内容模块的内容服务等。后续的拆解的服务也可以此为基础,避免再去依赖旧服务。

另外,对于业务关联不强的服务,如短信,推送、图片等,也可以同步进行。尤其是对于图片、推送这些存在相对集中式耗费网络资源的,应该优先分离。

三、服务架构

架构需要考虑什么?

用什么?什么能支撑?能达到什么样的效果?

1、基础框架

什么是框架?

它是一种助力、一种经验总结的高效支持。

就像八股文,明确的行文格式(开篇、收尾、字数等),只需要往里填充内容就是一篇合格的八股文。

2、交互

微服务化后面临的最直接的问题是:服务间如何交互?

交互,其实无非两种方式:接口、消息。

两种方式不是只选其一,实际应用中,不同场景,往往需要结合使用。

3、治理

微服务化后,整体服务的复杂性由服务本身上升到了网络层。

  • 服务不可用怎么办?
  • 接口调用超时怎办?
  • 消息丢失、重复怎么办?
  • 流量突增怎么办?
  • 服务链路怎么链接起来?
  • ... ... 等等。

此时,你可能需要了解:服务注册发现、负载均衡、熔断降级、流量控制、服务重试、服务监控、版本管理、分布式配置中心、链路追踪、分布式日志系统等等一系列问题。

四、实施

抛开框架、结构层面的东西,其实最直接关系的是业务逻辑的迁移。而在这一点上,仔细、审慎则尤为重要。缺了、漏了、变更意图都是不能容忍的。

静态代码自检、共检 + 动态流量快照逻辑验证可以作为最基本遵循的原则。

五、附加订阅

为什要微服务化?文章来源地址https://www.toymoban.com/news/detail-472951.html

到了这里,关于为什要微服务化?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot + activiti实现activiti微服务化

    本文介绍如何将springboot+activiti进行整合,并配合eureka,zuul和feign实现activiti的微服务化,将流程控制和业务逻辑分离. 并实现了几个比较特殊的功能,比如时间段委托(某人请假或出差,出差时间内,所有待办交给被委托人处理),比如节点的无限级加签功能(流程本身有不确定性,临时增加

    2024年02月09日
    浏览(39)
  • PaddleOCR 服务化部署(基于PaddleHub Serving)

    最近用到百度飞桨的 PaddleOCR,研究了一下PaddleOCR的服务化部署,简单记录一些部署过程和碰到的问题。 基础环境 paddlepaddle 2.5.2 python 3.7 paddlehub 2.1.0 PaddleOCR 2.6 pip 20 部署过程中也尝试多次,不同版本遇到的问题不尽相同,这里选取其中一组进行部署说明 使用 docker部署 paddl

    2024年03月09日
    浏览(42)
  • 【架构设计】单体软件向微服务化演变

    假设单体软件的各模块如下,其中服务包含许多功能模块,如用户管理模块、商品模块、订单模块、仓库模块; 服务化是指对单体服务进行拆分,将一个服务软件拆分为多个相互关联的服务,他们之间相互协作,能正常完成原单体服务的所有业务。 服务化后,有如下优点:

    2024年01月17日
    浏览(83)
  • 分布式、服务化的ERP系统架构设计

    ERP 之痛        曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理等等。作为一个管理系统,大家的一般开发习惯就是使用

    2024年02月11日
    浏览(56)
  • 【flask】python使用flask发布http服务对算法服务化封装

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 随着应用场景的变化,某些场景中需要调用python的算法对B/S或C/S结构的项目进行支撑,为了将算法服务化,可以使用flask框架对算法进行服务发布,避免不同系统调用算法时进行多次算法的部署以及代码

    2024年04月16日
    浏览(56)
  • PaddleOCR 使用 FastDeploy 服务化部署及postman、java调用服务的方法

    目录 服务化部署 postman调用 java调用 题外话 部署这块大部分按着官方文档来做就差不多 PaddleOCR/deploy/fastdeploy/serving/fastdeploy_serving at dygraph · PaddlePaddle/PaddleOCR · GitHub 提一下两个需要注意的点。 一、如果跟我一样选择的是cpu的版本,那么修改config.pbtxt配置文件时不仅得按官方

    2024年02月08日
    浏览(40)
  • 解析UI页面结构树的逆向解析服务化:技术探索与应用

    “限时免费赠送!人工智能测试开发资料大礼包,把握测试行业的新机遇\\\" 解析UI页面结构树的逆向解析服务化是一项具有挑战性和前景广阔的技术,它可以用于多种场景,例如网页内容分析、自动化测试、网页爬虫等。下面是一些技术探索与应用方面的讨论: 技术探索 HTM

    2024年04月16日
    浏览(48)
  • GroundingDINO(一种开集目标检测算法)服务化,根据文本生成检测框

    最近发现一个叫GroundingDINO的开集目标检测算法,所谓开集目标检测就是能检测的目标类别不局限于训练的类别,这个算法可以通过输入文本的prompt然后输出对应的目标框。可以用来做预标注或者其他应用,比如我们要训练某个细分场景的算法时,我们找不到足够的已经标注的

    2024年02月06日
    浏览(49)
  • AI架构师必知必会系列:模型部署与服务化、Mass架构设计方案详解和代码实战指南

    作者:禅与计算机程序设计艺术

    2024年02月05日
    浏览(60)
  • 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 基于 Paddle Serving快速使用(服务化部署 - Docker)

    目录 安装 Docker 安装 PaddleOCR 安装 准备PaddleServing的运行环境, 模型转换 Paddle Serving pipeline部署 重启 测试 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 预测部署简介与总览 百度飞桨(PaddlePaddle) - PP-OCRv3 文字检测识别系统 Paddle Inference 模型推理(离线部署) 百度飞桨(Paddl

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包