- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
一、传统的单体架构 。
1、什么是单体架构?
单体架构(Monolithic Architecture)是一种传统的软件架构模式,将整个应用程序作为一个单一的、统一的单元进行开发、部署和扩展。在单体架构中,所有的功能模块都被打包在一起,共享同一个代码库和数据库.
2、单体架构的缺点 。
一个大型的项目可能包含的模块功能非常多,而模块之间的边界比较模糊,依赖关系不是很清晰,代码质量参差不齐,修改一个bug容易造成另一个隐藏的bug.
只能整体扩展,不能按业务模块的特点进行扩展。比如:当我们发现某一个功能模块的请求压力非常大时,想单独对这个功能做服务节点的扩展,对于单体架构来说是做不到的,只能整个系统做负载均衡.
随着应用程序的功能模块越来越多,代码库也会变得越发庞大和复杂,会导致新人学习周期拉长.
整个系统只能使用单一的技术栈,无法针对业务模块的特点使用不同的技术栈.
一个功能点的bug可能会导致整个应用程序的崩溃.
二、微服务架构 。
1、什么是微服务?
微服务架构是将整个大型复杂的应用程序拆分成若干个微小的服务,将系统各功能模块分配到各个微服务中,从而降低系统的耦合度,服务之间的通讯通常采用RPC协议或http协议.
2、微服务架构的优点 。
每一个微服务都是独立部署的“小系统”,开发人员只需要关注这个服务自己功能模块的代码,所以代码量和功能相对小很多,开发理解相对也会简单一些,团队成员接手也会容易很多.
单个微服务的代码量相对小很多,所以启动速度会快一些.
当我们发现某个服务的请求压力过大(较小)时,我们只需要对这个服务增加(减少)节点即可.
如果微服务应用崩溃了,一般情况下不会导致整个应用系统的宕机.
每个微服务可以选择合适的技术栈,不用局限于单一特定的技术体系.
3、微服务架构带来的问题 。
随着拆分的服务数量越来越多,用传统的方式部署和管理配置会变得麻烦.
微服务之间的调用会存在数据一致性问题,需要引入分布式事务解决方案来处理.
一个微服务的数据如果依赖于其他服务,如果出现问题,如何定位找到问题的根源所在是相对比较困难的.
4、微服务框架 。
我们的项目要使用微服务架构模式的开发方式,那么就需要有一个微服务的框架来解决这些问题。推荐一个最接地气的.NET微服务框架Wing,项目地址:
gitee:https://gitee.com/linguicheng/Wing 。
github:https://github.com/linguicheng/Wing 。
最后此篇关于为什么要使用微服务架构?的文章就讲到这里了,如果你想了解更多关于为什么要使用微服务架构?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我们正在创建一个 n 层 Silverlight LOB 应用程序,并且正在考虑使用 .NET RIA 服务。我们不清楚这与我们当前的 WCF 服务 API 的关系在哪里。我们当前的架构是: 银光
上下文:我在celery + rabbitmq堆栈上有一个主工作系统。 系统已docker化(此处未提供worker服务) version: '2' services: rabbit:
我是 Windows Azure 新手,我正在尝试将我的 Web 应用程序部署到 Windows Azure。在我的应用程序中,我使用了一些 Web 服务,现在我想知道如何在 Windows Azur
因此,根据我对服务的了解,自定义对象似乎是写入服务以返回数据的方式。如果我正在编写将用于 1) 填充数据库或 2) 为网站提供信息的服务,是否有返回数据集/数据表而不是包含所有这些的自定义对象列表的用
我在 google 和 stackoverflow 上都找过答案,但似乎找不到。我正在尝试将 azure 实验的输出获取到应用程序。我使用 ibuildapp 和谷歌表单制作了该应用程序。如何使用 g
我不小心删除了 kubernetes svc: service "kubernetes" deleted 使用: kubectl delete svc --all 我该怎么办?我只是想删除服务,以便
我正在努力确定解决网络服务问题的最有效方法。 我的情况:我正在开发一个 Android 应用程序,它通过 Web 服务从 mysql 数据库(在我自己的服务器 PC 上)存储和检索数据。用户按下提交按
我一直在翻阅 Android 文档,我很好奇。什么时候绑定(bind)服务而不是不绑定(bind)服务?它提供了哪些优点/限制? 最佳答案 When would you bind a service
我试图从架构的角度理解 hive,我指的是 Tom White 关于 Hadoop 的书。 我遇到了以下关于配置单元的术语:Hive Services、hiveserver2、metastore 等。
我的问题:安装服务后我无法导航到基地址,因为服务不会继续运行(立即停止)。我需要在服务器或我的机器上做些什么才能使 baseAddress 有效吗? 背景:我正在尝试学习如何使用 Windows 服务
我正在努力就 Web 服务的正确组织做出决定。我应该有多个 ASMX 来代表 Web 服务中的不同功能,还是应该有一个 ASMX? 如果我有多个 ASMX,这不构成多个 Web 服务吗? 如果我只有一
我正在从事一个在 azure 平台上提供休息服务的项目。该服务由 iPhone 客户端使用,这是选择其余方法的重要原因之一。 我们希望通过 AccessControlService(ACS) 并使用
我是 Ionic 新手,正在使用 Ionic 3.9.2 我有几个终端命令来为我的 ionic 应用程序提供服务,但是,我没有发现这两个命令之间有任何区别。 ionic serve 和 ionic s
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
作为项目的一部分,我期待着问这个问题。我过去有开发和使用 Web 服务的经验,并且非常熟悉这些服务。但是,有人告诉我,作为下一个项目的一部分,我将需要使用“安全”的 Web 服务。您能否提供一些见解,
我浏览了很多关于这个问题的信息,但找不到解决方案。这里的问题是,我想使用 Apache Cordova 和 Visual Studio 连接到 wcf。因此,如果有人找到合适的工作解决方案,请发布链接
我在 Windows 服务中托管了一个 WCF(从 MS 网站示例中选取),我可以使用 SOAP UI 访问和调用方法。但是,当我尝试使用 jquery 从 Web 应用程序调用相同的方法时,我不断收
我们构建了一个 Android 应用程序,它从 Android 向我的 PHP 服务器发送 HTTP 请求。作为响应,Web 服务将 JSON 对象发送到 Android 应用程序以显示结果。 就像其
我想在 android 应用程序中调用 soap web 服务,它需要一个枚举值作为参数,它是一个标志枚举。如何从 Android 应用程序将一些值作为标志枚举传递给此 Web 服务方法? 我使用 K
我尝试在模拟器上安装 Google Play。我已按照 Google Dev Site 中的说明进行操作. 使用 ADV 管理器似乎没问题,设备的目标是 Google API 版本 22,但是当我运行
我是一名优秀的程序员,十分优秀!