微服务-系统架构

news2024/11/13 12:58:41

微服务:

系统架构的演变

单一应用架构

早期的互联网应用架构,大量应用服务 功能 集中在一个包里,把大量的应用打包为一个jar包,部署在一台服务器,例如tomcat上部署Javaweb项目

缺点:耦合度高,一台服务器宕机,所有功能停止工作。维护成本高,无法做拓展。

垂直应用架构

把一个单一应用 拆分成几个毫不相干的应用,可以分担流量,减缓压力。比如把一个电商系统拆分成前台系统 管理系统 用户系统,这其中可能会有 重复的地方。

的优点在于:

系统拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水平扩展。 一个系统的问题不会影响到其他系统,提高容错率。 缺点:

系统之间相互独立, 无法进行相互调用。 系统之间相互独立, 会有重复的开发任务

分布式架构

在垂直应用架构的基础上 比如把一个电商系统拆分成前台系统 管理系统 用户系统 提取公共业务代码为服务层,通过前端表现层去调用服务。但是这几个系统相互独立 调用起来相当复杂 并且导致 比如上面提到的前台系统 管理系统 用户系统相互粘连 耦合度变高

优点:

抽取公共的功能为服务层,提高代码复用性。 缺点:

系统间耦合度变高,调用关系错综复杂,难以维护。

SOA架构

在这里插入图片描述

提供一个面向服务的调度中心 统一对服务进行调度

优点:

使用注册中心解决了服务间相互调用的问题 缺点:

仔细一看 图中 服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )。服务关心复杂,运维、测试部署困难

微服务架构

基于服务彻底拆分应用 使得每个微小的服务独立运转,即使一个服务宕机也不会影响其他服务的使用!但是这样随之而来的是高成本,每个服务都是独立的,并且可以拓展功能,但是这样运维的压力会很大。

这样也就带来了微服务要处理的一些问题:

资源的分配与调度,服务的治理,服务网关的配置,服务的发现与注册,服务的追踪与容错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科林Linux5_线程

一、线程基础 进程是操作系统经典的执行任务的生产力。 进程是最小的资源分配单位,进程的内存开销较大,在内存资源不变的情况下,提高进程的执行能力(生产力) 线程寄存在进程中,与进程共享资源&#xff0…

Leetcode 876. 链表的中间结点

题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点&#xff0c…

2024年【N1叉车司机】免费试题及N1叉车司机模拟试题

题库来源:安全生产模拟考试一点通公众号小程序 N1叉车司机免费试题考前必练!安全生产模拟考试一点通每个月更新N1叉车司机模拟试题题目及答案!多做几遍,其实通过N1叉车司机模拟考试题库很简单。 1、【多选题】《中华人民共和国特…

Spring AMQP 随笔 8 Retry MessageRecoverer ErrorHandler

