微服务与分布式系统架构问题如何解决?

微服务与分布式系统架构问题如何解决?,第1张

如果大家了解微服务和分布式服务器架构等技术的话,那么对于如何解决系统运行中出现的BUG造成的破坏和损失这些问题也应该有自己独到的见解吧。今天,电脑培训就一起来了解一下,在服务器运行过程中出现的问题都有哪些解决方法。



随着微服务和分布式云架构的崛起,Web变得日趋复杂,“随机性”的故障因此变得越来越难以预测,而我们对这些系统的依赖却与日俱增。

这些故障给公司造成巨大损失,也给用户带来很大的麻烦,影响他们进行在线购物、交易或打断他们的工作。即使是一些简单的故障也会触及公司的底线,因此,宕机时间就成为很多工程团队的KPI。2017年,有98%的企业表示,一小时的宕机时间将给他们带来超过10万美元的损失。一次服务中断有可能让一个公司损失数百万美元。近,英国航空的CEO透露,2017年5月发生的一次技术故障造成数千名乘客滞留机场,给公司造成8000千万英镑的损失。

企业需要想办法解决这些问题,因为等到下一次事故发生就为时已晚。为此,混沌工程应运而生。

混沌工程旨在将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来。通过主动制造故障,测试系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果。

混沌工程将预想的事情与实际发生的事情进行对比,通过“有意识地搞破坏”来提升系统的d性。

混沌工程简史

混沌工程先出现在互联网巨头公司中,这些公司拥有大规模的分布式系统,因为这些系统太过复杂,他们需要一些新的手段来测试它们。

2010年

NetflixEngTools团队开发出了ChaosMonkey。当时,Netflix从物理基础设施迁移到AWS上,为了保证AWS实例的故障不会给Netflix的用户体验造成影响,他们开发了这个工具,用来测试系统。

2011年

SimianArmy诞生,在ChaosMonkey的基础上增加了故障注入模式,可以测试更多的故障场景。Netflix认为,云的特点是冗余和容错,但没有哪个组件能够保证100%的可用性,所以他们必须设计出一种云架构,在这种架构里,个体组件的故障不会影响到整个系统。

2012年

Netflix在GitHub上开源了ChaosMonkey,并声称他们“已经找到了应对主要非预期故障的解决方案。通过经常性地制造故障,我们的服务因此变得更有d性。”

2014年

Netflix团队创建了一种新的角色,叫作混沌工程师。BruceWong发明了这个角色,并由DanWoods在Twitter上向广大的工程社区推广。DanWoods解释说,“我从KoltonAndrus那里学到了更多有关混沌工程的知识,他把它叫作故障注入测试”。

2014年10月,当时Gremlin的联合创始人KoltonAndrus还在Netflix,他们在SimianArmy的基础上提出了故障注入测试(FIT)概念,开发者可以更灵活地控制注入故障的“杀伤力范围”。因为SimianArmy有时候会造成非常严重的故障,所以Netflix的开发者对它抱有疑虑,而FIT可以更好地控制故障粒度,于是他们就由此想出了混沌工程这个概念。

一 什么是分布式数据库

分布式数据库系统是在集中式数据库系统的基础上发展来的 是数据库技术与网络技术结合的产物

分布式数据库系统有两种 一种是物理上分布的 但逻辑上却是集中的 这种分布式数据库只适宜用途比较单一的 不大的单位或部门 另一种分布式数据库系统在物理上和逻辑上都是分布的 也就是所谓联邦式分布数据库系统 由于组成联邦的各个子数据库系统是相对 自治 的 这种系统可以容纳多种不同用途的 差异较大的数据库 比较适宜于大范围内数据库的集成

分布式数据库系统(DDBS)包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)

在分布式数据库系统中 一个应用程序可以对数据库进行透明 *** 作 数据库中的数据分别在不同的局部数据库中存储 由不同的DBMS进行管理 在不同的机器上运行 由不同的 *** 作系统支持 被不同的通信网络连接在一起

