• 读书笔记:《架构解密:从分布式到微服务》


    0.前言

      该书集科普和启发于一身,是了解分布式和微服务,扩宽技术视野的不错的一本书,可以作为导论,先从全局角度了解技术,然后再通过其他途径从具体细节专研。因此这里只对关键概念进行了书写以提升印象。

      该书思路是注重前因后果与发展历程,软硬件兼并,以网络,内存,cpu,存储等计算机组件为章节,介绍了如何从单体应用到分布式应用或者所起到的作用。通俗易懂的描述了微服务和分布式,当然本书中也有一些晦涩难懂的部分,对于非科班出身或者计算机组成原理和操作系统学的不太好的同学不是很友好,但是也只是部分。

    1.基础

       计算机发展历程:

      划时代第一台超大型计算机ENIAC(1946)——IBM大型机(1964)——个人PC/小型UNIX服务器——超级计算机

     分布式系统的基石:网络

      分组交换试验网ARPANET,TCP/IP技术,NSFNET,以太网,Telent协议,万维网,HTTP协议,CDN

       网络基础

      国际骨干网——国家骨干网——城域网——园区网,

      IDC机房:出口路由,核心交换区,网络接入区,增值业务区

     NIO

      Buffer:字节buffer,堆外buffer,MappedByteBuffer等原理

      Netty

      非阻塞:TCP/IP滑动窗口,socket底层原理,Reactor模型,mycat-nio

     AIO

      NIO2,Retry模型,AIO-Linux陷阱

     序列化

      起因:面向网络,传输对象。数据大传输效率低,其他语言无法对接。

      XML,webService——Json,rest——MessagePack/ProtocolBuffer,RPC——Avro/Thrift

    2.理论

      特征:目标是提升整体性能和吞吐量,故障概率增加

      性能,容错。中心化,去中心化,脑裂

     一致性:

      Kafka一致性案例,Paxos算法,Raft

     zookeeper

      配置中心,服务注册中心,集群通信与子系统控制

     CAP理论

      一致性,可用性,网络分区。

     BASE理论

      主要可用,软状态,最终一致性

     分布式事务

      数据库单机事务

      原子性,一致性,隔离性,持久性

      Mysql事务执行流程

      X/OpenDTP事务模型

      二阶段提交,三阶段提交

     分布式事务解决方案:

      业务接口整合,最终一致性方案ebay模式,X/OpenDTP模型支付宝DTS框架

    3.RPC

      socket通信

      SunRPC

      CORBA的功败垂成

      XML-RPC

      ZeroC IceGrid

      服务治理,Dubbo

      SOA

      Thrift,gRPC

    4.内存

      CPU,内存,Cache

      多核CPU与内存共享

      Cache伪共享问题

      不一致性内存

     内存缓存技术:

      淘汰策略,LRU,LFU,FIFO

     缓存实现方式:

      进程内村换,单机缓存中间件,分布式缓存中间件

     Memcache内存管理策略

      内存页,page,chunk,slab。浪费现象slab automove。

     Redis:

      为何单线程,优势

     内存计算产品:

      SAP HANA,数据全部放入内存中,充分并行编程,最小化数据传输

      VoltDB,采用分区表结合副本表方式处理数据库水平扩展问题

    4.存储

      磁盘,磁盘阵列,DAS,SAN

      NAS,NFS

      GFS,GPFS

      GlusterFS

     Ceph

       充分发挥存储设备自身计算能力,完全去中心化的设计思路

      CRUSH算法

    5.分布式计算

     Actor模型

     Akka:

      并发并行程序简单的高级别抽象,异步非阻塞高性能时间驱动编程模型,轻量级事件驱动处理

     Storm

     MapReduce

    6.全文检索与消息中间件

     Lucene

     solr

     es

     消息队列

      第一代:ActiveMq,J2EE时代产物,企业级特性。消息持久化存储,事务要求。

      第二代:RabbitMq,后Java时代。ActiveMq APollo。AMQP协议。

      第三代:Kafka,互联网时代。rocketmq

     JMS

      点对点消息通信模型,发布订阅模型

    7.微服务架构

     容器技术

     Docker

     微服务架构:

      1.Rpc框架进化的ICeGrid

      2.Rest演化的SpringCloud

      3.基于容器技术的kunernetes

     常见的微服务方案:

      IceGrid,注册中心,独立进程,内嵌负载均衡,一键部署

      SpringCloud,Netflix,Eureka,Zuul,Ribbon,Hystric

      基于消息队列的微服务,网易蜂巢平台

      Docker Swarm

      kunernetes

     平台领域模型

      

      

      

      

     

      

      

      

      

      

      

      

      

      

      

     

     

      

      

      

      

      

      

      

  • 相关阅读:
    mybatis :xml文件中传入参数和if标签结合使用时要点
    mysql:查询数据库版本的几种方式
    http post 方法传递参数的2种方式
    深入理解mybatis参数
    Mybatis:动态sql
    Mybatis:传入参数方式以及#{}与${}的区别
    [GLSL]着色器周记02——火焰特效 【转】
    OpenGL ES入门09-GLSL实现常见特效 [转]
    RenderMonkey 练习 第五天 【OpenGL NormalMapping】
    反射向量 及 向量投影
  • 原文地址:https://www.cnblogs.com/sjlian/p/10320020.html
Copyright © 2020-2023  润新知