0. 列位,响应式布局好麻烦的 … 有意思的,chrome devtool 在调试响应式的分辨率的时候,比如说在 宽度远远大于 768 的时候,按说浏览器也知道大概率是 web端方式打开,样式也是如此渲染,但一些事件(没有鼠标…

题解:P9535 [YsOI2023] 连通图计数

题意 求:在所有 n n n 个点 m m m 条边的无向简单连通图中,满足把第 i i i 个点删去后图被分为 a i a_i ai​​ 个连通块。 n − 1 ≤ m ≤ n 1 n-1\le m\le n1 n−1≤m≤n1。 思路 将 m n − 1 , m n , m n 1 mn-1,mn,mn1 mn−1,mn,mn1​ 三…

二叉树——堆详解

目录 前言: 一、堆的结构 二、向上调整和向下调整 2.1 向上调整 2.2 向下调整 2.3 向上调整和向下调整时间复杂度比较 三、堆的实现 3.1 堆的初始化 3.2 堆的销毁 3.3 堆的插入 3.4堆的删除 3.5 取堆顶元素 3.6 对堆判空 四、堆排序 五、TOP-K 问题 六、代码总…

电商公司需不需要建数字档案室呢

建立数字档案室对于电商公司来说是非常有必要的。以下是一些原因: 1. 空间节约:数字档案室可以将纸质文件转化为电子文件,节省了大量存储空间。这对于电商公司来说尤为重要,因为他们通常会有大量的订单、客户信息和供应商合同等文…

Python01:初入Python(Mac)

Python环境准备 下载Python:官网https://www.python.org/ 下载PyCharm:官网https://www.jetbrains.com/pycharm/download Python与PyCharm的关系 Python(解释器):机器语言—>翻译人员–>翻译成电脑能读懂的 PyC…

DatePicker日期选择框(antd-design组件库)简单使用

1.DatePicker日期选择框 输入或选择日期的控件。 2.何时使用 当用户需要输入一个日期,可以点击标准输入框,弹出日期面板进行选择。 组件代码来自: 日期选择框 DatePicker - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-demo:…

2022蓝桥杯大赛软件类国赛Java大学B组 左移右移 空间换时间+双指针

import java.util.Scanner;public class Main {static Scanner scnew Scanner(System.in);public static void main(String[] args) {int nsc.nextInt();//数组长度int tsc.nextInt();//操作次数int arr[]new int[n];char arr1[] new char[t];int arr2[] new int[t];int vis…

金融信贷风控系统设计模式应用之模版方法

背景介绍 风控系统每种场景 如个人消费贷 都需要跑很多规则 规则1 申请人姓名身份证号实名验证规则2 申请人手机号码实名认证规则3 银行卡预留手机号码实名认证规则4 申请人银行卡预留手机号码在网状态检验规则5 申请人银行借记卡有效性核验规则6 户籍地址与身份证号归属地比…

后量子密码解决方案

什么是后量子密码学 (PQC),为什么准备工作如此重要? 量子计算正在迅速发展;用不了多久,量子网络攻击就会成为可能。量子网络攻击将能够在几分钟内瘫痪大型网络。我们今天赖以保护我们的连接和交易的一切都将受到量子计算机的威胁,危及所有密…

Django中model中的抽象类

Django中model中的抽象类 当我们在app中models.py文件中定义model表并执行python manage.py makemigrations和python manage.py migrate后,Django就会在数据库中创建表 但是我们也可以对其默认配置修改,定义model类但是不在数据库中创建 from django.…

Behind the Code:Polkadot 如何重塑 Web3 未来

2024 年 5 月 17 日 Polkadot 生态 Behind the Code 第二季第一集 《创造 Web3 的未来》正式上线。第一集深入探讨了 Polkadot 和 Web3 技术在解决数字身份、数据所有权和去中心化治理方面的巨大潜力。 🔍 查看完整视频: https://youtu.be/_gP-M5nUidc?…

基于Python对评论进行情感分析可视化

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在当今数字化时代,用户生成内容(UGC)如在线评论、社交媒体…

需求响应+配网重构!含高比例新能源和用户需求响应的配电网重构程序代码!

前言 配电网重构作为配电网优化运行的手段之一,通过改变配电网的拓扑结构,以达到降低网损、改善电压分布、提升系统的可靠性与经济性等目的。近年来,随着全球能源消耗快速增长以及环境的日趋恶化,清洁能源飞速发展,分…

线性回归模型

目录 1.概述 2.线性回归模型的定义 3.线性回归模型的优缺点 4.线性回归模型的应用场景 5.线性回归模型的未来展望 6.小结 1.概述 线性回归是一种广泛应用于统计学和机器学习的技术,用于研究两个或多个变量之间的线性关系。在本文中,我们将深入探讨…

GM Bali,OKLink受邀参与Polygon AggIsland大会

5月16日-17日,OKLink 受到生态合作伙伴 Polygon 的特别邀请,来到巴厘岛参与以 AggIsland 为主题的大会活动并发表演讲,详细介绍 OKLink 为 Polygon 所带来的包括多个浏览器和数据解析等方面的成果,并与 Polygon 一起,对…

【maven与tomcat配置】如何正确配置maven及tomcat环境变量及运行Java项目 (附图文说明及下载包)

maven及tomcat配置详解 🍔涉及知识🥤写在前面🍧一、maven和tomcat是啥?🍧二、maven环境变量配置2.1获取maven包2.2创建本地仓库及修改配置A.校验是否安装javaB.创建本地maven存放仓库C&#xff…

C++vector的简单模拟实现

文章目录 目录 文章目录 前言 一、vector使用时的注意事项 1.typedef的类型 2.vector不是string 3.vector 4.算法sort 二、vector的实现 1.通过源码进行猜测vector的结构 2.初步vector的构建 2.1 成员变量 2.2成员函数 2.2.1尾插和扩容 2.2.2operator[] 2.2.3 迭代器 2…