互联网构架课案

上传人:我** 文档编号:117871325 上传时间:2019-12-11 格式:PPTX 页数:58 大小:3.32MB
返回 下载 相关 举报
互联网构架课案_第1页
第1页 / 共58页
互联网构架课案_第2页
第2页 / 共58页
互联网构架课案_第3页
第3页 / 共58页
互联网构架课案_第4页
第4页 / 共58页
互联网构架课案_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《互联网构架课案》由会员分享,可在线阅读,更多相关《互联网构架课案(58页珍藏版)》请在金锄头文库上搜索。

1、互联网系统架构 陈利人 微信:diggerchen 微博:lirenchen 提纲 指导思想 实例 架构进化 实现框架 常用技术 指导思想 分而治之(divide and conquer) 集中调度(centralized schedule) 缓存(cache) 复制(replication) 数据采集(sample) 实例1:Google早期系统架构 Replica 1 Replica 0 GTC Netscaler GFE GSLB GFE GFE Backend0 Backend0 Backend0 Backend0 LB Backend1 Backend1 User Borg Borg

2、Mon AlertManager 实例2:分层分模块架构 架构进化 运用指导思想,一步一步进化成一个大规 模的服务架构 分离webserver和数据库 08/09/03/226749.html 状态收集 增加页面缓存 状态收集 增加页面片段缓存 状态收集 数据缓存 状态收集 增加webserver 状态收集 服务调度 分库 状态收集 服务调度 分表、DAL和分布式缓存 状态收集 服务调度 增加更多的webserver 状态收集 数据读写分离和廉价存储方案 状态收集 大型分布式应用和廉价服务器群 状态收集服务调度 实现框架 Zookeeper服务集群管理 Thrift RPC 实现服务模块 Na

3、gios数据采集监控 ZooKeeper Zookeeper 从设计模式角度来看,是一个基 于观察者模式设计的分布式服务管理框架 ,负责存储和管理大家都关心的数据,然 后接受观察者的注册,一旦这些数据的状 态发生变化,Zookeeper 就将负责通知已经 在 Zookeeper 上注册的那些观察者做出相 应的反应,从而实现集群管理。 统一命名服务(Name Service) 分布式应用中,通常需要有一套完整的命名规 则,既能够产生唯一的名称又便于人识别和记 住,通常情况下用树形的名称结构是一个理想 的选择,树形的名称结构是一个有层次的目录 结构,既对人友好又不会重复。 Name Service

4、 已经是 Zookeeper 内置的功能, 只要调用 Zookeeper 的 API 就能实现。如调用 create 接口就可以很容易创建一个目录节点。 配置管理(Config Management) 配置的管理在分布式应用环境中很常见,例如 同一个应用系统需要多台 Server 运行,但是 它们运行的应用系统的某些配置项是相同的, 如果要修改这些相同的配置项,那么就必须同 时修改每台运行这个应用系统的 Server,这样 非常麻烦而且容易出错。像这样的配置信息完 全可以交给 Zookeeper 来管理,将配置信息保 存在 Zookeeper 的某个目录节点中,然后将所 有需要修改的应用机器监

5、控配置信息的状态, 一旦配置信息发生变化,每台应用机器就会收 到 Zookeeper 的通知,然后从 Zookeeper 获取 新的配置信息应用到系统中。 配置管理(Config Management) 集群管理(Group Membership) Zookeeper 能够很容易的实现集群管理的功能,如有多 台 Server 组成一个服务集群,那么必须要一个“总管 ”知道当前集群中每台机器的服务状态,一旦有机器不 能提供服务,集群中其它集群必须知道,从而做出调整 重新分配服务策略。同样当增加集群的服务能力时,就 会增加一台或多台 Server,同样也必须让“总管”知 道。实现方式都是在 Zoo

6、keeper 上创建一个 EPHEMERAL 类型的目录节点,然后每个 Server 在它们 创建目录节点的父目录节点上调用 getChildren(String path, boolean watch) 方法并设置 watch 为 true,由于 是 EPHEMERAL 目录节点,当创建它的 Server 死去,这 个目录节点也随之被删除,所以 Children 将会变化,这 时 getChildren上的 Watch 将会被调用,所以其它 Server 就知道已经有某台 Server 死去了。新增 Server 也是同样的原理。 集群管理(Group Membership) Thrift

