数据密集型应用设计读书笔记第一章。现在数据密集型应用,趋势是组件化。存储数据,以便自己或其他应用程序之后能再次找到 (数据库(database))记住开销昂贵操作结果,加快读取速度(缓存(cache))允许用户按关键字搜索数据,或以各种方式对数据进行过滤(搜索索引(search indexes))向其他进程发送消息,进行异步处理(流处理(stream processing))定期处理累积大批
转载 2023-12-11 10:56:54
46阅读
摘要:小心数据爆炸增长,不要进行不成熟优化,但是要密切关注渐进复杂.用户数据算法应该能够预测所处理数据量耗费时间,最好不差于线性关系.如果能够证明优化必要而且非常重要,尤其在数据量逐渐增长情况下,那么应该集中注意力改善算法O(N)复杂,而不是进行小型优化。    防范可能未来,要求我们要避免设计中含有面对更大文件、更大数据库、更多像素、更多窗口、更多
伸缩性原则 从最简单水平来看,伸缩性就是做更多事情。更多事情可以是响应更多用户请求,执行更多工作,或处理更多数据。设计软件这件事本身是复杂,而让软件做更多工作也有其特有的问题。这篇文章针对构建伸缩软件系统提出了一些原则和方针。 1. 减少处理时间 增加应用所做工作数量一个方法就是减少完成单项工作所花费时间。举例来说,减少处理一个用户请求所需时间意味着你能在同样长
转载 精选 2009-11-24 14:56:51
671阅读
从最简单水平来看,伸缩性就是做更多事情。更多事情可以是响应更多用户请求,执行更多工作,或处理更多数据。设计软件这件事本身是复杂,而让软件做更多工作也有其特有的问题。这篇文章针对构建伸缩软件系统...
转载 2013-04-30 12:08:00
134阅读
2评论
3.2 目标客户预测(响应、分类)模型这里预测(响应、分类)模型包括流失预警模型、付费预测模型、续费预测模型、运营活动响应模型等。预测(响应、分类)模型是数据挖掘中最常用一种模型类型,几乎成了数据挖掘技术应用一个主要代名词。很多书籍介绍到数据挖掘技术和应用,首先都会列举预测(响应、分类)模型,主要原因可能是响应模型核心就是响应概率,而响应概率其实就是我们在第1章中介绍数据化运营六要
扩展有两个层面的含义:一是功能扩展性,主要是针对平台框架,是否设计并预留了足够扩展点,后续可以很方便增加各种功能或有第三方实现各种插件。另一种是性能扩展性,系统弹性扩容能力,即随着系统用户量、并发增加是否实现弹性扩容,通过增加硬件设备就能提供更强处理能力,这种一般称为伸缩性
转载 2019-04-24 08:59:00
425阅读
2评论
伸缩网络服务定义 伸缩性(Scalability)是在当今计算机技术中经常用到词汇。对于不同的人,伸缩性有不同含义。 现在,我们来定义伸缩网络服务含义。 伸缩网络服务是指网络服务能随着用户数目的增长而扩展其性能,如在系统中增加服务器、内存或硬盘等;整个系统很容易被扩展,无需重新设置整个系统,无需中断服务。换句话说,系统管理员扩展系统操作对最终用户是透明,他们不会知道系统
 同步调用使得组件和组件之间紧密耦合起来,这样就使得要想伸缩应用就需要伸缩所有的组件,这不仅带来使得伸缩成本增加,而且这种高度耦合使得伸缩变得更加困难。因此我们需要从应用角度划分出,哪些业务操作是紧密关联,哪些是可以异步执行,划分出那些可以异步执行操作,然后将其进行异步化处理(比如通过JMS,事件队列,多播消息等或者线程池等),这样划分好处就是系统可以应对更大访问量,消
