美文网首页
分布式系统常用技术及案例分析 第1章

分布式系统常用技术及案例分析 第1章

作者: 凯睿看世界 | 来源:发表于2019-03-08 15:41 被阅读0次

https://github.com/waylau/distributed-java 分布式JAVA

本书源码
https://github.com/waylau/distributed-systems-technologies-and-cases-analysis

分布式面临的挑战
异构性,缺乏全球时钟,一致性,故障独立性,并发,透明性,开放性,安全性,可扩展性

OSI参考模型
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

TCP/IP网络模型
应用层
传输层
网络层
链路层

UNIX I/O 模型
阻塞I/O
非阻塞I/O
I/O复用(select 和 poll)
信号驱动I/O (SIGIO)
异步I/O(Posix.1 的aio_系列函数)

阻塞I/O + 线程池 的网络模型虽然比 阻塞I/O + 多线程 的网络模型在性能方面有所提升,但是这两种模型存在一个共同的问题:读和写操作是同步阻塞的,面对大量并发(持续大量连接同时请求)的场景,需要消耗大量的线程来维持连接。CPU在大量的线程之间频繁的切换,性能损耗很大。一旦单机连接超过1万,甚至达到几万的时候,服务性能为急剧下降。
而NIO的Selector却很好的解决这个问题,用主线程(一个线程或CPU个数的线程)保持住所有的连接,管理和读取客户端数据,将读取的数据交给后面的线程池处理,线程池处理完业务逻辑后,将结果交给主线程发送响应给客户端,少量的线程可以处理大量的连接请求。

JAVA NIO主要由: Channel, Buffer, Selector组成。

分布式提交
1:两阶段提交
第一阶段准备
第二阶段提交

2:三阶段提交
CanCommit阶段
PreCommit阶段
DoCommit阶段

3: Paxos算法
分为4中角色
Proposer:提议者
Acceptor:决策者
Client:产生议题者
Learner:最终决策学习者

CAP理论
一致性 Consistency
可用性 Availability
分区容错性 Partition-tolerance

窃听,中断,修改,伪造
加密,身份验证,授权,审计
常见的对称加密算法有
DES ,3DES,TDEA,Blowfish , RC2,RC4,RC5,IDEA,SKIPJACK,AES等

消息摘要算法有
MD2,MD4,MD5,SHA-1,SHA-256,RIPEMD128,RIPEMD160等

非对称加密:
RSA,Elgamal,背包算法,Rabin,D-H,ECC(椭圆曲线加密算法)

防火墙主要由服务访问规则,验证工具,包过滤和应用网关4个部分组成。

Dos(denial of service,拒绝服务)
SYN Flood 是当前最里流行的Dos和DDos的方式之一

死锁,饥饿,活锁.

活锁:一个线程常常处于响应另一个线程的动作,如果其他线程也常常响应该线程的动作,那么可能出现活锁。与死锁线程一样,程序无法进一步执行。

相关文章

网友评论

      本文标题:分布式系统常用技术及案例分析 第1章

      本文链接:https://www.haomeiwen.com/subject/luirpqtx.html