首页 > 其他分享 >什么时候用微服务或者单体架构

什么时候用微服务或者单体架构

时间:2024-09-01 11:24:11浏览次数:13  
标签:服务 部署 复杂性 单体 可扩展性 用微 应用 架构

1 .微服务和单体架构

  1. 微服务架构是一种面向服务的架构风格,它将大型复杂的软件应用拆分为一组独立部署的轻量级服务。这些服务通常围绕业务功能构建,可以独立开发、部署、运行,并通过定义良好的接口进行通信。
  2. 为什么会出现微服务架构
  • 微服务架构的出现主要是为了应对大型应用的复杂性和快速变化的业务需求。随着业务的增长,单体应用的复杂度和代码量会不断增加,导致维护和扩展变得困难。微服务架构通过将应用拆分成多个服务,每个服务负责特定的功能,从而提高了系统的可维护性、可扩展性和敏捷性。
  1. 什么情况下使用微服务
  • 当应用规模较大,业务模块多,且需要频繁更新和迭代时。
  • 当需要使用不同的技术栈或编程语言来满足特定服务的需求时。
  • 当需要实现服务的独立部署和扩展,以及快速响应市场变化时。
  • 当企业需要构建弹性和容错性较强的系统时。
  1. 什么情况下使用单体服务
  • 当应用规模较小,业务逻辑不复杂,且更新频率较低时。
  • 当团队规模较小,开发和维护成本需要控制在较低水平时。
  • 当应用的部署和运维相对简单,且没有高可用性和可扩展性的强烈需求时。
  1. 微服务的优缺点
  • 微服务架构的优点包括:
  • 高度可扩展性:可以独立扩展特定的服务。
  • 独立开发和部署:每个服务可以由不同的团队使用不同的技术栈开发和部署。
  • 技术栈灵活性:允许使用多种编程语言和技术。
  • 容错性和可维护性:服务之间的故障隔离,易于维护和升级。
  • 高度可组合性:服务之间通过API进行通信,易于组合和重用。
  • 微服务架构的缺点包括:
  • 分布式系统复杂性:管理和维护多个服务增加了系统的复杂性。
  • 系统间通信开销:服务间的通信可能导致性能问题。
  • 运维复杂性:需要更多的运维工作来确保服务的稳定性和可用性。
  • 测试和调试困难:需要进行跨服务的集成测试和调试。
  1. 某公司执行微服务合并的原因
  • 简化架构:减少服务数量以降低系统复杂性。
  • 提高效率:合并相关服务可以减少通信开销,提高系统性能。
  • 降低成本:减少运维和管理的工作量,降低成本。
  • 改善协作:减少服务边界,促进团队间的协作和沟通。

综上所述,微服务架构的采用和合并取决于应用的具体需求、团队的能力以及业务的发展阶段。要以业务为主,不要为技术而技术

标签:服务,部署,复杂性,单体,可扩展性,用微,应用,架构
From: https://blog.csdn.net/bear_309/article/details/141760731

相关文章

  • 【系统架构设计师】论文:论混合软件架构的设计
    论文:论混合软件架构的设计文章目录摘要正文总结摘要2022年3月,我所在的公司组织开发了一套完整的变电综合信息管理系统,在这个项目中,担任系统架构设计师职务,主要负责软件架构和网络安全体系架构设计的工作。该系统包括变电运行所需的运行记录、图形开票、安全生产管......
  • 【系统架构设计师】论文:论SOA面向服务架构技术的应用
    论文:论SOA面向服务架构技术的应用文章目录摘要正文总结摘要本人于2020年7月参加国内某某知名港口供电业务系统的开发工作,在该项目中主要担任系统架构师,主要负责该系统架构和网络安全体系架构设计。经过近20年的港口信息化建设,港口供电系统已经建立了一些应用系统,......
  • 企业架构设计之IFW实践回顾
    企业架构设计之IFW实践回顾 前言笔者几年前曾参与过一套网络银行的系统建设以及后续这套系统在信用、云服务、保险、基金、支付等领域的复用,使用了IFW模型的变体。当时仅仅是根据架构师的设计进行编码、测试和交付以及后续的维护,没有对这套模型进行系统化的总结,心中总是......
  • .NET微信网页开发之使用微信JS-SDK获取当前地理位置
    前言前段时间有一个关于通过获取用户当前经纬度坐标,计算出该用户距离某指定地点之间的距离。因为做这个项目需要能够获取到比较精确的经纬度坐标,刚开始使用的是百度地图结果发现百度地图地位不太准确(有时候相差的比较的大,后来了解到了百度获取用户经纬度与用户当前使用的网络......
  • 【AI System】Ascend NPU 架构 & CANN 平台入门学习
    AscendNPU架构&CANN平台入门学习概述昇腾NPU是专门用于AI训练/推理计算的AI专用处理器,其中的AICore能够在很大程度上提高AI计算的效率。本文将主要介绍ASCENDNPU的硬件架构&工作原理、AICore的计算模式以及异构计算平台CANN等内容。NPU硬件架......
  • 大模型 | RAG 架构设计三阶段:Naive RAG 架构设计、Advanced RAG 架构设计、Agentic RA
    第一阶段:NaiveRAG架构设计大型语言模型(LLMs)虽然展现出卓越的性能,但在处理特定领域或知识密集型任务时,存在一些挑战,比如:产生虚假信息、知识陈旧以及推理过程的非透明性和不可追溯性。RAG技术作为一种有希望的解决方案,通过融合外部数据库的知识,有效应对了这些问题。它显著......
  • 9 张图总结 MySQL 架构
    原文:9张图总结一下MySQL架构前言目前大部分的后端开发人员对MySQL的理解可能停留在一个黑盒子阶段。对MySQL基本使用没什么问题,比如建库、建表、建索引,执行各种增删改查。所有很多后端开发人员眼中的MySQL如下图所示:导致在实际工作中碰到MySQL中死锁异常、SQL性能太差......
  • 构建以数据为核心智慧型工业园区新架构方案
    1.项目背景与目标智慧型工业园区新架构的构建旨在通过数据驱动实现节能、绿色、高效和安全的目标,以应对当前工业园区在基础数据收集、系统管理和操作复杂性方面的挑战。2.现状分析当前工业园区的发展面临数据收集难题、系统分散、操作复杂以及孤岛效应,这些问题限制了工业......
  • 数据库系统------三级模式架构
    分层设计主要分为3个层级物理层物理层就是描述数据库如何存储记录,即数据的实际存储方式,是how逻辑层逻辑层就是描述数据库中存储数据的结构以及它们之间的关系,即存储了什么样的数据,是what视图层视图层就是描述数据的呈现方式,即哪些数据应该被哪些用户看到,换句话说,不......
  • 云计算:LNMP网站架构,前期准备,安装php,安装MySQL
    准备工作(初始化)1.关闭防火墙systemctl disablefirewalld --now    //直接永久关闭防火墙2.关闭SELINUX 查看SELINUX:getenforce永久关闭:[root@localhost~]#vim/etc/selinux/configSELINUX=enforcing|disabled或者[root@localhost~]#sed-i's/^S......