web developer
文章平均质量分 66
qqqqq1993qqqqq
这个作者很懒,什么都没留下…
展开
-
【读书笔记】大规模Web开发技术(前言)
给菜鸟看得网站架构入门书。2-5章主要讲解大规模数据的处理问题,基本思路和重点。主要有缓存机制和数据库相应的对策。6-10章主演于编程和算法。11-15章介绍Hatena的基础设施结构。原创 2017-05-15 22:27:00 · 327 阅读 · 0 评论 -
【简记】大规模Web开发技术(第五章)
第五章主题:大规模数据处理“实践”入门——应用程序开发的重点第14课 特殊用途索引——处理大规模数据时超出RDBMS 处理能力时怎么办?.用批处理取出数据·创建专用索引服务器,通过Web- API 等进行查询所建立的索引可以被称为特殊索引特殊用途索引定期取出数据根据取出的数据创建数据结构→搜索用的逆向索引→关键字链接用的Tire原创 2017-05-22 14:57:54 · 429 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十五章)
第15章 web服务和网络——通过网络看服务增长 流量达到1Gbps时就会产生许多问题。从路由器的性能来看, pps (每秒发包数)比bps 更重要。Hatena 使用的PC 路由器的极限为30 万pps 这是要点之一。 还有,将主机500 台以上放在一个子网内,就会出现许多问题,丢包现象也频繁发生。 此外,如果想把全球服务扩展到北美、欧洲等地,那么若只有一个数据中心,跨越太平洋或横跨大西洋原创 2017-05-31 13:56:34 · 370 阅读 · 0 评论 -
【读书笔记】大规模Web开发技术(ch16 作业队列系统,存储选择,分布式)
第16章 特别篇 当前构建web服务需要的实践技术——应对大规模web服务须知 特别篇第1课 作业队列系统theschwartz、gearman 利用作业队列系统异步执行那些允许延迟的处理,可以改善用户体验。 TheSchwartz TheSchwartz 的作业队列采用了MySQL 这种RDBMS 。用MySQL 管理作业队列,能保证非常高的可靠性和稳定性。多数异步处理都是必须确实原创 2017-05-31 15:16:42 · 572 阅读 · 0 评论 -
【简记】Java Web 内幕——Servlet介绍,编程
本章内容:1. servlet概念及相关接口简介2. servet 执行过程3. servlet路径映射4. 缺省servlet --应用5. servlet生命周期(重点) --理解(重点)6. Servlet自动加载 7. Servlet线程安全 8. servletConfig对象9. Servlet相关接口详解10. ServletContext对象原创 2017-07-15 15:49:44 · 377 阅读 · 0 评论 -
一致性Hash算法简介
http://blog.csdn.net/cywosp/article/details/23397179http://www.jianshu.com/p/e8fb89bb3a61负载均衡算法在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Respo转载 2017-08-13 13:04:54 · 316 阅读 · 0 评论 -
MemCache解读
转载自http://www.cnblogs.com/xrq730/p/4948707.htmlMemCache是什么MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统,用于动态Web应用以减轻数据库的负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高了网站访问的速度。MemCaChe是一个存储键值对的HashMap,在内存中对任意的数据转载 2017-08-13 16:19:03 · 312 阅读 · 0 评论 -
一致性hash算法的Java实现
http://www.cnblogs.com/xrq730/p/5186728.html一致性Hash算法关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法、一致性Hash算法的算法原理做了详细的解读。算法的具体原理这里再次贴上:先构造一个长度为232的转载 2017-08-13 20:15:40 · 244 阅读 · 0 评论 -
Memcache应用场景介绍
面临的问题对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题。特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰 值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了。很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩 展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时转载 2017-08-13 20:51:44 · 215 阅读 · 0 评论 -
名词解释:POJO,JavaBean,DAO,BO,EJB
1、POJO POJO(Plain Old Java Object)这种叫法是Martin Fowler、Rebecca Parsons和Josh MacKenzie在2000年的一次演讲的时候提出来的。按照Martin Fowler的解释是“Plain Old Java Object”,从字面上翻译为“纯洁老式的Java对象”,但大家都使用“简单java对象”来称呼它。转载 2017-08-14 16:11:01 · 463 阅读 · 0 评论 -
Json解析
出自:http://www.cnblogs.com/SkySoot/archive/2012/04/17/2453010.htmlJSON 数据格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析翻译 2017-08-14 17:03:40 · 308 阅读 · 0 评论 -
【简记】大规模Web开发技术(第四章)
第四章主题:数据库的横向扩展策略——以分布式为基础的MySQL应用最近也出现了很多NoSQL 等其他实现,但几年之内, LA如1p (Linux + Apache +MySQL + Perl )的Web 服务的标准数据存储仍会是MySQL 。(10年说的话)第11课:正确使用索引——分布式MySQL应用的大前提从页面缓存的角度:之前有提到一个页面缓存在4kb左右,b树每个节原创 2017-05-17 16:30:18 · 353 阅读 · 0 评论 -
【简记】大规模Web开发技术(第二章)
第二章主题:大规模数据处理入门(linux背景下)中-大数据标准,每张sql表的数据量都以GB为单位,表中数据量千万级别。改善I/O性能,需要确认以下几点:·能否通过增加内存以保证缓存区域的方法解决;.数据量是否本来就过多;·有无必要改变应用程序的I/O算法。Web 应用程序在进行计算时,也就是说接受HTTP 请求、查询数据库,再把数据库返回的数据加工变原创 2017-05-16 14:29:05 · 525 阅读 · 0 评论 -
【简记】大规模Web开发技术(第一章)
小规模服务和大规模服务的区别:1.保证可扩展性、负载均衡的必要性横向扩展:通过增加服务器数量来提高系统整体的处理能力并分担负载。纵向扩展:通过提高硬件性能来提高处理能力的方法。硬件的性能和价格不是成比例的。越是大批量生产的通用硬件,其价格就越便宜,而横向扩展策略就是通过横摆放廉价硬件来确保可扩展性。采用横向扩展策略能降低成本,但会产生各种各样的问题。例如:用户请求如何分配?原创 2017-05-16 11:13:15 · 389 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十章)
第十章 创建全文搜索引擎——基本部分、改进、速度和准确度的要求第27课 创建Hatena Bookmark 全文搜索http://eriol.iteye.com/blog/1166989(java实现)原创 2017-05-28 19:50:23 · 239 阅读 · 0 评论 -
【读书笔记】大规模Web开发技术(第十六章 part2)
特别篇第3课 缓存系统——squid、varnish 当Web 应用程序负载的逐渐增大,系统容量不足时,增加应用程序服务器和数据库服务器当然可以应对,但使用HTTP加速器在HTTP 层增加缓存处理,就能以低成本实现不错的效果。 代理服务器可以缓存请求的响应内容,下次对于同样的请求就可以直接返回缓存的内容。这样无需消耗带宽或服务器资源,就能快速处理请求。 Web 应用程序达到一定规模后,有效利用原创 2017-05-31 16:53:01 · 633 阅读 · 0 评论 -
【简记】大规模Web开发技术(第六章)
第六章主题:压缩编程——考虑数据大小和i/o加速之间的关系压缩的基础压缩就是分析符号的出现频率,用短编码标记频繁出现的符号,用长编码标记其余的符号。也就是说,根据符号出现概率的概率分布生成最佳编码。这就是最根本的压缩理论。例如,有的算法首先从头开始分析各个文字符号的出现频率,求出概率分布之后,再据此生成最佳符号,如哈夫曼编码等。第17课 可变字节码和速度的感原创 2017-05-22 15:01:55 · 337 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十一章)
第11章 支持大规模数据处理的服务器/基础设施入门——web服务的后台第29课 企业软件vs. web服务第30课 云vs.自行构建基础设施云计算的特点是价格便宜,可扩展性优秀。云的最大优点就是"可扩展性"。自行构建基础设施的优点有:1 .硬件配置可以灵活调整:2. 能够灵活应对服务的要求:3. 可以控制瓶颈。Hate原创 2017-05-29 10:55:31 · 640 阅读 · 0 评论 -
【读书笔记】大规模Web开发技术(第三章)
第三章主题:操作系统缓存(Linux背景下)操作系统的缓存机制 Linux 上有页面缓存(page cache) 、文件缓存(file cache) 、缓冲区缓存(buffer cache) 这些机制。本章讲述页面缓存。由于操作系统将物理硬件抽象化,因此才产生了虚拟内存。 (交换文件是运用了虚拟内存的一个功能,当物理内存不足时,将次级存储( 主要是磁盘)看作内存,以从表面上解决内存不足。)操作系原创 2017-06-01 23:52:46 · 322 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十二章)
第十二章 保证可扩展性的必要思路——规模扩大和系统扩展Hatena 的大规模服务由几十台服务器构成,各台服务器均为4 核CPU 1 ~2 个,安装8GB ~ 32GB 内存,并能够根据负载状况进行扩展。各层的扩展性:因为应用程序服务器没有状态,将任何请求分配到其他应用程序服务器上都不会发生任何问题,因此只须在负载均衡器上添加新服务器就可以不断扩大。只要增加服务器,就可以扩展原创 2017-05-29 16:31:48 · 447 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十三章)
第13章 保证冗余性和系统的稳定化——实现100%在线率的原理保证冗余性——应用程序服务器一般解决方法:增加服务器当服务器宕机时:用负载均衡器实现失败转移(failover) 和失败恢复( failback) ,让故障服务器自动下线,故障恢复之后再上线。失败转移(failover) 就是使其自动离线,失败恢复( failback)就是让恢复正常的服务器再次上线。负载均衡器对服务器定原创 2017-05-30 11:20:37 · 326 阅读 · 0 评论 -
【简记】大规模Web开发技术(第七章)
第七章主题:算法实用化——从身边的例子来看理论、研究的实践投入第19课:算法和算法评测实用算法也就到O(n logn)附近。再高,复杂度就会随着n的增加而急剧增大,经常导致计算无法结束。例如, 一般的基于比较的排序算法无论怎么优化,也不可能比O(n logn)快,这一点在理论上可以证明。因此,排序算法能达到O(n log),就可以认为是高速算法。复杂度记法适用于比较原创 2017-05-23 15:22:02 · 253 阅读 · 0 评论 -
【简记】大规模Web开发技术(第八章)
第八章主题——Hatena关键字链接的实现原创 2017-05-24 22:19:43 · 373 阅读 · 0 评论 -
【简记】大规模Web开发技术(第十四章)
Hatena 通过虚拟化技术提高了主机的集成度,提高了整体的资源利用率。此外,我们自行纽装服务器,避免了服务器配置过高,实现了系统整体的低成本。虚拟服务器的构建策略 引入虚拟化技术最根本的目的就是提高硬件的使用率。为提高硬件使用率,应当让虚拟机操作系统使用空闲的资源。 例如, CPU 资源空闲就建立Web 服务器,I/O资源空闲就建立数据库服务器,内存资源空闲就建立缓存服务器。资源消耗倾向相似,原创 2017-05-31 13:21:39 · 420 阅读 · 0 评论 -
【简记】大规模Web开发技术(第九章)
第九章主题——挑战全文搜索技术(大数据处理技巧)第24课 全文搜索技术的应用范围本次首先从Hatena 实际应用的搜索引擎概要开始,接着讲述创建搜索引擎中最重要的元素之一一逆向索引( inverted index) 。逆向索引由Dictionary (字典文件)和Postings (置入文件)两个基本要素组成。本章的目标是以逆向索引为基础,理解搜索引擎的基本结构。“包含原创 2017-05-28 11:16:18 · 791 阅读 · 0 评论