菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
285
0

[架构]辨析: 高可用 | 集群 | 主从 | 负载均衡 | 反向代理 | 中间件 | 微服务 | 容器 | 云原生 | DevOps | ...

原创
05/13 14:22
阅读数 22898

词汇集

灾备 冷备份 双机热备份 异地容灾备份 云备份 灾难演练 磁盘阵列(RAID)

故障切换 心跳监测

高可用 集群 主从复制(Master-Slave) 

多集群横向扩容(master-cluster grid) | 纵向扩容(Scale up) |  

微服务 | 虚拟化 | 容器 | 云原生 | 并行计算 | 边缘计算 | 云计算

中间件

锁(乐观锁/悲观锁/...)

分库分表 | 分区

负载均衡 | 反向代理 | CDN | VPN | 

SSO(Single Sign On,单点登录)

SOA(Service-Oriented Architecture, 面向服务的架构)

OLTP / OLAP

中间件

中间件是介于【应用软件】和【操作系统软件】之间的一类软件。它使用操作系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
"将具体业务和底层逻辑解耦的组件。" / "非业务的技术类组件" ----知乎
目前,它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
从这个意义上: 【中间件=平台+通信】。这也就限定了只有用于【分布式系统】中才能叫中间件,同时也把【中间件软件】与【支撑软件】和【实用软件】区分开来。
通常,数据管理、应用服务、消息传递、身份验证和 API 管理都要通过中间件。
中间件可以帮助开发人员更有效地构建应用。它就如同是应用、数据与用户之间的纽带。

DevOps

DDD

【推荐文献】

  • 领域驱动设计(DDD) - 解道JDon
    如何用领域模型模式设计一个完整而复杂的系统,有没有完整的方法和过程指导整个系统的设计?领域驱动设计,即 DDD 就是用来解决这一问题的。

领域是一个组织所做的事情以及其包含的一切,通俗地说,就是组织的业务范围和做事方式,也是软件开发的目标范围。

比如对于淘宝这样一个以电子商务为主要业务的组织,C2C电子商务就是它的领域。

领域驱动设计就是从领域出发,分析领域内模型及其关系,进而设计软件系统的方法。

但是如果我们说要对 C2C 电子商务这个领域进行建模设计,那么这个范围就太大了,不知道该如何下手。
所以,通常的做法是把整个领域拆分成多个子域,比如用户、商品、订单、库存、物流、发票等。

强相关的多个子域组成一个界限上下文,界限上下文是对业务领域范围的描述,对于系统实现而言,可以想象成相当于是一个子系统或者是一个模块。

界限上下文和子域共同组成组织的领域,如下:

不同的界限上下文,也就是不同的子系统或者模块之间会有各种的交互合作。如何设计这些交互合作呢?DDD 使用上下文映射图来完成,如下:

在 DDD 中,领域模型对象也被称为实体,每个实体都是唯一的,具有一个唯一标识,一个订单对象是一个实体,一个产品对象也是一个实体,订单 ID 或者产品 ID 是它们的唯一标识。

实体可能会发生变化,比如订单的状态会变化,但是它们的唯一标识不会变化。

SSO(Single Sign On,单点登录)

概念

单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。这种方式减少了由登录产生的时间消耗,辅助了用户管理,是目前比较流行的。

技术实现

当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到统一认证系统中进行登录;

根据用户提供的登录信息,统一认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;

用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统X接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。

如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2应用系统3了。

SOA(Service-Oriented Architecture, 面向服务的架构)

SOA作为一种面向服务的架构,是一种软件架构设计的模型和方法论。

从业务角度来看,一切以最大化“服务”的价值为出发点,SOA利用企业现有的各种软件体系,重新整合并构建起一套新的软件架构。

这套软件架构能够随着业务的变化,随时灵活地结合现有服务,组成新软件,共同服务于整个企业的业务体系。

简单的理解,我们可以把SOA看作是模块化的组件,每个模块都可以实现独立功能,而不同模块之间的结合则可以提供不同的服务,模块之间的接口遵循统一标准,可以实现低成本的重构和重组。

在SOA的技术框架下,可以把杂乱无章的庞大系统整合成一个全面有序的系统,从而增加企业在业务发展过程中应用系统的灵活性,实现最大的IT资产利用率。

【推荐文献】

OLTP / OLAP

数据处理大致可以分成两大类:
联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。

OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。 

OLTP 系统强调数据库内存效率,强调内存各种指标的命令率,强调绑定变量,强调并发操作;

OLAP 系统则强调数据分析,强调SQL执行市场,强调磁盘I/O,强调分区等。

OLTP(Online Transaction Processing, 联机事务处理)

表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量。在这样的系统中,单个数据库每秒处理的Transaction往往超过几百个,或者是几千个,Select 语句的执行量每秒几千甚至几万个。典型的OLTP系统有电子商务系统、银行、证券等,如美国eBay的业务数据库,就是很典型的OLTP数据库。

OLAP(Online Analytical Processing, 联机分析处理)

有的时候也叫DSS决策支持系统,就是我们说的数据仓库。在这样的系统中,语句的执行量不是考核标准,因为一条语句的执行时间可能会非常长,读取的数据也非常多。所以,在这样的系统中,考核的标准往往是磁盘子系统的吞吐量(带宽),如能达到多少MB/s的流量。

参考文献

发表评论

0/200
285 点赞
0 评论
收藏
为你推荐 换一批