天气变化无常的一周---4.10周技术小结(二)

感觉每一篇总结文章不适合放太多的内容,否则读起来的话,有些累,而且会比较索然无味。(当然可能也和自己写的文章水平有关吧,哈哈哈)
接着上篇的总结,继续再总结、梳理几个问题:
目录

1.行/列数据库 关系型/非关系型数据库
2.SOA和微服务架构
3.网络I/O模型

1.行/列数据库 关系/非关系型数据库

1.1 行/列数据库

1.1.1 什么是行/列数据库

简单理解这两个概念:
行存储:一次写入一个完整的数据实体(包含了各种字段)
列存储:一次写入所有数据的一个属性
然后结合数据库软件计算机磁盘来理解这两个概念:无非就是数据库软件能够对外(即对操作者)提供相应的行/列数据库的设计接口,甚至是可视化界面接口。然后对内(即对计算机磁盘)进行行/列式的存储,即是按照每个实体来存储还是按照每个字段来存储。

1.1.2 它们各自的优缺点

行存储的优缺点:优点是对一个实体数据的写入/改修 性能很高,缺点是如果要对很多实体的某一属性进行操作,则会产生其他实体数据属性的冗余,而且在操作上的性能也很低
列存储的优缺点:优点是能操作很多实体的某些属性性能很高,但是对于完整实体的操作性能很低

1.1.3 它们的应用场景

应用场景则是根据它们各自的优缺点来进行灵活确定的。
但是目前对于大数据库的存储,操作主流做法都是基于列示存储的。

1.1.4 数据库代表

行式数据库的代表包括:传统的RDBMS
列式数据库的代表包括:SAP HANA、Amazon Redshift、Sybase IQ、ParAccel、Sand/DNA Analytics、Vertica、Aster Data Systems和greenplum等。

1.1.5 参考文章:

大数据存取的选择:行存储还是列存储?
数据库的方向 - 行vs列
对列式数据库的一点总结和展望
列式数据库-维基百科

1.2 关系/非关系型数据库

1.2.1 什么是关系/非关系型数据库

关系型数据库,即RDBMS,每个表是按照实体来设计的,是一个二维表格模型,并且需要遵循许多的设计约束
非关系型数据库,也叫做NOSQL数据库,它不要求每一条记录都是一个完整的实体,所以相对来说字段可以自由变化、扩展。
这两类就是不同数据库的规定,可以有关系,也可以没有关系(但并不绝对)。

1.2.2 它们各自的优缺点

关系型数据库:符合约束规范设计,能够很好地保证数据的完整性,一致性,减少数据冗余。
但是对于并发性能不好(主要原因就在于磁盘IO),对海量数据的操作息效率很低,扩展性较差(表具有固定的结构)。
非关系型数据库:以键值对存储,可以随意扩展,支持高并发,可以海量数据的访问,支持分布式扩展
但是不能很好地支持事务(即不具备完整的ACID)

1.2.3 它们的应用场景

关系型数据库:对事务要求高的,不用经常扩展的,并发量不高,对海量数据操作少。
非关系型数据库:高并发,海量数据操作,分布式架构

1.2.4 它们各自的代表

关系型数据库: Oracle, Sql Server, Access, Mysql
非关系型数据库: redis,mongoDB,memcached,

1.2.5 参考文章:

关系型数据库和非关系型数据库

2.SOA和微服务架构

首先来看一张它们的演变图:

SOA和微服务架构演变

2.1 传统SOA架构:

2.1.1 为什么会有传统SOA架构的产生

早期大型系统,比如ERP,OA,CRM等难以进行集成,故产生了SOA架构

2.1.2 传统SOA架构是怎样的

传统SOA架构

该架构有一个企业服务总线ESB,它的作用就是对外提供支持各种协议、粗粒度的服务接口,对内映射相应的服务。

2.1.3 传统SOA架构有什么优缺点

1.存在多种通讯协议,通讯方式复杂
2.ESB存在单点故障 隐患
3.开发代价很大

2.2 新型的SOA架构:

应用->服务,即应用直接调用外部服务,通讯协议一般为HTTP,数据格式一般为JSON

新型的SOA架构

2.3 微服务

优点:
简单连接:一般为HTTP + JSON
分散管理:可以单独编译,部署。
支持自由扩展
系统容错性高

微服务遇到的问题:
1.复杂的分布式系统通
2.分布式事务一致性

2.4 参考文章

重新理解微服务
每天都在谈SOA和微服务,但你真的理解什么是服务吗?
基于微服务的软件架构模式

3.网络I/O模型

总体来说分为两大类:同步和异步模型。

  • 同步模型
    • 阻塞I/O
    • 非阻塞I/O
    • 多路复用I/O
    • 信号驱动式I/O
  • 异步IO

网络I/O模型的过程:

网络I/O的本质是socket的读取,socket在linux系统被抽象为流,I/O可以理解为对流的操作。这个操作又分为两个阶段:

  • 等待流数据准备(wating for the data to be ready)。
  • 从内核向进程复制数据(copying the data from the kernel to the process)。

对于socket流而言:

第一步通常涉及等待网络上的数据分组到达,然后被复制到内核的某个缓冲区。
第二步把数据从内核缓冲区复制到应用进程缓冲区。

  • 阻塞I/O
阻塞I/O

首先用户空间的一个进程调用了recvfrom(系统调用方法),然后该方法被转移到内核空间中执行。注意当用户空间的进程执行了该方法,便进入阻塞状态。内核空间执行该方法,开始接受相应的数据,直接数据在内核空间准备就绪,这个时候将数据复制到用户空间,最后用户空间从recvfrom返回。

  • 非阻塞I/O
非阻塞I/O

内核中数据准备好之前,用户空间的进程不会阻塞,而是采用轮询方式来访问。

  • 多路复用I/O
多路复用I/O

用户空间进程调用select后阻塞,直到内核空间返回目前可用的可读条件,接着再读取内核空间的数据,此时又为阻塞。(需要注意的是内核空间返回的还可能是可写或异常条件)

  • 异步IO
异步IO

对于异步IO来说,感觉一切都显得那么简单残暴。用户空间调用read方法,然后内核直接返回,此时用户空间继续执行接下来的代码,而不用阻塞在这里。当用户空间数据准备就绪,就从内核返回一个信号通知最后的结果。

个人对同步/异步,阻塞/非阻塞的理解
对于阻塞/非阻塞的描述对象,指的是进程/线程的,准确一点说是它的状态。
对于同步/异步,个人认为,与阻塞/非阻塞没有任何关系。它指的是如果当前方法想要得到一个最终的结果值,那么该方法就是同步的。同步意味着什么?每一条语句的执行都是依赖上一条一个确定的执行结果,整个执行过程是可以追踪,有迹可循的。而对于异步来说,当前语句并不关心返回的是否是最终结果,而一旦最终执行结果出来了,那么可以通过一种”信号“机制来告知当前进程。所以异步能够阻止进程的阻塞,从而进一步提高系统的响应速度。但是异步也有缺点,那就是如果要对代码执行进行追踪,则相对来说比较困难,因为并不清楚每一个异步操作的返回值是何时返回的。

参考文章:
简明网络I/O模型---同步异步阻塞非阻塞之惑

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,980评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,178评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,868评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,498评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,492评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,521评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,910评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,569评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,793评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,559评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,639评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,342评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,931评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,904评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,144评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,833评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,350评论 2 342

推荐阅读更多精彩内容