| ||||||||
|
问大家一个关于Terracotta实现分布式计算的问题,因为本人的基础不算很扎实,所以遇见这个问题不知道从哪里入手。 场景是这样的:我们现在的应用就是使用多线程技术实现多任务分布式计算,通过Terracotta DSO特性,来实现集群。在我们的项目中会涉及到Buyside 和 SellSide。Buysides会发大量的信息(订单)到我们的应用,SellSide会发处理结果到我们的应用 我们的..[...]
近日在工作上遇到这么一个问题,我们公司的应用在现场服务器环境中运行中,发现了一些问题,比如一个完整产品的某个模块处理数据的进度在产品升级后变得较之前缓慢,甚至在刷新数据方面完全失效,进而导致前台报表没有展示出近期的业务数据。在解决开始阶段,就遇到了现场的数据库超过最大连接数的情况,所以无法对失效的数据库对象进行更新等操作。无奈之下,现场运维同事就协助对数据库进行了重启,重启之后,数据库..[...]
一篇谈使用读写分离方式实现 如何打败CAP定理 文章,可以认为是Event Sourcing的一个变种。 CAP定理认为一致性 可用性和分区容错性同时不能获得,通常我们不能丧失分区容错性,那么你就只有在可用性和一致性之间选择,这就催生了 NoSQL 运行。 一致性意味着你实现一个成功的写以后,将来的读到的总是写的最新结果;可用性意味着你总是能对系统进行读写,在一个分区分布式系统,你只能拥有..[...]
蒯因又称奎因,美国哲学家,逻辑学家,逻辑实用主义的代表,与罗素齐名,强调系统的、结构式的哲学分析,主张把一般哲学问题置于一个系统的语言框架内进行研究。 蒯因从逻辑的观点出发,把语言分析作为哲学研究的核心内容,这就为哲学的语言转向划上了一个圆满的句号:自蒯因哲学起,当哲学家开始讨论哲学问题的时候,都需要首先考察所要讨论的命题的意义,而不会像传统哲学家那样依然专注于对世界存在的思考。 蒯因强调以严..[...]
Avanza银行是一家瑞典的银行,让投资者易于作出股权交易和基金交易。它通过自己的在线银行提供很好工具给投资者使用,当前在线系统是典型的基于Java/Jsp和Spring的Web网站。 当前大部分操作是读取,主要可 伸缩性 的挑战是并发读操作,采取的是目前很多系统采取的架构LAMP + Memcached,第一次从数据库中获取,以后直接从 缓存 中获得。 新的系统改造将设计目标为实时性..[...]
RT 1)比如我有个后台线程在执行比较耗时的方法,此时有需要要结束该线程,怎么实现。 2)web页面上执行比较耗时的请求,比如数据库查询,文件上传等,该如何实现实现取消功能。 [...]
Ruby成熟应用曾经以Twitter为骄傲,Twitter曾经一度前台使用Ruby,后台使用Java,可随着系统规模扩展,Twitter决定放弃RoR,早在2008到2009年,他们就开始将后台消息系统从Ruby移植到Scala(被认为一种Java平台),现在是时候将他们的前台也移植到Java了。 他们已经建立了一个可伸缩平台叫Blender,是使用Java NIO,基于Netty,可以非常有效..[...]
项目概述:xx银行是通过ETL从核心业务系统中提取业务数据、并转换成SAP R3 系统中对应的业务数据。SAP R3 系统业务数据输出到SAP BW 数据仓库中进行数据建模,最后通过SAP BO 报表形式呈现。 SAP R3本身存在的成本分摊功能由于涉及数据量太大,导致分摊性能非常低。现在客户提出需要使用Java来读取 SAP 和ETL中的数据,并进行成本分摊、并输出到BW数据仓库中,最..[...]
文章比较全面分析了系统可 伸缩性 scalable设计。 首先指出scalable和普通意义上性能提升有些不同,以至于更多人关注单台机器性能,而无视更高意义上性能扩充。 Scalable可 伸缩性 不等同于performance性能。可 伸缩性 是降低由于对性能,成本,可维护性等诸多方面要求的增长 带来的不利影响。 性能是指单用户访问时系统的快慢,当负载超出服务器可承受能力之外后..[...]
Ehcache实际是一个Java的开源 缓存 产品,用来提升性能,降低负载,方便可 伸缩性 。后面有秦始皇Terracotta兵马俑式的服务器矩阵支持, Ehcache成为一种线性可扩展的分布式 缓存 。它是一个无关系结构schema-less, key-value, 基于Java的分布式 缓存 ,它提供可靠的一致性控制,可根据主键key 值value或属性索引搜索。 Flex..[...]
我对此有些疑问,大家讨论一下 在banq看来,基于 DDD 设计的软件,其扩展性依赖于ehcache等分布式 缓存 的扩展性。 而ehcache节点间的同步是比较低效的,只要是通过网络改变状态的同步方法,扩展性肯定不如memcached,因为memcached节点间是不用通讯的。比如100个节点,memcached的效率比echcache高得多。 实例也是如此。facebook有世界上最..[...]
Scaling OpenJPA applications with Slice Slice是一个使用OpenJPA分布式持久模块. 可以帮助应用从一个数据库扩展到一个分布式 水平分区 异构数据库环境。无需对应用代码和数据表结构进行任何变动。 JPA是JavaEE基于关系数据库的一个持久化标准,在当今 NoSQL 去关系数据库运动影响下,NoSQL批判关系数据库的问题时,Slice能够使..[...]
Storing images in the database. « "on software and stuff" 一般人图片都是保存在文件系统,而 JiveJdon 就是将图片保存到数据库中,本文也坚持这样的观点。[...]
Clustering Cloud-friendly Tomcat Sessions with RabbitMQ: Part I | TomcatExpert 云架构的流行,使得水平伸缩成为王者( horizontal scalability is king),而传统的Tomcat集群是通过广播集群,也就是让一台机器上的Session广播到其他机器上,这样的坏处就是大量Session中数据在服..[...]
我们公司的一个系统大量使用了Session,如:操作的业务中查询出来的数据集合都会放入session中,好在在点一个新菜单的时候清理一下session,请问这样系统性能会受什么程度的影响?[...]
Scalability, Availability & Stability Patterns 在这个PPT中,你会发现大量词语在本站讨论过: 分布式 缓存 ;数据网格计算;NoSQL;RDBMS;Http缓存如CDN 反向代理;CAP理论,并发模式(消息传递模式 软 事务 内存 数据流并发 状态共享并发);分区;复制。EDA事件驱动架构;负载平衡;并行计算(MapReduce模式 F..[...]
Twitter开发者大会有关PPT: http://www.slideshare.net/tag/chirp 摘要两篇PPT如下: 一. Scaling Twitter with Cassandra 谈如何使用 NoSQL 数据库Cassandra提高著名Twitter网站性能。 传统方式有三个: 1. MySQL的水平和垂直分区 2. 使用分布式 缓存 Memcached 3...[...]
最近因为项目原因,研究了Cassandra,Hbase等几个 NoSQL 数据库,最终决定采用HBase。在这里,我就向大家分享一下自己对HBase的理解。 在说HBase之前,我想再唠叨几句。做互联网应用的哥们儿应该都清楚,互联网应用这东西,你没办法预测你的系统什么时候会被多少人访问,你面临的用户到底有多少,说不定今天你的用户还少,明天系统用户就变多了,结果您的系统应付不过..[...]
1 CAP理论简介 10年前,Eric Brewer教授指出了著名的CAP理论,后来Seth Gilbert 和 Nancy lynch两人证明了CAP理论的正确性。CAP(Consistency,Availability,partition tolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个(至于CAP理论的证明,可以参..[...]
说到 伸缩性 ,我们一般都会想到存储的伸缩以及本身应用程序的伸缩,下面这篇文章讲解了对传统的关系数据的伸缩以及如何通过内存数据网格来进行应用程序的伸缩。 首先对于传统的RDBMS的伸缩,大家比较熟悉主要有以下两种方式: Database replication:这也是经典的Master/salve模式的实现,这种方式最大的优点就是通过增加savle来进行r..[...]
这篇文章讲了 伸缩性 和可用性方面的反模式,也按照自己的理解翻译了一下,欢迎各位探讨。 1 单点失败(Single Point of Failure) 大部分的人都坚持在单一的设备上部署我们的应用,因为这样部署的费用会比较低,但是我们要清楚任何的硬件设备都会有失败的风险的,这种单点失败会严重的影响用户体验甚至是拖垮你的应用,因此除非你的应用能容忍失败带来的损失,否则得话应该尽量..[...]
今天看了一篇关于 伸缩性 的文章,感觉不错,大体翻译了一下,欢迎各位道友探讨。 异步 同步调用使得组件和组件之间紧密耦合起来,这样就使得要想伸缩应用就需要伸缩所有的组件,这不仅带来使得伸缩的成本增加,而且这种高度耦合性使得伸缩变得更加困难。因此我们需要从应用角度划分出,哪些业务操作是紧密关联的,哪些是可以 异步 执行的,划分出那些可以 异步 执行的操作,然后将其进行 异..[...]
在HPTS 2009上,ebay 架构师Randy Shoup又列出了五个lessions.它们分别是: 1 Expect (R)evolution 2 Dependencies Matter 3 Be Authoritative 4 Never Enough Data 5 Custom Infrastructure 我结合ebay以前的5个lessions,总结一下可 伸缩性 和高性能的系..[...]
分布式领域CAP理论, Consistency(一致性), 数据一致更新,所有数据变动都是同步的 Availability(可用性), 好的响应性能 Partition tolerance(分区容错性) 可靠性 定理:任何分布式系统只可同时满足二点,没法三者兼顾。 忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。 关系数据库的ACID模型拥有 高一致性 + 可..[...]
来自 NoSQL Ecosystem 选择 NoSQL 的几种种理由: 1.Scalability 有两种理由寻求一种分布式数据库: 1)支持多个数据中心 2)可以透明在线为你的应用增加新服务器。 下面是 NoSQL 数据库支持这两点列表: 非分布式的 NoSQL 数据库包括有 CouchDB, MongoDB, Neo4j, Redis, and Tokyo Cabine..[...]
越来越多的Web应用程序需要数据存储,传统的关系数据库已经不能完全满足要求。面向对象和面向文档的数据库提供了一个选择,最近这个发展领域的发生很多活动,10月22日柏林举办了一次 NoSQL 大会: Happenings: NoSQL Conference, Berlin 几十年来,关系数据库提供了对许多应用程序的所有数据类型的持久存储。基本的数据模型(图式与明确的约束)(预先..[...]
通常软件需求有功能性需求和非功能性需求,在以往数据库驱动方式下,这两个目标是分别需要考虑的,是一个需要分别衡量的指标,但是因为使用 DDD ,就可以将这两个需求融于一身实现,这不但对象 OO 的功能,更是 DDD 定义的聚合边界的功能, Improving performance and scalability with DDD 一文对此进行了详细阐述。 这篇文章大部分观点可..[...]
xLightweb是基于http的客户端和服务器端应用,提供同步 异步 非堵塞的HTTP功能,包括Http Server和Http Client。比MINA等多一个客户端。 它是基于非堵塞NIO xSocket, xSocket要比Grizzly透明多,因此基于xLightweb无疑是独立MINA Grizzly、JBoss的Netty以及SUN的Grizzly以外,另外一个非堵塞Http服..[...]
最近在看tomcat对于comet的实现,由一点很不解,就是comet要求将tomcat的连接器切换成nio形式,而按照我的理解,如果是使用长轮询方式实现serverpush,并不需要nio就能实现功能,comet可能出于这样一种顾虑,一般serverpush往往一个client要等待很长一段时间才得到反馈,这部分时间占用着系统连接将很大程度影响系统并发能力,所以用nio让一个连接服务多个客户端,..[...]
My 10 favorite links on Software architecture, scalability and design http://www.keksrolle.de/index.php?/archives/140-My-10-favorite-links-on-Software-architecture,-scalability-and-design.html 1. ..[...]
下一个Big Thing应该是 异步 。 JBoss发布了其NIO非堵塞IO框架Netty,总算追上GlassFish的Grizzly,赶超apache mina,经过测试,Netty性能要超过Mina,Netty是MINA的一个创始人跳到JBoss后开发的项目。 MINA使用系列I/O线程处理读和写,这是很多典型NIO框架的手法。但是Netty要比MINA聪明得多,当发送Queue中是空..[...]
今天看了一篇ibm developerworks上的文章,文章从J2EE平台原理角度阐述了为什么当前的J2EE标准不能与web2.0良好的组合,并且也提供出了具体的解决方案(具体也就是通过切分,通过 异步 )。 在文章中,作者指出:J2EE 是个同步的平台(当然除了JMS例外),这样就不利于系统进行水平的伸缩,并且J2EE平台主要关注可用性需求,而不是性能方面的需求。为了能让J2EE平台下的..[...]
在日常的软件开发当中,我们一般都是采用了分层的方式来架构系统,但是为什么我们需要分层进行架构呢?在此之前,我觉得需要搞明白两个概念,什么是软件的 伸缩性 ,什么是性能。 首先,什么是软件的 伸缩性 (Scalability)?我们都知道设计良好的系统可以应对不断增加的系统访问量,但是我们如何能在系统用户增多的时候,来提高系统的吞吐量呢?这就是 伸缩性 之魅力所在。 ..[...]
REST(Representational State Transfer) 曾经被误解为只是CRUD(增删改查),从这个层面上,好像 REST 只是和RPC一个层面的东西,没有什么了不起,其实这些都是对 REST 误读。 理解 REST 需要从系统集成整合以及架构的 伸缩性 方面入手,这方面有一篇很重要的 REST 博文: I finally get REST . Wo..[...]
云计算定义:从两个方面去定义,一个是底层机制,一个是用户模型 Infrastructure底层机制:Cloud Cluster Grid; 用户角度分为:Utility Computing SaaS/SOA Utility Computing代表是:Amazon EC2, Google AppEngine SaaS代表是:一些online office 和在线CRM等等 主要谈谈Uti..[...]
大家一起讨论总结下海量数据性能优化措施有哪些,要求: 1. 最好是通用的优化措施,不是针对某个特定数据库的优化措施。如果针对某个特定数据库,则需要单独说明。 2. 这里说的性能优化:主要是查询性能,也包括增加,删除,更新数据时的性能。 4. 这里说的海量数据包括以下两种情况: (1)上亿的数据量。 (2)百万到千万的数据量。 个人之所以这么分,是觉得这两种数量级,优化处理方法差别比较大的。 5.大..[...]
在评价一个系统的时候,性能指标是很重要的,那么在当前J2EE的系统开发当中,如何来提高系统的性能呢?我觉得应该从对象管理入手,从对象的生命周期开始。虽然大家可能会说,Java有垃圾收集器,我们的对象的生命周期不需要我们自己管理,但是如果要是真的过分依赖java语言本身的特性,那么我相信,系统的性能肯定好不到哪去。 下面我主要说一下对于 缓存 的理解。在说 缓存 之前,..[...]
我有一个小项目(订单管理),是用传统的jsp编写的(也就是jsp角本块与sql语句写在一起的),最近才进入Jdon学习,因为是传统的jsp所以在项目需求增加或者变更时更是痛苦(还好目前是小项目,如果用大项目更麻烦了),我有以下问题想请教,希望各位能给小弟指点一下. 因为以前做的时候没有考虑太多,主要是快速完成项目,大家都知道小项目需要的是快速完成,没有考虑那么详细,以致于现在很难维护.大体..[...]
我是零售企的程序员,主做c/s架构的开发。我们目前的crm系统是用delphi开发的,客户端直接访问数据库,但随着数据量的几何增长,数据查询变得十分缓慢,特别是海量数据查询。目前的解决方案是不断提升服务器硬件,但这投入太大了,所以想改一下软件架构。特别是看了论坛的《数据库已死》这篇文章后,感触颇多。因此特请教各位: 1、b/s架构相对于c/s架构,在相同的数据库硬件环境下访问数据库性能会..[...]
本文结合hibernate以及JPA标准,对J2EE当前持久层设计所遇到的几个问题进行总结: 第一:事务并发访问控制策略 当前J2EE项目中,面临的一个共同问题就是如果控制 事务 的并发访问,虽然有些持久层框架已经为我们做了很多工作,但是理解原理,对于我们开发来说还是很有用处的。 事务 并发访问主要可以分为两类,分别是同一个系统 事务 和跨 事务 访问的并发访..[...]
大家好,这个帖子我打算根据项目的进展不断添加项目过程中碰到的问题,而在这里,就先抛开商业的一些需求,纯从技术上讨论架构及实现,以及可能的风险。下面是对项目的描述。 首先,这是一个管理软件,用于软件公司的。就是说,是为某软件公司开发的软件。 第二点:这是一个需要插件体系的B/S软件,需要通过一些简单配置去实现新功能(包括工作流,但不仅是工作流) 第三点:为了追求易用性,因此需要在B/S中实现单机程..[...]
a worldwide shortage of people experienced in parallel computing 全世界程序员最大短处就是缺乏并行计算经验 当CPU进入双核多核,软件架构进入分布式计算 云计算 时代后,他们的共同点并行计算已经成为一个新的热点。 前段时间Ruby On Rails JRuby Grails等新式语言有些热门,但是并行计算却是它们的杀手,..[...]
SOA是技术架构方面,Evans DDD 则是哲学方法论方面,所属方向不一样,或者说两者非常的无关。甚至是两个不同方向。使用 DDD 可以将系统从无到有到大建立起来,而大到一定程度,就需要SOA,整合异构。如果说 DDD 和SOA有什么联系的话,那么组件Componen可能是他们中间的纽带。下面对这几个概念分析如下,不当之处请讨论。 SOA概念 SOA是一个很高的架构,使用E..[...]
Spring 和EJB争吵终于即将结束:Spring将支持EJB3.1标准,Spring will also be a full featured EJB 3.1 implementation for use in the WebLogic application server.这场融合将在javaEE 6实现,这个融合和当初Hibernate与JPA融合一样水到渠成。 Spring创始人Rod..[...]
随着用户的爆发量增长,在某个凌晨醒来时,你发现:数据库已死。 数据库成已经为软件系统的主要性能瓶颈了 众多语言平台竞争中,为什么Java能够击败过去拳王数据库,夺得新的拳王冠军,以及他的特点所在。 http://www.jdon.com/artichect/dbdead.htm [该贴被admin于2008-09-15 21:47修改过] [该贴被admin于2008-09-15 21:..[...]
JDON是个不错的论坛,在里面可以学到很多东西,尤其是 设计模式 ,面向对象的很多知识,不过有一点非常太赞同,就是BAND,喜欢弱化数据库,面向对象和数据库都是现在软件开发中的工具,谁也不能替代谁,BAND可能是理论派的,没有在大型公司做过太多的实际项目,殊不知,现在大型系统尤其是象ERP,电信方面的系统主要还是数据处理,数据量非常庞大,动辄几千万,查询关联的表动辄几十个,如果还纯粹的面向对象..[...]
强烈推荐:著名社交网站LinkedIn的Java架构技术 在JavaOne 2008的会议上,著名社交网站LinkedIn的开发者做了2个关于LinkedIn 网站的架构技术的演讲,目前这两个演讲的PPT已经可以下载了。下载地址如下: LinkedIn - A Professional Social Network Built with Java™ Technologies and Agil..[...]
项目大概情况如下:我们客户给我们提供了全美所有公司的数据,一共二千万条左右.按照前台的输入,查询相应的结果,结果一般很多,至少几百条记录,还有按各种可能的情况排序.系统的开发是ASP+储存过程+SQL Server 2005,一般数据库的优化方法都用在上面了,可是速度奇慢,后来,我们采用按照州建表,把数据拆开.系统的相应速度还是在20-30s内.我们不知道如何再进一步提高系统速度.现在客户提..[...]
很多人都和我说不要在J2EE中使用session。说消耗内存太大,服务器会崩溃。请问有谁知道一个session到底会占用多少内存?一般的服务器能承受多少session。[...]
|