《大型分布式网站架构设计与实践》读书笔记

一、面向服务的体系架构(SOA),分布式服务框架设计:阿里巴巴Dubbo

基于TCP的RPC(远程过程调用):如基于java的Socket API。序列化方式:java的outputstream ,Hessian,google的Protocal Buffers

基于HTTP的:序列化方式:JSON,XML。两种URL链接风格:RESTful和RPC

基于ZooKeeper的服务配置中心搭建。核心:消费者--查询-->服务配置中心<--注册--服务提供者

负载均衡算法:轮询、随机、源Hash法、最小连接数等

Http服务网关,网关集群
《大型分布式网站架构设计与实践》读书笔记_第1张图片


二、分布式系统基础设施

分布式缓存memcache:先装libevent,再装memcache。演变:分布式session
持久化存储
    mysql:dual-master配置( 个人觉得:不如keepalive做一主两从),master写压力主要通过分库分表。但缺点是:关联查询,跨表查询上升为分布式事务,迁移不便
    HBase

    Redis(Key-value数据库)

垂直化搜索引擎:Lucene,Solr

消息系统:activeMQ,kafka,memcacheQ。ActiveMQ & JMS 。两种模式:P2P,Pub/Sub

《大型分布式网站架构设计与实践》读书笔记_第2张图片 《大型分布式网站架构设计与实践》读书笔记_第3张图片


三、互联网安全架构

常见WEB攻击手段:XSS,CRSF,SQL注入,DDos,其它:DNS域名劫持,CDN回源,缓冲区溢出

常用安全算法:非对称加密RSA,数字签名,数字证书。摘要认证。签名认证。(当年做大宗商品交易平台,用到建设银行E商贸通接口,基本涉及到公私钥生成--》公钥交换--》对称钥匙传输--》加签--》验签)

    摘要认证:取决于对称secret

    签名认证:用非对称公/私钥对

    HTTPS协议:密钥随机产生,通过数字证书验证双方身份。全程加密。

    OAuth:用户(User)通过平台商(Platform)对第三方软件商(ISV)的应用进行授权。

    《大型分布式网站架构设计与实践》读书笔记_第4张图片


四、系统稳定性

检测机制

    网络层:ping -c 2 www.123.com
    应用层:运行curl访问目标机check.html
    业务检测:curl -L www.host.com
    系统压测:qps,rt两个指标   qps=(总PV*80%) / (60*60*24*20%)   再除以  单台qps最高值
流量控制:
     原子性(Atomic)
    一致性(Consistency)
    隔离性(Isolation)
    持久性(Durability)
可用性:

     一致性:强一致性,弱一致性,如mysql的主从数据同步,Zookeeper的选举和原子广播

    扩展性:

    高并发:有种方案,把单行库存拆成多行 ,比如1000个,拆成五个2000个

性能测试工具:前端工具:YSlow

     ab:ApacheBench
    JMeter:
    HP LoadRunner
    TCPCopy:请求复制工具,将在线流量复制到TEST
性能优化:
    前端:减少http请求数量:合并样式和脚本;是否使用CDN网络;使用压缩
    java端:单例,Future模式,线程池:ExecutorService exec=Executors.newFixedThreadPool(5),选择就绪:减少上下文切换,降低锁竞争。
java应用故障排查常用工具:jps,jstat,jinfo,jstack,jmap,btrace,jconsole,mat

五、数据分析

日志收集:inotify机制(变更立即通知)、ActiveMQ-CPC

架构和存储

《大型分布式网站架构设计与实践》读书笔记_第5张图片

Chukwa:基于hadoop开发的数据采集与分析的框架,支撑海量日志收集与分析工作。

离线数据分析:hadoop、mapreduce、hive
流式数据分析:Storm

数据同步
    离线数据同步:sqoop进行mysql与nosql对导
    实时数据同步:ActiveMQ
数据报表:Highcharts

你可能感兴趣的:(●,读书笔记)