一个分布式数据库在逻辑上是一个统一的整体 即在用户面前为单个逻辑数据库 在物理上则是分别存储在不同的物理节点上 一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库 它的分布性表现在数据库中的数据不是存储在同一场地 更确切地讲 不存储在同一计算机的存储设备上 这就是与集中式数据库的区别 从用户的角度看 一个分布式数据库系统在逻辑上和集中式数据库系统一样 用户可以在任何一个场地执行全局应用 就好那些数据是存储在同一台计算机上 有单个数据库管理系统(DBMS)管理一样 用户并没有什么感觉不一样

分布式数据库中每一个数据库服务器合作地维护全局数据库的一致性

分布式数据库系统是一个客户/服务器体系结构

在系统中的每一台计算机称为结点 如果一结点具有管理数据库软件 该结点称为数据库服务器 如果一个结点为请求服务器的信息的一应用 该结点称为客户 在ORACLE客户 执行数据库应用 可存取数据信息和与用户交互 在服务器 执行ORACLE软件 处理对ORACLE数据库并发 共享数据存取 ORACLE允许上述两部分在同一台计算机上 但当客户部分和服务器部分是由网连接的不同计算机上时 更有效

分布处理是由多台处理机分担单个任务的处理 在ORACLE数据库系统中分布处理的例子如

客户和服务器是位于网络连接的不同计算机上

单台计算机上有多个处理器 不同处理器分别执行客户应用

参与分布式数据库的每一服务器是分别地独立地管理数据库 好像每一数据库不是网络化的数据库 每一个数据库独立地被管理 称为场地自治性 场地自治性有下列好处

◆系统的结点可反映公司的逻辑组织

◆由局部数据库管理员控制局部数据 这样每一个数据库管理员责任域要小一些 可更好管理

◆只要一个数据库和网络是可用 那么全局数据库可部分可用 不会因一个数据库的故障而停止全部 *** 作或引起性能瓶颈

◆故障恢复通常在单个结点上进行

◆每个局部数据库存在一个数据字典

◆结点可独立地升级软件

可从分布式数据库的所有结点存取模式对象 因此正像非分布的局部的DBMS 必须提供一种机制 可在局部数据库中引用一个对象 分布式DBMS必须提供一种命名模式 以致分布式数据库中一个对象可在应用中唯一标识和引用 一般在层次结构的每一层实施唯一性 分布式DBMS简单地扩充层次命名模型 实施在网络上唯一数据库命名 因此一个对象的全局对象名保证在分布式数据库内是唯一

ORACLE允许在SQL语句中使用全局对象名引用分布式数据库中的模式对象(表 视图和过程) 在ORACLE中 一个模式对象的全局名由三部分组成 包含对象的模式名 对象名 数据库名 其形式如

SCOTT EMP@SALES DIVISION ACME

一个远程查询为一查询 是从一个或多个远程表中选择信息 这些表驻留在同一个远程结点

一个分布式查询可从两个或多个结点检索数据 一个分布式更新可修改两个或两个以上结点的数据

一个远程事务为一个事务 包含一人或多个远程语句 它所引用的全部是在同一个远程结点上 一个分布式事务中一个事务 包含一个或多个语句修改分布式数据库的两个或多个不同结点的数据

在分布式数据库中 事务控制必须在网络上直辖市 保证数据一致性 两阶段提交机制保证参与分布式事务的全部数据库服务器是全部提交或全部回滚事务中的语句

ORACLE分布式数据库系统结构可由ORACLE数据库管理员为终端用户和应用提供位置透明性 利用视图 同义词 过程可提供ORACLE分布式数据库系统中的位置透明性

ORACLE提供两种机制实现分布式数据库中表重复的透明性 表快照提供异步的表重复;触发器实现同步的表的重复 在两种情况下 都实现了对表重复的透明性

在单场地或分布式数据库中 所有事务都是用MIT或ROLLBACK语句中止

二 分布式数据库系统的分类

( ) 同构同质型DDBS 各个场地都采用同一类型的数据模型(譬如都是关系型) 并且是同一型号的DBMS

( )同构异质型DDBS 各个场地采用同一类型的数据模型 但是DBMS的型号不同 譬如DB ORACLE SYBASE SQL Server等

