架构设计是一门艺术,对架构的掌握要通过多看,多学,多交流,多积累,从实战架构上总能吸收到很好的营养,这边书虽然

(一).hadoop技术处理电信行业的上网日志
根据上网的url或未知url爬取内容,进行分类,根据模型统计出个人喜好,从何精准营销。
经典hadoop应用分层:
接口层:负责与外部数据的交换
数据层:分布式大数据处理平台
资源层:类似ISSA,实现对物理资源的自动部署和动态扩展
功能层:流程,调度,监控,元数据管理,安全等
应用层:词库分类,分类索引,负责应用功能的具体算法
展示层:web展示应用层处理的结果
网络爬虫:爬去url中的内容
(二).Hadoop平台在金融银行业的应用架构
在核心系统层,增加hadoop平台实现历史数据存储备份、对外提供数据查询、基于存储提供数据挖掘
(三).优酷hadoop平台开放
主要是安全和开放,安全包括访问安全(查看数据,hdfs权限)和用户安全(用户身份)
开放:规范、流程管理、监控(节点、资源利用率、异常分析、用户存储配额、调度队列)
(四).推荐平台
包括实时接入、实时计算、cache分布式存储、离线计算平台、运营平台
四个关键部分:
a:实时接入:管道作用,接入数据,分发给计算平台
b:流式计算:关注业务特点,业务场景而非平台架构
c:存储引擎:写主读备
d:推荐引擎:接入、分法计算、真正计算
(五).社交网络大数据挖掘与社会化推荐
推荐系统发展:
协同过滤算法CF-->推荐引擎-->item based-->二度好友-->社会化推荐
社会化推荐引擎构成:
好友推荐模型的几个关键算法:
二度好友-->好友簇-->好友圈演化趋势预估-->好友接受率模型-->多图谱融合
(六).微博用户兴趣建模
用户兴趣的三个方面:兴趣标签、兴趣词、兴趣分类
实时系统抽取兴趣词,离线挖掘优化
实时抽取:
微博内容-->分词、分类-->按微博ID存入redis-->超出范围按userID合并-->非活跃用户利用历史redis和实时redis中的同一用户数据在内存中完成合并
离线挖掘:
减少实时抽取的噪声,通过计算单词的上下文相似性来获得词的相似性,通过词的相似性建立图挖掘的一边,相似度越大,图越密集,进而有效识别噪声,挖掘出用户真正的兴趣。
(七)小米移动应用网络建设和优化
1.移动应用网络的挑战:
基于电波传送信号不稳定;移动网络尚不成熟;
2.不同类型移动网络速度:
3.小米应对措施:
建设CDN或动态加速节点,源站和节点之间可以通过广域网直接对接,也可以通过速度好的中继节点;用户请求重转;通过TCPXM抓包分析链路质量,进而分析;
持续优化:不断修改IP库,地域性联通问题大可考虑拉专线,基于http协议做协议转换
(八)西门子系统架构管理概念
系统架构全生命周期:
(九)构建高性能、稳定SOA应用
基于消息队列解耦;流程间按子任务,任务间用消息队列异步获取输入或输出结果,达到任务间并行的目的,其实只是同时处理,从某一个完成流程来看,其还是顺序的,而且效率是有影响的。
(十)基于开源技术的网络安全架构
OSSIM系统组成:各类安全设施、代理进程Agent、传感器、关联引擎、数据仓库、web控制台
数据包通过的路径:
网卡硬中断--->软中断--->内核协议栈--->系统调用--->socket接口--->libpcap接口--->用户应用程序
(十一)TOGAF应用架构设计落地
业务架构关键:组织机构、业务功能、业务流程
业务功能靠业务流程实现,业务流程由业务步骤组成,业务步骤由组织机构单元承担
应用架构关键:功能和系统,系统是IT功能的承载者。
应用架构建新一代系统工作主线:
业务功能--->业务流程--->业务步骤--->区分全手工半自动全自动业务步骤--->功能分组映射系统,找出IT功能点--->设计IT系统
(十二)分布式系统安全设计解决
数组签名确保完整性,对传递的信息进行加解密确保私密性。
(十三)淘宝TFS
1.写入完成后回向client返回一个由集群号、block id、file id组成的文件名,方便client通过该文件名访问存储的文件。
2.服务端不会立刻删除文件,先打上标记,当删除超过一定比例,在低峰期再进行删除,同时对block进行整理。
3.tfs支持利用tair分布式存储将block的位置信息缓存,以便减轻nameserver的访问压力。
4.tfs自持通过metaserver的映射关系实现用户自定义文件名;
5.tfs支持将大文件分散成小文件(2M),然后将多个小文件的名称作为新的文件数据存储到TFS,读取时根据此新文件的特殊名称标识知道此乃大文件,于是读取启动的小文件名,在从TFS里读出各分片数据,重新组合成大文件。
6.机房容灾:机房独立集群,集群间同步(通过dataserver在后台线程重放日志)保证数据互为镜像。
7.多机房多主集群部署方式,可以通过一定配置规则如blockid的奇偶性来分开写,然后对其他机房彼此同步
8.TFS将所有资源信息存储在mysql的数据库里,通过资源管理服务器rcserver进行统一管理。
(十四)内存作为统一存储实实践
对微博之类的社交类,基础内存做信息同步的三种模式:
拉模式:查询此用户关注的人,然后从这些人中查所有的微博。缺点:是关注的人多时数据大,长时间响应不了。
推模式:为每个收听者建立一个队列,用户发了微博后向收听者队列插入数据。缺点:大V粉丝多,数据量太大。
内存模式:只更新内存中的收听用户队列,当非内存中的收听用户上来时,在内存中利用拉模式构建收听队列。
把缓存当作具有一定逻辑结构的存储体系,注意利用数据填充工具填充新服务器中的缓存数据。
(十五)数据库优化
优化步骤:设计层 sql调优 内存IO层面 操作系统优化
尽量不建索引,实在要建,就建复合压缩索引
缓存sql语句执行计划
(十六)京东商城网站架构演变
三个发展时代:
1:asp连db
2:静态网页放在cdn中配合动态交易系统(购物车、订单中心)具体如下:cdn--->web应用--->读取静态文件(用生成器生成)
还有几点:将促销系统拆分出来,拆分库存逻辑,db复制
3:
交易系统:前面的负载均衡--->web应用--->业务服务层--->基础服务层
1.核心系统全面服务化,服务框架的基本三功能:路由,fileover机制,服务分组
2.数据访问分库分表
3.缓存
大流量下的四步:异步化--->限流--->分流--->降级
(十七)新浪视频后台架构变迁
视频点播CDN:
每个squid将io、连接数等状态报告给数据中心,播放接口根据统计信息将用户引导到离他近且状态良好的节点上:
视频直播:
 
