词汇集

灾备 冷备份 双机热备份 异地容灾备份 云备份 灾难演练 磁盘阵列(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的流量。

参考文献

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

  1. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  2. LB 高可扩展性集群(负载均衡集群)

    一.什么是负载均衡 首先我们先介绍一下什么是负载均衡: 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载, ...

  3. Linux 笔记 - 第十八章 Linux 集群之(一)Keepalived 高可用集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.此处只讲高可用集群,负载均衡放在下一篇博客讲解. 高可用集群(High Availability Cluster,简称 HA ...

  4. 搭建 Kubernetes 高可用集群

    使用 3 台阿里云服务器(k8s-master0, k8s-master1, k8s-master2)作为 master 节点搭建高可用集群,负载均衡用的是阿里云 SLB ,需要注意的是由于阿里云负载 ...

  5. linux下配置tomcat集群的负载均衡

    linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...

  6. kubernetes部署redis主从高可用集群

    1.redis主从高可用集群结构 2.k8s部署有状态的服务选择 对于K8S集群有状态的服务,我们可以选择deployment和statefulset statefulset service& ...

  7. 高可用集群corosync+pacemaker之crmsh使用(一)

    上一篇博客我们聊了下高可用集群corosync+pacemaker的相关概念以及corosync的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13585 ...

  8. Nginx(四):Keepalived+Nginx 高可用集群

    Keepalived+Nginx 高可用集群 (主从模式) 集群架构图 安装keepalived [root@localhost ~]# yum install -y keepalived 查看状态 ...

  9. 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  10. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

随机推荐

  1. sql server 01

    1. 数据库管理系统(DateBase Management System )DBMS 是专门为管理数据库而设计的一个电脑软件系统 分为两种: (1)关系数据库:建立在关系模型基础上的数据库,比如 S ...

  2. LeetCode刷题感想之滑动窗口

    发现滑动窗口也是一种经典解题思路,这一篇简单聊一下滑动窗口. 通常在碰到求XX子数组,子字符串,连续XX等题眼,可以考试用滑动窗口的思路来解决问题. 窗口的类型有几种: 1. 固定长度的窗口. 2. ...

  3. C#下解析、生成JAVA的RSA密钥、公钥

    1.从 https://www.nuget.org/packages/BouncyCastle/下载对应的nupkg包,放到本地一个文件夹中 2.打开VS2010,工具->NuGet程序包管理器 ...

  4. web后端之过滤器

    1直接java搞定 2把@WebFilter()去掉,配置web.xml文件.

  5. (一).JavaScript的简介,变量,数据类型,运算符和表达式

    1. JavaScript的简介 1.1 JavaScript概念 JavaScript是一门:动态的 弱类型的 解释型 的脚本语言 1. 动态: 程序执行的时候才确定数据类型 2. 弱类型:数据类型 ...

  6. swagger 兼容 docker 转发 配置

    app.UseSwagger(c => { c.PreSerializeFilters.Add((swagger, httpReq) => { string swagger_index_u ...

  7. Cplex解决JSP问题

    我的上一篇博客Cplex解决FSP问题 - 加油,陌生人! - 博客园 (cnblogs.com)用Cplex完成了FSP的建模,这篇文章主要是解决JSP问题(车间调度问题). JSP问题:n个工件, ...

  8. springboot中redis使用和工具

    application.properties #Redis相关配置 spring.data.redis.host=localhost #端口 spring.data.redis.port=6379 # ...

  9. How to Change Reset Retrieve the WebLogic Server Administrator Password on WLS 10.3.6 or earlier

    To change the Administrator password on WLS 10.3.6 or earlier, perform the following steps depending ...

  10. 利用网络复制安装额外域控制器、利用介质安装额外域控制器、安装RODC额外域控制器

    一.拥有多台域控制器的优势 1.分担用户身份验证的负担,改善用户登录的效率 2.容错功能:若有域控制器故障,此时仍然可以有其他正常的域控制器来继续提供服务,因此对用户的服务并不会停止 二.系统提供两种 ...