( )异构型DDBS 各个场地的数据模型的型号不同 甚至类型也不同 随着计算机网络技术的发展 异种机联网问题已经得到较好的解决 此时依靠异构型DDBS就能存取全网中各种异构局部库中的数据

三 分布式数据库系统主要特点

DDBS的基本特点

( )物理分布性 数据不是存储在一个场地上 而是存储在计算机网络的多个场地上

逻辑整体性 数据物理分布在各个场地 但逻辑上是一个整体 它们被所有用户(全局用户)共享 并由一个DDBMS统一管理

( )场地自治性 各场地上的数据由本地的DBMS管理 具有自治处理能力 完成本场地的应用(局部应用)

( )场地之间协作性 各场地虽然具有高度的自治性 但是又相互协作构成一个整体

DDBS的其他特点

( )数据独立性

( )集中与自治相结合的控制机制

( )适当增加数据冗余度

( )事务管理的分布性

四 分布式数据库系统的优点

( )更适合分布式的管理与控制

分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用 允许分布在不同区域 不同级别的各个部门对其自身的数据实行局部控制 例如 实现全局数据在本地录入 查询 维护 这时由于计算机资源靠近用户 可以降低通信代价 提高响应速度 而涉及其他场地数据库中的数据只是少量的 从而可以大大减少网络上的信息传输量;同时 局部数据的安全性也可以做得更好

( )具有灵活的体系结构

集中式数据库系统强调的是集中式控制 物理数据库是存放在一个场地上的 由一个DBMS集中管理 多个用户只可以通过近程或远程终端在多用户 *** 作系统支持下运行该DBMS来共享集中是数据库中的数据 而分布式数据库系统的场地局部DBMS的自治性 使得大部分的局部事务管理和控制都能就地解决 只有在涉及其他场地的数据时才需要通过网络作为全局事务来管理 分布式DBMS可以设计成具有不同程度的自治性 从具有充分的场地自治到几乎是完全集中式的控制

( )系统经济 可靠性高 可用性好

与一个大型计算机支持一个大型的集中式数据库在加一些进程和远程终端相比 由超级微型计算机或超级小型计算机支持的分布式数据库系统往往具有更高的性价比和实施灵活性 分布式系统比集中式系统具有更高的可靠性和更好的可用性 如由于数据分布在多个场地并有许多复制数据 在个别场地或个别通信链路发生故障时 不致于导致整个系统的崩溃 而且系统的局部故障不会引起全局失控

( )在一定条件下响应速度加快

如果存取的数据在本地数据库中 那么就可以由用户所在的计算机来执行 速度就快

( )可扩展性好 易于集成现有系统 也易于扩充

对于一个企业或组织 可以采用分布式数据库技术在以建立的若干数据库的基础上开发全局应用 对原有的局部数据库系统作某些改动 形成一个分布式系统 这比重建一个大型数据库系统要简单 既省时间 又省财力 物力 也可以通过增加场地数的办法 迅速扩充已有的分布式数据库系统

五 分布式数据库系统的劣势

( )通信开销较大 故障率高

例如 在网络通信传输速度不高时 系统的响应速度慢 与通信相关的因素往往导致系统故障 同时系统本身的复杂性也容易导致较高的故障率 当故障发生后系统恢复也比较复杂 可靠性有待提高

( )数据的存取结构复杂

一般来说 在分布时数据库中存取数据 比在集中时数据库中存取数据更复杂 开销更大

( )数据的安全性和保密性较难控制

在具有高度场地自治的分布时数据库中 不同场地的局部数据库管理员可以采用不同的安全措施 但是无法保证全局数据都是安全的 安全性问题式分布式系统固有的问题 因为分布式系统式通过通信网络来实现分布控制的 而通信网络本身却在保护数据的安全性和保密性方面存在弱点 数据很容易被窃取

分布式数据库的设计 场地划分及数据在不同场地的分配比较复杂 数据的划分及分配对系统的性能 响应速度及可用性等具有极大的影响 不同场地的通信速度与局部数据库系统的存取部件的存取速度相比 是非常慢的 通信系统有较高的延迟 在CPU上处理通信信息的代价很高 分布式数据库系统中要注意解决分布式数据库的设计 查询处理和优化 事务管理及并发控制和目录管理等问题

