JSP引擎
Tomcat的jsp引擎是Jasper
Google文件系统(GFS)是最早一批的文件系统,不得不说Google公司的技术是真的牛,发布的论文都是现在很多开源项目的理论基石,像HDFS、TFS等都是借鉴的GFS的思路
当时Google发表了两篇与GFS和MapReduce相关的论文,而Hadoop就是基于这两篇论文的思想实现的
GFS系统的节点可分为三种角色:GFS Master(主控服务器)、GFS ChunkServer(CS,数据块服务器)以及GFS客户端
GFS文件被划分为固定大小的数据块(chunk),由主服务器在创建时分配一个64位全局唯一的chunk句柄,CS以普通的Linux文件的形式将chunk存储在磁盘,为了保证可靠性,chunk在不同的机器中复制多份
主控服务器中维护了系统的元数据,包括文件及chunk命名空间(需要持久化)、文件到chunk之间的映射(需要持久化)、chunk位置信息(不需要持久化,可以通过ChunkServer汇报获取),也负责整个系统的全局控制,如chunk租约管理、立即回收无用chunk、chunk复制等,主控服务器会定期与CS通过心跳的方式交换信息
其性能关注点在内存
Kafka 集群中有一个broker 会被选举为Leader控制器,控制器是kafka集群的中心,它的主要作用是在 ZooKeeper 的帮助下管理和协调整个 Kafka 集群。一个kafka集群中,除控制器这台Broker之外的其他Broker会根据控制器的指挥来实现相应的功能
这个Leader控制器是整个集群的,要与分区的Leader区分开
只有Controller在zookeeper上注册相应的监听器,其他的broker尽量不要监听zookeeper的数据变化,降低zookeeper的负载,也减少了zookeeper数据变化导致的羊群效应
所有的Broker都会监听控制器Leader的状态,负责管理集群 broker 的上下线,所有topic 的分区副本分配和leader 选举等工作。
Controller 的管理工作都是依赖于 Zookeeper的
controller_epoch:用于记录控制器发生变更次数,即记录当前控制器是第几代控制器,初始值为0,每选出一个新的控制器该字段加一,每个向控制器发送的请求都会带上这个字段,