共3页: 上一页 1 2 3 下一页 
摘要: 经过4天的开发,ios的网络书店基本完成了:登陆注册图书列表,下拉放开刷新,下拉到底查看更多,图片异步加载我的信息,查看订单修改密码查看图书详情加入购物车提交订单sqllite存放浏览日志,定时提交plist文件存放购物车架构中最重要的元素:模块化,纵向分割层次化,横向分割抽象和实现分离解耦,同构组件如何通讯,异构组件如何通讯职责分离重构中:消除重复代码,消除魔数BookStore应用虽然简单,但包括的内容不少分层架构层之间的通讯控制各种数据访问的演示分层架构如下:Resources用于各种资源,比如图片、icon和多语言的文本Core就是业务逻辑层用于管理数据访问层,以及作为数据的容器Con阅读全文
posted @ 2012-09-11 13:28 lovecindywang 阅读(4347) 评论(12) 编辑
摘要: 带链接的完整版本:http://files.cnblogs.com/lovecindywang/.net.pdfhttp://files.cnblogs.com/lovecindywang/j2ee.pdf开源和非开源(当然,现在微软很多产品也开源了)平台的很大不同在于:开源的好东西确实是多,但质量也是参差参差不齐的,各个不同产品在不同版本的兼容性也是问题。非开源社区贡献相对较小,微软产品线的产品兼容性是不错的,但是一家独大也容易造成社区积极性不足。补充说明:J2EE的图中看不到Spring,.NET的图中看不到IIS,有一些共识的东西就不提了。这里不比较谁好谁坏,只是列出一些关键词,在做架构阅读全文
posted @ 2012-08-06 10:05 lovecindywang 阅读(4153) 评论(15) 编辑
摘要: 最近转了部门负责移动开发,自从接触了iOS之后,也成了一个果粉,喜欢苹果的iPad、iPhone也喜欢MacOS,iOS虽然封闭但非常吸引我,我感觉苹果的每一个细节都很完美,ObjectiveC语言也很简单实用,准备系统学习一下然后在这里写点自己的心得分享给大家。ObjC基本语法类和对象属性协议扩展字符串集合代码快内存管理运行时错误处理iOSTableViewController文件系统核心数据资...阅读全文
posted @ 2012-06-02 14:47 lovecindywang 阅读(842) 评论(4) 编辑
摘要: ASP.NET MVC和WCF真是微软两个很棒的框架,设计的很好,可扩展性非常强,到处都是横切、管道。以前写过一篇MVC流程的文章,http://www.cnblogs.com/lovecindywang/archive/2010/12/02/1894740.html主要是使用了MVC的各种扩展。如下图列出了WCF的一些扩展点供参考,其实知道某个扩展点是干什么之后,搜索一下MSDN这个接口就一清二楚了:大部分情况下针对服务模型层进行扩展即可,我们可以看到就一个服务调用已经被完全打散了,细化到:调用的参数、调用什么方法、调用什么类型、类型怎么创建、消息的拦截、错误拦截、上下文初始化、服务承载。。阅读全文
posted @ 2012-03-01 20:05 lovecindywang 阅读(5255) 评论(3) 编辑
摘要: 原文地址:http://www.25hoursaday.com/CsharpVsJava.html 6、集合 许多有名的编程语言都会包含一个集合框架,框架一般由各种用于保存数据的数据结构和配套的操作对象的算法构成。集合框架的优势是让开发者可以不用写数据结构和排序算法,把精力放在真正的业务逻辑上。还有就是可以让不同的项目保持一致性,新的开发者也少了很多学习曲线。 C#集合框架大多位...阅读全文
posted @ 2012-02-10 17:52 lovecindywang 阅读(3005) 评论(3) 编辑
摘要: 原文地址:http://www.25hoursaday.com/CsharpVsJava.html简介C#语言是一门面向对象的语言,开发者可以使用C#和微软.NET平台快速构建各种应用程序。C#和.NET平台的目标是把开发者从一些诸如内存管理、类型安全问题、底层类库、数组边界检查等等的底层问题中解放出来并节约大量的时间,这样开发者就可以真正把时间和精力放在他们的应用程序和业务逻辑上。对于Java开发者来说,把前面那句话的开头改为“Java语言和平台”,这句话也同样可以总结Java语言和平台。后面的内容介绍了C#和Java编程语言的异同,这些都是基于我使用两个语言的经历。所有代码都经过微软.NE阅读全文
posted @ 2012-02-09 17:57 lovecindywang 阅读(5763) 评论(5) 编辑
摘要: 虽然有很多开源工具通过插件或其它方式可以监测这些开源组件提供的内在性能(所谓内在性能就是这些开源组件提供的类STAT命令获取到的数据),但是不管是部署还是扩展都很麻烦,其实花1-2天时间完全可以实现一个这样的工具,并且扩展起来也很方便。比如mongodb的:又比如redis的:这个工具实现的功能如下:1)只需要简单配置(在DEMO代码里我硬编码了,您完全可以改为通过配置)就可以实现监控redis、mongodb、kt和memcached,之所以只有这些因为我们用到的只有这些,其实扩展一下也很方便,特别是有.NET客户端的组件。2)监控粒度可以选择,不同的监控粒度在一页上显示的时间段也不一样,大阅读全文
posted @ 2012-01-22 20:38 lovecindywang 阅读(6935) 评论(3) 编辑
摘要: 一个比较成规模的系统,很多东西依赖官方组件不能满足定制、灵活、性能、监控的要求,需要开发哪些东西?略微整理了一下,这也是我们的目标。宗旨:1)自己的组件需要处处体现集中配置、集中日志、内置性能监视器、集中监控、自动部署等理念!2)考虑分期,先实现必要的东西,尽量轻量化,微软搞的东西很容易太重!3)尽量考虑不依赖硬件的横向扩展!4)分布式分布式说白了很多时候是对用户来说是集中的单点的,在后端是分布式的用于承载大量数据和大量请求!5)分布式要解决的问题?同步、路由、负载均衡、可用性检测、数据迁移、性能、治理。。。阅读全文
posted @ 2012-01-11 11:13 lovecindywang 阅读(3720) 评论(15) 编辑
摘要: Q:Mongodb数据服务有什么用? A:首先,Mongodb适合保存大量的非业务数据,因此,Adhesive框架提倡把不是非常重要的非业务数据(比如应用程序信息中心的日志、异常、状态数据,又比如WCF扩展模块的WCF调用数据,或者其它的各种业务日志、监控日志)保存在Mongodb中。虽然Mongodb的非结构化模式适合保存各种类型的数据,但是我们不得不针对各种类型的数据进行重复开发来解决一些问...阅读全文
posted @ 2011-12-16 17:42 lovecindywang 阅读(2122) 评论(2) 编辑
摘要: 框架除了报警之外还提供了简单的报警处理流程。 先来看一下报警相关的配置: 比如这里有一个报警,30秒检查一次30秒内相关数据如果超过10条则报警。 在报警后,系统会自动创建一个事件,相关人员登录到后台可以看到这个事件并进行处理,如果事件在处理了,那么报警会暂停,一直到处理完成之后重新开启。 当然,如果管理员一直没有结束某个事件,系统会自动关闭过期事件,也就是这里的5分钟(Process...阅读全文
posted @ 2011-11-28 10:32 lovecindywang 阅读(730) 评论(0) 编辑
摘要: 有一个很常见的功能,我们需要在一个子窗口中定时调用服务,然后更新控件的内容,只要窗口开着就一直会调用服务。 那么现在就来完成这个功能,首先定义一个服务: public class Service1 : IService1 { public string DoWork(string name) { File.AppendAllTex...阅读全文
posted @ 2011-11-09 12:43 lovecindywang 阅读(2144) 评论(0) 编辑
摘要: 应用程序信息中心模块提供了日志、异常、性能、状态四大服务。来看一下最新的日志服务定义: void Debug(string message); void Debug(string moduleName, string message); void Debug(string categoryName, string subcategoryName, string message); void Debug(string moduleName, string categoryName, string subcategoryName, strin...阅读全文
posted @ 2011-11-08 11:22 lovecindywang 阅读(1555) 评论(5) 编辑
摘要: 在测试Adhesive的时候发现,使用过一段时间后台之后,就会不能连接到数据库,查看日志发现报的错误大致是 connection refused because too many open connections: 819 通过mongostat查看连接数的确很夸张有近819个连接,尝试在启动的时候指定最大连接数到10000,重新启动Mongodb这个问题似乎解决了 但是在刷新几下页面之后连...阅读全文
posted @ 2011-11-04 20:40 lovecindywang 阅读(2163) 评论(2) 编辑
摘要: 在本文中我们会着重介绍一下Mongodb数据服务查询部分的实现,也就是通用后台用到的查询服务。首先,为了性能考虑,我们的每一个Mongodb集群都可以支持主从分离,也就是查询可以使用Slave的Mongodb:其中的同步延迟配置,用于配置在查询的时候缓存多久之前的数据,因为同步的延迟问题,缓存太新的数据很可能导致数据不完整。并且,我们也可以灵活配置每一个类型保存到的集群,实现数据的手动分区:阅读过之前文章的读者知道,在通用后台的高级数据筛选中,我们会列出一些搜索选项,比如:并且,在显示数据的时候,我们也会需要把元数据和实际存储的数据组合起来返回给客户端。为了效率的考虑,我们把所有的这些索引数据阅读全文
posted @ 2011-11-01 15:50 lovecindywang 阅读(1814) 评论(0) 编辑
摘要: Adhesive框架中的WCF分布式服务模块基于原来写的WCF扩展修改而来,主要的修改如下: 1)原先使用数据库的元数据配置,现在统一改为配置服务,主要是为了统一,不用再去开发一个WCF的配置后台 2)原先直接存储到Mongodb中的各种日志,现在统一使用Monodb数据服务,也是进行了一个统一 3)和信息中心模块中的网站请求状态(统计每一个请求的情况)一样,这里也提供了WCF客户端和服务端...阅读全文
posted @ 2011-10-30 12:48 lovecindywang 阅读(1451) 评论(1) 编辑
摘要: Adhesive框架中是分布式组件客户端首先实现的是基于Json序列化+二进制协议的Memcached客户端。在本文中会介绍其中的实现细节。 我们先来看一下项目结构: 从这个结构大致可以看出: 1)Memcached只是其中的一个具体实现,这个组件期望提供一个ClientSocket-ClientNode-ClientCluster的基础实现,以后可以有各种客户端基于这种结构来实现 2...阅读全文
posted @ 2011-10-29 12:38 lovecindywang 阅读(765) 评论(2) 编辑
摘要: 如果我们新建了一个Adhesive.Test.WebApp的网站应用程序,希望对其中的异常进行监控报警,那么我们可以直接通过配置服务后台配置报警模块实现。很明显,这是一个对数据量的监控,在异常记录达到一定数据量之后进行报警:点击增加按钮,取名为“测试应用程序的异常监控”,这里看到的是添加后的结果:然后对数据进行修改:这里我们监控的数据库为Aic__Exception(应用程序信息中心模块的已处理异常),可以查看元数据知道:然后由于我们按照应用程序名分表,因此这里表名需要修改为Adhesive.Test.WebApp:然后我们这里配置了,1分钟内数据量超过100则报警,10秒检查一次。这里时间跨阅读全文
posted @ 2011-10-28 16:49 lovecindywang 阅读(693) 评论(1) 编辑
摘要: 在此文中,我们会实践一下,如何使用Mongodb数据服务存储新的自定义数据。之前我们说过了,使用Mongodb数据服务只有4步这么简单: 1)定义实体 2)定义元数据 3)配置Mongodb数据服务 4)调用API插入数据 在这里,我们希望使用Mongodb存放书籍借阅的信息: public enum Status { 借出 = 1, 归还 = ...阅读全文
posted @ 2011-10-28 15:56 lovecindywang 阅读(1657) 评论(2) 编辑
摘要: Adhesive框架的Mongodb数据服务模块提供了大量数据的存储功能。在有的时候,我们希望对数据量或是数据的某个值进行一个监控,并且在达到某个阀值之后进行报警。此时,可以使用报警服务模块进行邮件报警和短信报警。报警服务的实现其实很简单,定期检测数据量或数据的值,然后根据配置决定是否要报警,如果要的话,根据配置获取报警的接收者,然后进行相应的报警。现在先来看一下报警服务的配置,同样,打开配置后台可以在全局配置中找到报警服务的配置节点:点击进去:在这里依次介绍一下每一个配置:1、状态数据的报警配置:这里配置了基于状态数据的报警配置。所谓状态信息,就是始终只有一条最新的数据代表了一个状态,报警也阅读全文
posted @ 2011-10-20 14:09 lovecindywang 阅读(1365) 评论(0) 编辑
摘要: Memcached是一个很常见的分布式组件,现在有很多.NET下开源的Memcached组件的客户端实现,比如EnyimMemcachedClient。在Adhesive框架中实现了一个分布式组件客户端,同时也实现了第一个具体的客户端,也就是Memcached。与其它实现不同的是,这里我们提供了Memcached二进制协议的完整实现,并且也实现了一些特色功能,进一步封装了Memcached的一些基础API。要使用Adhesive.DistributedComponentClient,首先免不了进行配置。和框架的其它模块一样,这里我们也使用了配置服务:进一步查看:在这里我们定义了一个TestMe阅读全文
posted @ 2011-10-18 17:51 lovecindywang 阅读(1662) 评论(0) 编辑
摘要: 之前我们提到过,Mongodb数据服务的客户端和服务端都使用了内存队列服务模块来提交数据,使用内存队列服务有下列好处:1、操作异步化:比如客户端对数据进行转换再调用Wcf把数据提交到服务端的时间需要10毫秒,那么,使用了队列服务之后,客户端向队列插入数据的方法只需要1毫秒调用即可完成,之后的9毫秒只会发生在后台。2、降低瞬时的流量:比如在某个时刻有特别多的数据需要提交,那么这种不均匀的提交对服务端或者对数据库来说是一个瞬时的压力,使用了队列服务之后,队列服务会按照指定的间隔提交,并不会产生瞬时的压力,未提交的数据会保存在内存中。当然,在这里我们实现的是内存队列服务,因为不适合保存不允许丢失的数阅读全文
posted @ 2011-10-14 10:14 lovecindywang 阅读(1756) 评论(4) 编辑
摘要: Mongodb数据服务可以直接接受任何类型数据,并且它设计为可以承受大量数据的写入。为了能保存任何类型的数据,并且在后台可以查看任何类型的数据,因此我们必须在收到数据的时候对数据的元数据进行提取,随同主体数据一并保存在数据库中。对数据本身也需要重新组织结构,相当于进行一次序列化,然后保存到数据库中。虽然Mongodb是支持Json格式的,但是由于我们在保存数据的时候还有很多逻辑,因此我们必须手动进行这个工作。其实对于提交数据来说,应该是一个非常快的动作,应该以异步方式进行,在一个尽量短的时间内让方法的调用可以返回,之后可以在后台慢慢进行数据的转换和数据发送到远端。因此,开发了一个内存队列服务模阅读全文
posted @ 2011-10-13 15:25 lovecindywang 阅读(1843) 评论(1) 编辑
摘要: 在前一篇中,我们介绍的主要是站在开发人员的角度如何使用Mongodb数据服务来保存数据,这一篇会介绍在保存数据之后,如何去查看数据,也就是怎么样去使用Mongodb数据服务的通用后台。Mongodb数据服务的后台是采用Silverlight4制作的。进入后台,第一件事情是登录系统:这个配置是通过配置服务进行的,来看一下Mongodb数据服务的配置部分中的管理员配置(至于其它配置会在实现篇中介绍,因为其中涉及到了Mongodb数据服务的实现细节):在这里我们定义了三个用户,进入aa这个用户看一下:这里除了定义登录用户名、密码之外还定义了管理的数据库:在这里,通过我们限制aa这个用户只能对以Aic阅读全文
posted @ 2011-10-12 15:07 lovecindywang 阅读(1394) 评论(1) 编辑
摘要: 之前介绍的应用程序信息中心模块中所有日志、异常、性能和状态数据都依赖Mongodb数据服务,Mongodb数据服务的接口也简单的可以: public interface IMongodbInsertService : IDisposable { void Insert(object item); }总之一点,不管什么数据,提交进来即可!在提交之前所要做的只是设计...阅读全文
posted @ 2011-10-12 09:30 lovecindywang 阅读(1687) 评论(3) 编辑
摘要: 应用程序信息中心模块项目的源代码结构如下:在这里可以看到:1、接口项目主要都是服务的接口定义、基于接口的扩展方法以及接口中需要用到的一些实体的定义。2、实现项目主要由几部分构成:1)模块的配置2)异常服务3)自动附加信息的各种提供程序4)日志服务5)性能服务6)状态服务有关配置部分,没什么可以介绍的,全部依赖于配置服务,直接传递一个自定义类对象作为默认的配置,配置服务会初始化所有的配置节点和默认值: var config = configService.GetConfigItemValue(false, "AppInfoCenterConfiguration", defa.阅读全文
posted @ 2011-10-11 15:02 lovecindywang 阅读(1595) 评论(1) 编辑
摘要: 应用程序信息中心 Application Infomcation Center 简称AIC其实是一套已经实现的程序,集应用程序数据收集、数据存储以及后台查询、报警为一体。主要的作用是实现网站特殊信息(比如未处理异常)的监控和报警。在Adhesive中进行了重写和升华,把功能分为日志、异常、性能和状态几个部分: public class AppInfoCenterService { ...阅读全文
posted @ 2011-10-10 17:46 lovecindywang 阅读(1655) 评论(0) 编辑
摘要: 公共模块是所有框架内部组件依赖的项目,其中包括一些基础实现和小工具。首先是一个Bootstrapper的理念:1、在需要的时候,我们可以把实现和接口进行分离,实现使用依赖注入(不一定要项目引用,只需要文件夹下有实现的DLL)。那么,我们就需要在网站应用程序或是其它应用程序启动的时候,把这些实现注入进来。这里需要提一点的是,正因为我们把实现和接口进行分离,使得我们可以让两个组件进行相互的引用,比如配置服务的实现可以调用信息中心的接口来记录日志,而信息中心的实现可以调用配置服务的接口来存储配置。2、然后,我们需要针对每一个组件进行一些初始化工作,比如进行数据初始化,这步工作需要在1之后。当然,还可阅读全文
posted @ 2011-10-10 15:38 lovecindywang 阅读(1696) 评论(2) 编辑
摘要: Adhesive框架是为了满足公司内部项目需要开发的一套基础框架。Adhesive这个单词是胶水的意思,这个名字有几层含义:1、框架其本身的组件像胶水一样相互配合,旨在为一个中型的互联网网站提供一套基于.NET 4.0的开发基础平台,实现灵活性、性能、伸缩性等。2、框架对微软提供的既有技术进行粘合和扩展使它们可以更好发挥作用,比如ADO.NET EF4、ASP.NET MVC3、.NET WCF等。框架基于.NET 4.0开发,可以用于ASP.NET (MVC)网站、控制台应用程序或Windows服务应用程序等,提供的主要功能包括:1、基础组件:Bootstrapper模式、本地配置服务、本地阅读全文
posted @ 2011-10-10 14:10 lovecindywang 阅读(3792) 评论(23) 编辑
摘要: (一)总体介绍 (二)公共模块实现 (三)配置服务模块使用 (四)配置服务模块实现 (五)信息中心模块使用 (六)信息中心模块实现 (七)Mongodb数据服务模块使用 (八)Mongo...阅读全文
posted @ 2011-10-09 16:48 lovecindywang 阅读(3093) 评论(3) 编辑
摘要: 在公司内部有很多基础框架或者基础组件,甚至对于使用SOA架构的公司来说,会有大量的业务组件的契约程序集,对于这些框架或组件的引用管理有的人使用源代码管理工具,但是NuGet相比源代码管理工具更方便:1) 安装和卸载:不需要手动添加和移除引用,不需要手动改写配置文件甚至是一些初始化服务的代码。版本升级也只需要执行一条命令。2) 打包:多文件打包,支持依赖管理等,使用的人没有繁琐的配置。对于官方的包,可以在http://www.nuget.org/ 找到,自己也可以提交包上去。但是如果不希望把包公开的话,可以在内部架设一个NuGet服务器。下面介绍一下基本步骤以及如何进行打包。1) 下载 NuGe阅读全文
posted @ 2011-05-12 13:59 lovecindywang 阅读(10353) 评论(10) 编辑
摘要: 源代码见 http://wcfextension.codeplex.com/注意:1) 本来没打算这么早开源,这只是一个比较原始的实现,请勿直接在商业环境使用2) 请注意本框架的授权条款Apache License 2.03) 本框架依赖的外部程序集或框架版权归原作者所有4) 框架之后可能会增加很多功能,请关注项目主页即使获得最新信息解压缩代码打开sln文件后可以看到这样的结构1) WcfExtension就是核心框架:Client文件夹放的是客户端用到的一些代码,Server自然是服务端用到的一些代码Log是日志相关的一些代码(四种日志),Config是配置相关的代码Setting是框架本身阅读全文
posted @ 2011-05-10 15:33 lovecindywang 阅读(6855) 评论(44) 编辑
摘要: 以前写过一个MVC执行流程的分析的文章:http://www.cnblogs.com/lovecindywang/archive/2010/12/02/1894740.html使用一些自定义的代码埋点方式来解析MVC框架颞部的执行过程。今天看到一个老外写了一篇不错的Wcf文章,我整理了一下它的代码,为每一个方法加上了MSDN中标注的中文注释,大家可以通过这个例子来学习Wcf的扩展以及了解Wcf框架内部的执行流程:完整的代码点击这里下载。下图可以看到代码执行结果的控制台截图(点击查看大图):注意:1) 蓝色的代表服务端的执行逻辑,黄色的代表客户端的执行逻辑2) 执行了三次方法,第一次普通的请求返阅读全文
posted @ 2011-05-09 14:50 lovecindywang 阅读(2906) 评论(8) 编辑
摘要: 对于负载均衡环境,多服务器内存中缓存数据的话,需要解决的一个很重要的问题就是一旦数据库中数据有更新,怎么让缓存的数据立即更新?如果可以容忍延迟或是差异性的话,可以考虑缓存的数据有一个过期时间。但是,最好的方式还是采用通知方式,或者说发布订阅方式。所有的客户端会订阅客户端配置修改的消息,所有的服务端会订阅服务端配置修改的消息,配置后台在修改后复杂发布这个消息。在这里采用redis作为发布订阅的服务端,利用TCP双工特性与所有客户端和服务端保持长连接,进行消息的推送。 string contract = ""; using (WcfConfigDataContext data 阅读全文
posted @ 2011-04-28 17:31 lovecindywang 阅读(4276) 评论(17) 编辑
摘要: 在第一篇文章中已经列出了几种日志的概览:所有的日志都有一个最终基类,来看看这个类:[DataContract(Namespace = "WcfExtension")] [KnownType(typeof(WcfExceptionInfo))] [KnownType(typeof(ServerExceptionInfo))] [KnownType(typeof(ClientExceptionInfo))] [KnownType(typeof(WcfInvokeInfo))] [KnownType(typeof(ServerInvokeInfo))] [KnownType(ty阅读全文
posted @ 2011-04-28 15:01 lovecindywang 阅读(3719) 评论(6) 编辑
摘要: 假设定义了一个服务契约:[ServiceContract(Namespace = "WcfExtension.Services.Interface")] public interface ITestService { [OperationContract] int Add(int x, int y); [OperationContract] [ServiceKnownType(typeof(TestContract))] ITestContract TestData(ITestContract tc); ...阅读全文
posted @ 2011-04-28 12:54 lovecindywang 阅读(3258) 评论(4) 编辑
摘要: 从这次开始在几个方面简单阐述一下实现,集中配置是这个框架很大的一个目的,首先在数据库中会有这么一些表:其实可以看到这些表的结构,应该是和<system.serviceModel>配置节点中的层次有对应的1) Service表描述的是服务,主要保存服务行为以及服务的配置。在这里,ServiceConfig是框架内用到的配置,比如各种日志是否要记录等等。服务对应到服务的集群,集群公开一个地址,客户端访问这个地址,也就是一个负载均衡的虚拟IP地址。2) 一个Service可以有多个ServiceEndpoint,ServiceEndpoint中定义了契约的版本,类型和行为,以及涉及到地址阅读全文
posted @ 2011-04-28 12:38 lovecindywang 阅读(4320) 评论(12) 编辑
摘要: 由于希望使用Wcf作为公司内的通讯框架,因此基于Wcf进行了一些扩展,主要的目的有以下几个方面: 1) 希望减少客户端调用的复杂度,调用方式简化为WcfServiceLocator.Create<IT...阅读全文
posted @ 2011-04-25 13:59 lovecindywang 阅读(7213) 评论(23) 编辑
摘要: 对于下面几种方式,哪一种是最合适的,我期望的是这样的: 1) 在客户端,对于TCP确保使用连接池,在每一次使用连接之后归还连接等待复用。由于连接池是宝贵的资源,不可能每一次调用都去创建,而是只创建一次...阅读全文
posted @ 2011-03-17 14:33 lovecindywang 阅读(8961) 评论(23) 编辑
摘要: 从上篇的图中可以猜测到还会有Redis 2.2.1 的测试,相同的测试环境,1K的数据量,使用ServiceStack.Redis客户端进行如下测试: 1) Set操作 2) Get操作 3) Del...阅读全文
posted @ 2011-03-03 10:29 lovecindywang 阅读(36363) 评论(15) 编辑
摘要: 进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 (...阅读全文
posted @ 2011-03-02 22:09 lovecindywang 阅读(111329) 评论(63) 编辑
共3页: 上一页 1 2 3 下一页