六 分布式数据库系统 数据分片

类型

水平分片

按一定的条件把全局关系的所有元组划分成若干不相交的子集 每个子集为关系的一个片段

垂直分片

把一个全局关系的属性集分成若干子集 并在这些子集上作投影运算 每个投影称为垂直分片

导出分片

又称为导出水平分片 即水平分片的条件不是本关系属性的条件 而是其他关系属性的条件

混合分片

以上三种方法的混合 可以先水平分片再垂直分片 或先垂直分片再水平分片 或其他形式 但他们的结果是不相同的

条件

( )完备性条件

必须把全局关系的所有数据映射到片段中 决不允许有属于全局关系的数据却不属于它的任何一个片段

( )可重构条件

必须保证能够由同一个全局关系的各个片段来重建该全局关系 对于水平分片可用并 *** 作重构全局关系;对于垂直分片可用联接 *** 作重构全局关系

( )不相交条件

要求一个全局关系被分割后所得的各个数据片段互不重叠(对垂直分片的主键除外)

七 分布式数据库系统 数据分配方式

( )集中式 所有数据片段都安排在同一个场地上

( )分割式

所有数据只有一份 它被分割成若干逻辑片段 每个逻辑片段被指派在一个特定的场地上

( )全复制式 数据在每个场地重复存储 也就是每个场地上都有一个完整的数据副本

( )混合式 这是一种介乎于分割式和全复制式之间的分配方式

八 分布式数据库系统 体系结构

数据分片和数据分配概念的分离 形成了 数据分布独立型 概念

数据冗余的显式控制 数据在各个场地的分配情况在分配模式中一目了然 便于系统管理

局部DBMS的独立性 这个特征也称为 局部映射透明性 此特征允许我们在不考虑局部DBMS专用数据模型的情况下 研究DDB管理的有关问题

九 分布式数据库管理系统

接受用户请求 并判定把它送到哪里 或必须访问哪些计算机才能满足该要求

访问网络数据字典 了解如何请求和使用其中的信息

如果目标数据存储于系统的多个计算机上 就必须进行分布式处理

通信接口功能 在用户 局部DBMS和其他计算机的DBMS之间进行协调

在一个异构型分布式处理环境中 还需提供数据和进程移植的支持 这里的异构型是指各个场地的硬件 软件之间存在着差别

分布式数据库管理系统

lishixinzhi/Article/program/Oracle/201311/16998

客户机/服务器系统 Client/server system 简称C/S系统。是一类按新的应用模式运行的分布式计算机系统。在这个应用模式中,用户只关心完整地解决自己的应用问题,而不关心这些应用问题由系统中哪台或哪几台计算机来完成。在C/S系统中,能为应用提供服务(如文件服务,打印服务,拷贝服务,图象服务,通信管理服务等)的计算机或处理器,当其被请求服务时就成为服务器。一台计算机可能提供多种服务,一个服务也可能要由多台计算机组合完成。与服务器相对,提出服务请求的计算机或处理器在当时就是客户机。从客户应用角度看,这个应用的一部分工作在客户机上完成,其他部分的工作则在(一个或多个)服务器上完成。
  C/S系统最重要的特征是:它不是一个主从环境,而是一个平等的环境,即C/S系统中各计算机在不同的场合既可能是客户机,也可能是服务器,进入90年代,C/S系统迅速流行,在于它有很多优点:用户使用简单,直观;编程,调试和维护费用低;系统内部负荷可以做到比较均衡,资源利用率较高;允许在一个客户机上运行不同计算机平台上的多中应用;系统易于扩展,可用性较好,对用户需求变的适应性好。
从技术角度看,C/S系统本质上是将70年代就提出的虚拟机器的概念使用于分布式计算机系统,其本质是实现功能的合理分布和处理的“无缝连接”。C/S系统的实用依赖于若干90年代才成熟的技术:首先由于以一系列标准为基础的开放式系统原则被普遍接受,为各种客户机,服务器之间提供中间件(Middleware)成为可能;第二,CASE工具,视窗技术,面向对象技术,分布式数据库技术等的成熟,为C/S系统环境下的编程,调试,运行提供了良好的条件;性能价格比迅速提高的计算机为开销甚大的分布式 *** 作系统提供了可接受的运行条件,使得分布式逻辑处理,分布式服务器等应用模式得以实现。
C/S系统已广泛用于中小型工商企业,机关等部门,由于通讯技术的进展,C/S系统在地域上可有较大的跨度。