7、Thrift 是 Facebook 实现的一种高效的、支持 多种编程语言的远程服务调用的框架。结 合了功能强大的软件堆栈的代码生成引擎 ,无缝地与C+,C#,Java,Python和PHP和 Ruby,Javascript等多种语言结合。Thrift允 许你定义一个简单的定义文件中的数据类 型和服务接口,以作为输入文件,编译器 生成代码用来方便地生成RPC客户端和服务 器通信的无缝跨编程语言。竞品有ProtoBuf 等。 Thrift 文件样例 Hello.thrift namespace java service.demo service Hello string helloString(1

8、:string para) i32 helloInt(1:i32 para) bool helloBoolean(1:bool para) void helloVoid() string helloNull() 定义了服务 Hello 的五个方法,每个方法包含一个方法名,参数 列表和返回类型。每个参数包括参数序号,参数类型以及参数 名。使用 Thrift 工具编译 Hello.thrift,就会生成相应的 Hello.java 文件。该文件包含了在 Hello.thrift 文件中描述的服务 Hello 的接口 定义,即 Hello.Iface 接口,以及服务调用的底层通信细节。 Thrift

9、 文件样例 struct Report 1: required string msg ; /该字段必须填写 2: optional i32 type = 0; /默认值 3: i32 time /默认字段类型为optional Thrift 架构 Nagios 一款免费的开源 IT 基础设施监控系统,其功 能强大,灵活性强,能有效监控 Windows 、 Linux、VMware 和 Unix 主机状态,交换机、 路由器等网络设置等。一旦主机或服务状态出 现异常时,会发出邮件或短信报警第一时间通 知 IT 运营人员,在状态恢复后发出正常的邮 件或短信通知。Nagios 结构简单,可维护性强 ,

10、同时提供一个可选的基于浏览器的 Web 界 面,方便管理人员查看系统的运行状态,网络 状态、服务状态、日志信息,以及其他异常现 象。简单地插件设计使得用户可以方便地扩展 自己服务的检测方法。竞品有Zabbix等。 Nagios工作原理 Nagios架构 插件样例 插件: #!/usr/bin/env python import os,sys (d1, d2, d3) = os.getloadavg() if d1 = 5.0: print GETLOADAVG CRITICAL: Load average is %.2f % (d1) sys.exit(2) else: print GETLO

11、ADAVG OK: Load average is %.2f % (d1) sys.exit(0) 注册: define command command_name check_mygetloadavg command_line /path/to/check_getloadavg 使用: define service use service-template host_name localhost service_description LoadAverage check_period 24x7 contact_groups server-admins notification_options

12、c,r check_command check_mygetloadavg Put them together ZooKeeper 数据服务1数据服务2 数据服务n 业务服务1业务服务2业务服务m 展示服务1展示服务2展示服务k 注册监听 Thrift ThriftThrift Thrift Thrift 反向代理1反向代理2反向代理l 负载均衡 Nagios Q/A or Continue? 常用技术 前端 应用逻辑 后端 数据库 搜索 推荐 移动 前端 防火墙,DDos 负载均衡:F5,Netscaler,LVS,DNS HTML,HTML5,Flash,Javascript PHP,Jav

13、a,Ruby,.Net,Python,Node.js Apache,Nginx,customized http server 负载均衡 数据中心间均衡:DNS 数据中心内均衡:F5,LVS,反向代理 后端服务均衡 应用逻辑 PHP,Ruby,Python,Java,.Net等 框架 组件 数据库 Database:MySQL,Postgres,Oracle NoSQL:MongoDB,Cassandra 数据库/存储结构 数据库/分表 数据库/分表 161475 数据库/高可靠性 architecture-based-mysql 数据库/Cache & Search NoSQL ql.html 001248963_all.shtml 搜索引擎 推荐引擎 /1103_zhaoct_recommstudy1/index.html 推荐引擎 基于人口统计学的推荐机制的工作原理 推荐引擎 基于内容推荐机制的基本原理 推荐引擎 基于用户的协同过滤推荐机制的基本原理 推荐引擎 基于项目的协同过滤推荐机制的基本原理 CDN 移动互联网 技术/移动互联网 技术/移动互联网 淘宝 Flickr 34351294385186067.html Google 搜索早期 Google 搜索 os/large/photo_id/3513857299752733?refer= weibofeedv5

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号