原创 2009-12-06 19:30:00
550阅读
引言在扩展大量大型分布式系统期间,我有机会观察(并实践)了一些最差实践。这些最差实践中大部分在开始时都没有危害,但如果疏忽大意,它们就会对系统发展和伸缩性构成危害。很多文章都聚焦于最佳实践,以确保拥有一个...
转载 2013-04-29 23:35:00
106阅读
2评论
数据系统基石头 可靠伸缩性,可维护: 可靠(Reliability)系统在困境(adversity)(硬件故障、软件故障、人为错误)中仍可正常工作(正确完成功能,并能达到期望性能水准)。伸缩性(Scalability)有合理办法应对系统增长(数据量、流量、复杂)(参阅“伸缩性”)可维护(Maintainability)许多不同的人(工程师、运维)在不同
转载 2024-01-21 10:50:48
66阅读
下面是我们认为一些伸缩性最佳实践:异步;尽可能使用异步,同步调用会导致两个服务可用绑在一起,意味着一个服务出问题或变慢,另一个也会受到影响,这点也是eBay一直强调;泳道设计;错误隔离机制,避免一个失败影响全局,这种机制也有助于错误查找和代码替换;缓存;在所有层次均使用缓存,例如数据、页面、页面片段等;监测;从用户角度来看系统性能。这包括从外部网络来对系统进行监测,以及内部
原创 2021-12-31 17:31:20
74阅读
近些年来,伴随着技术进步,越来越多Web应用系统需要存储、转化、处理越来越多数据,而这必将要求工程师们掌握构建伸缩Web系统能力。当我了解到大多数工程师都缺乏这种构建伸缩Web系统能力时,我觉得有必要写一篇与此有关文章。一方面,目前市面上缺乏相关材料;另一方面,那些在小公司工作工程师们也缺乏必要环境去学习伸缩架构设计方法。因此,本文致力于讲解软件架构与基础设施如何协同工
  对伸缩TCP/IP服务器而言,最有用扩展API也就算AcceptEx了。利用这个函数,服务器可以投递一个异步调用,该调用将接受下一个传入客户机连接。 BOOL AcceptEx(   __in          SOCKET&nbsp
转载 2012-03-14 09:16:17
1757阅读
  ConnectEx是一个极其必要API,这个函数允许重叠连续调用。 BOOL PASCAL ConnectEx(   __in          SOCKET s,   __in&nbsp
转载 2012-03-14 10:06:11
1787阅读
     
转载 2012-03-14 10:07:10
543阅读
  因为需要这个函数来对传递接收调用缓冲区内本地及远程地址进行解码,所有这个函数是AcceptEx辅助函数。单个缓冲区不仅容纳连接本地及远程地址,还容纳连接上收到任何数据。指明要接收任何数据将始终放在缓冲区开始部位,地址紧随其后。不过这个地址是打包形式地址,GetAcceptExSockaddrs函数将把他们拆开放到适当相应地址族结构中。 void G
转载 2012-03-14 09:37:06
2085阅读
在这篇文章中,Orbitz前架构师主管Brian Zimmer对伸缩性最差实践进行了论述。涵盖主题包括金锤子、资源滥用、大泥球、依赖管理、超时、英雄模式、非自动化和监控。 文章摘录如下: 操作问题普遍解决方案是有一个“英雄”(关键人物),他能处理、并经常处理大部分操作需求。在小规模环境中,当某个人有熟悉整个系统(包括保持系统 正常运行许多细节之处)天赋和能力时,英雄模式
原创 2008-12-19 09:50:34
582阅读
      
转载 2012-03-14 09:49:40
393阅读
      
转载 2012-03-14 09:50:56
709阅读
伸缩TCP/IP服务器而言,最有用扩展API也就算AcceptEx了。利用这个函数,服务器可以投递一个异步调用,该调用将接受下一个传入客户机连接。 BOOL AcceptEx(   __in          SOCKET sListen
转载 精选 2012-12-01 22:40:10
725阅读
  • 1
  • 2
  • 3
  • 4
  • 5