0%

GFS

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区分开

  • 控制器负责管理kafka分区的状态
  • 管理每个分区的副本状态
  • 监听Zookeeper中数据的变化并作出相应的反馈
  • 主题的创建与删除
  • 代理故障转移等功能

只有Controller在zookeeper上注册相应的监听器,其他的broker尽量不要监听zookeeper的数据变化,降低zookeeper的负载,也减少了zookeeper数据变化导致的羊群效应

所有的Broker都会监听控制器Leader的状态,负责管理集群 broker 的上下线,所有topic 的分区副本分配和leader 选举等工作。
Controller 的管理工作都是依赖于 Zookeeper的

  • controller_epoch:用于记录控制器发生变更次数,即记录当前控制器是第几代控制器,初始值为0,每选出一个新的控制器该字段加一,每个向控制器发送的请求都会带上这个字段,

阅读全文 »

Web请求处理

总体过程

请求处理使用org.apache.catalina.connector.CoyoteAdapter.service()方法

阅读全文 »

业务知识

不同的平台

  • SSP平台 供应方平台(Supply Side Platform),面向广告受众。程序化广告的广告资源管理平台以及相应的服务提供方
  • DSP平台 需求方平台(Demand Side Platform),面向广告主。程序化广告的广告投放管理系统以及相应的服务提供方。若干广告主将预算、创意、出价、流量要求等提交给DSP,DSP负责具体的投放决策。
  • ADX平台 广告交易平台, 为DSP和SSP服务的,接收到SSP的请求后,将广告流量信息传递给DSP,询问他们的出价。DSP响应后返回相应的广告创意及出价。一般是基于RTB进行的,价高者得。
    • 可以进行流量控制,决定这个流量发送到哪些DSP
    • 需要进行创意审核,只有审核通过的创意才可以进行竞价
    • 可以设置广告过滤条件,如底价过滤,DSP的出价必须高于底价才能参与竞价
  • DMP平台 数据服务平台,人群定向和媒体定向支持

不同的结算

  • CPM(Cost Per Mille Impression),mille是千的意思,表示每千次曝光的成本
  • CPC(Cost Per Click),每次点击的成本
  • CTR(Click Through Rate),点击率,就是click除以imp的比例
  • eCPM(earnings of CPM),每千次广告的曝光,能够带来的广告费收入。对于媒体很重要的指标

DMP数据分析

  • 用户画像 综合了用户属性中各项数据搭建的用户整体情况,包括用户性别、年龄、职业、收入水平、受教育程度、婚育情况、兴趣爱好、消费水平等
  • 用户分层 基于用户的一项或多项指标进行用户区分,形成不同层次,运营人员对不同层次类型的用户实施具有针对性的策略,达到更好的运营效果,其中用户分层通常是一种递进或递减的关系。例如根据用户的生命周期进行分层,可以分为潜在客户、新客户、成熟客户、衰退客户。
  • 用户分群 用户分群是将用户标签化,把具有相同特征、行为的用户进行聚类,用来精细化运营,与用户分层相比没有明显的层次,且存在人群重合的可能性,如用户群A既是母婴人群又是教育人群
  • ID Mapping 由于用户信息来源于不同的系统,将同一个用户的数据进行整合,需要对该用户在各个系统中的ID进行映射,这就是ID Mapping。
阅读全文 »