视频存储:
 
 
 
 
 
 
 

我读《大数据时代的IT架构设计》的更多相关文章

  1. 我读《通过Go来处理每分钟达百万的数据请求》

    我读<通过Go来处理每分钟达百万的数据请求> 原文 原文作者为Malwarebytes公司的首席架构师Marcio Castilho http://marcio.io/2015/07/ha ...

  2. [译]使用golang每分钟处理百万请求

    [译]使用golang每分钟处理百万请求 在Malwarebytes,我们正在经历惊人的增长,自从我在1年前加入硅谷的这家公司以来,我的主要职责是为多个系统做架构和开发,为这家安全公司的快速发展以及百 ...

  3. java它们的定义jar套餐读Excel(这包括2003和2007)数据,和实例

    使用java它们的定义jar套餐读excel数据支持excel2007和excel2003 在http://download.csdn.net/detail/u010792467/8079355下载所 ...

  4. 省市县从数据库读出来的list数据转换成json格式的数据

    一,数据源 1.1,数据库查出来的数据是 两张表先各自左外连接,然后在相互左外连接查找省市县的数据(业务需求必须这样做,省市去的是第一张表,而市县取的是第二张表,两张表中间通过市的名字连接)见这个博文 ...

  5. Golang 任务队列策略 -- 读《JOB QUEUES IN GO》

    Golang 在异步处理上有着上佳的表现.因为 goroutines 和 channels 是非常容易使用且有效的异步处理手段.下面我们一起来看一看 Golang 的简易任务队列 一种"非任 ...

  6. 我们如何用Go来处理每分钟100万复杂请求的场景

    在Malwarebytes我们经历了显著的增长,自从我一年前加入了硅谷的公司,一个主要的职责成了设计架构和开发一些系统来支持一个快速增长的信息安全公司和所有需要的设施来支持一个每天百万用户使用的产品. ...

  7. 分库分表(3) ---SpringBoot + ShardingSphere 实现读写分离

    分库分表(3)---ShardingSphere实现读写分离 有关ShardingSphere概念前面写了两篇博客: 1.分库分表(1) --- 理论 2. 分库分表(2) --- ShardingS ...

  8. Geek/Git中文怎么读

    Geek怎么读 英[gi:k] = gay客 = 给客 Git怎么读 英[gɪt] = gay 特 = 给特 Flux怎么读 英[flʌks] = 佛拉克斯 Redux怎么读 英[ri:'dʌks] ...

  9. 如何读懂Web服务的系统架构图

    Web服务的一个重要特点就是流量大.数据多,仅靠一台服务器肯定难以支撑大规模的服务. 所以我们经常会看到诸如以下的一些术语,教人好生不懂: *:系统架构.物理架构.Web服务基础设施 *:应用服务器 ...

  10. [高性能MYSQL 读后随笔] 关于事务的隔离级别(一)

    一.锁的种类 MySQL中锁的种类很多,有常见的表锁和行锁,也有新加入的Metadata Lock等等,表锁是对一整张表加锁,虽然可分为读锁和写锁,但毕竟是锁住整张表,会导致并发能力下降,一般是做dd ...

随机推荐

  1. [Luogu3733][HAOI2017]八纵八横

    luogu sol 线性基+线段树分治傻题. 复杂度应该是\(O((n+m\log n)\frac{L^2}{\omega})\)? code #include<cstdio> #incl ...

  2. mongodb 修改openfiles方法

    # vi /etc/security/limits.conf 在file中加上以下内容:(注意红色的为添加的) #ftp hard nproc 0#@student - maxlogins 4* so ...

  3. 在Flask中使用Celery的最佳实践

    写在前面 本最佳实践是基于作者有限的经验,欢迎大家共同讨论,可以持续维护此最佳实践.另本文中所使用的环境为Mac&Ubuntu环境,软件版本如下: Celery (4.1.0) Flask ( ...

  4. Windows 10 上的 Git 如何清除密码? Git Credential Manager for Windows

    Windows 10 上的 Git 如何清除密码? 因为一台新的电脑是 Windows 10 在第一次使用 Git 要求输入密码时把密码给输错了. 之前提交都是说 Token 错了,不再出现提示密码. ...

  5. Accept Job Offer Email Template

    Accept Job Offer Email Template <Date> <Hiring Manager’s name> <Company name> < ...

  6. jython研究笔记

    jython目前只支持python2,不支持python3. python中使用第三方包的话需要重新设置lib的地址. public void getHtmlByTxt(String path) { ...

  7. Linux操作系统多线程信号总结

    linux 多线程信号编程总结 linux 多线程信号总结(一) 1. 在多线程环境下,产生的信号是传递给整个进程的,一般而言,所有线程都有机会收到这个信号,进程在收到信号的的线程上下文执行信号处理函 ...

  8. 【精华】部署与管理ZooKeeper(转)

    部署与管理ZooKeeper(转) 本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin. ...

  9. var和let示例

    声明后未赋值,表现相同 (function() { var varTest; let letTest; console.log(varTest); //输出undefined console.log( ...

  10. Mysql总结(一)

    数据库命令:创建create database 数据库名 charset=utf8;删除drop database 数据库名;查看所有数据库:show databases;使用数据库:use 数据库名 ...