浪潮是一家中国的服务器制造商,提供各种类型的服务器产品。以下是浪潮服务器的一些主要分类:
1 塔式服务器(Tower Server):塔式服务器适用于中小企业和分支机构等小型办公环境,具有较低的噪音和较小的空间占用。浪潮的塔式服务器产品线包括 T系列。
2 机架式服务器(Rack Server):机架式服务器适用于数据中心和大型企业,设计为与标准机架兼容,便于集成和管理。浪潮的机架式服务器产品线包括 R系列。
3 刀片式服务器(Blade Server):刀片式服务器是一种高密度、可扩展的服务器解决方案,适合大型数据中心和云计算环境。浪潮的刀片式服务器产品线包括 H系列。
4 高性能计算服务器(High-Performance Computing Server):高性能计算服务器专为高性能计算(HPC)任务和人工智能(AI)应用设计,提供最高可用性和性能。浪潮的高性能计算服务器产品线包括 X系列。
5 分布式存储服务器(Distributed Storage Server):用于大数据存储和处理的服务器,通过分布式存储架构提供高可用性、可扩展性和容错性。如浪潮翼龙存储服务器等。
6 GPU服务器(GPU Server):适用于图形处理、深度学习和其他需要高性能并行计算能力的场景。浪潮的GPU服务器产品线包括 G系列。
此外,浪潮还提供定制服务器解决方案,以满足特定行业或应用场景的需求。以上是浪潮服务器的几种主要类型,实际选择时需要根据应用场景、性能需求和预算等因素进行综合考虑。

分布式消息 MQ 的两种订阅方式如下:

一、点对点模式:

1、场景:

客户端A和客户端B使用同一队列,进行消息通讯,客户端 A 发布消息,客户端 B 接收消息。

2、点对点模式包含三个角色——消息队列,发送者,接收者:

发送者发送消息到消息队列中,接收者从消息队列中取出消息进行接收,消息接收后,消息队列中将不再存储该消息,其他接收者不可能再接收到这条消息。

3、特点:

(1)每个消息只有一个接收者。

(2)发送者和接收者之间没有依赖性,发送者发送消息后,消息直接存储在消息队列中,接收者是否在线并不影响发送。

(3)接收者成功接收消息之后,需要向消息队列应答成功,以便消息队列删除该条消息。

二、发布订阅模式:

1、场景:

客户端 A,客户端 B,客户端 N 等订阅同一主题,进行消息发布和接收。

2、点对点模式包含三个角色——角色主题(topic),发布者(publisher),订阅者(subscriber):

发送者将消息发送到topic,系统将这些消息传递给多个订阅者。

3、特点:

(1)每个消息可以有多个订阅者。

(2)发布者和订阅者之间有时间上的依赖性。针对某个主题的订阅者,它必须创建一个订阅者之后,才可以接收发布者发布的消息。

(3)为了消费消息,订阅者需要提前订阅该角色主题,并保持在线运行。

分布式消息(服务)介绍:

分布式消息服务是一个用来处理分布式系统中的消息,分布式应用程序通过网络访问位于不同服务器上的消息队列,就像访问本地系统一样。

分布式消息服务是一个专为企业级应用开发的软件服务,具有高可用,高扩展,高性能,可根据需要灵活部署和伸缩的特点。分布式消息服务是一个托管的高性能消息队列服务,拥有高吞吐,高可用,高可靠,可根据需要灵活配置的队列服务,满足不同应用场景的需要。

分布式消息服务是一个高吞吐、高可用的消息中间件服务,使用消息队列通信,具有大规模、高可靠、高并发访问、可扩展、高安全、可d性伸缩、便捷管理的特点。

百度百科-分布式

百度百科-分布式信息系统


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13122891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-04
下一篇 2023-06-04

发表评论

登录后才能评论

评论列表(0条)

保存