Fork me on GitHub

2013年4月19日

摘要: DDD:DDD+CQRS+高伸缩性的分布式架构物理架构物理架构优势WEB服务器可以单独做负载平衡(独立伸缩)。应用服务可以单击做负载平衡(独立伸缩)。容易引入“后台任务服务器”(正在做这方面的支持)。支持混合部署(一部分业务逻辑运行在WEB服务器,一部分业务逻辑运行在应用服务器),部署方式对开发人员几乎透明。如何选择部署模型当用户数少(自己测试)的时候可以不用应用服务器,只做WEB负责平衡。当用户数多(自己测试)的时候,将频繁执行的业务逻辑分离部署到应用服务器上。对于那些长时间(自己测试)执行的任务,将它们部署到后台任务服务器上。示例代码项目结构WEB服务器代码 1 using System; 阅读全文
posted @ 2013-04-19 15:10 HackerVirus 阅读(430) 评论(0) 推荐(0)
摘要: 使用Beetle.Express简单构建高吞吐的TCP&UDP应用在Beetle.Express1.2中加了UDP支持,而整体的设计结构也做了调整.只需要通过简单的配置就能实现高吐的TCP&UDP应用.由于组件引用UDP服务同样也支持会话状态所以对于服务是TCP或UDP对使用者来说完全是透明的.使用者只需要关心以下几个接口即可:IServer(服务描述接口),IChannel(通道会话),IData(发送数据描述),IReceiveData(数据接收描述)和IServerHandler(服务处理接口).而使用在使用组件的时候只需要实现IServerHandler.IServer 阅读全文
posted @ 2013-04-19 15:08 HackerVirus 阅读(484) 评论(0) 推荐(0)
摘要: SQL Server 2008 高可用性视频(四)-- 故障转移群集做数据库的朋友都知道, 其实数据库的工作大致可以分为三类: 数据库设计与开发, 数据库管理, 数据库商业智能. 其中数据库管理的工作大部分是由DBA在做, DBA们除了要保证正常的数据库运行, 还要采取必要措施提升数据库的性能, 比如数据库的性能优化, 以及保证数据库系统的高可用性. 我在前面发了几篇对SQL Server数据库进行调优的文章, 下面会再开一个SQL Server高可用性解决方案的主题. 笔者工作中也有很多场景会用到HA, 但因为没有进行过系统的学习, 所以处理HA问题时总觉得捉襟见肘. 索性, 就下决心把这. 阅读全文
posted @ 2013-04-19 15:03 HackerVirus 阅读(303) 评论(0) 推荐(0)
摘要: VS2012自带的 性能分析 工具使用实例本篇通过一小段代码的console程序来进行性能的分析以及改进、直到后面的改进前、改进后性能比较结果。先看console代码(源代码下载):static void Main(string[] args) { int i = 10000; while(i-->0) { Core c=new Core(); c.Process(DateTime.Now.ToString()); } ... 阅读全文
posted @ 2013-04-19 14:57 HackerVirus 阅读(680) 评论(0) 推荐(0)
摘要: 性能优化-网页加载耗时数据的搜集最近需要针对现有的一些线上产品,进行优化工作。首先得对这些产品的性能做一个统计,找出目前问题最严重的,优先进行改进。前面我都是通过在自己本地电脑上测试,利用诸如YSLOW、PageSpeed之类的工具来检测性能。但是通过这些方法,得到的结果都是比较理想的,没有并发因素,网络也因为是内网环境,非常给力,每个产品体现出来都还挺快。因此最终还是决定搜集用户端真实的页面加载耗时来作为参考标准。在考虑如何搜集用户端数据的过程中,一开始,是准备在页面上通过JS进行埋点,类似这种方式:?<script>T = T || {};T.beforeHead = newD 阅读全文
posted @ 2013-04-19 14:48 HackerVirus 阅读(439) 评论(0) 推荐(0)
摘要: MEF核心笔记(5)是模式还是设计最近事情很多,有烦恼,有悲伤,不过,一切想通后,感觉其实也没什么。毕竟,这是每个人都要经历了,那么恭喜自己,就要当爸爸了,一个程序员爸爸。所以,好久没写博客了,今天,我们继续来说MEF,这也是MEF的最后一篇博文,这次的主要内容有:同事的设计针对同事设计随想最后的设计同事的设计最近同事在做关于WCF的一个项目,而我主要负责WCF通讯的部分,所以无意间看到了他的设计。该同事出生Java,话说Java中的设计模式要比C#起步早很多,但,如果只是为了模式而去设计,那么就失去了模式的意义。该项目的业务流程大概可以归结于下图:业务逻辑很简单,有客户端发送一个命令给服务器 阅读全文
posted @ 2013-04-19 10:49 HackerVirus 阅读(670) 评论(0) 推荐(0)
摘要: 那点所谓的分布式——memcache这篇开始决定把系列文章的名字改掉,想了个好名字,反正不是玩单机版的就行了。 好了,这篇我们看看一种非持久化的缓存服务器memcache,说到缓存本能反映就是cache,session什么的,是的,可以说这些都是基于.net进程的,通俗点也就做不了多机器的共享,典型的一个就是SSO。一: 安装 memcahce像redis,mongodb一样都需要开启他们自己的服务端,我们下载Memcached_1.2.5.zip,然后放到C盘,修改文件名为memcached。1:install install可以说是万能通用命令,首先我们转到memcached目录,然... 阅读全文
posted @ 2013-04-19 10:08 HackerVirus 阅读(232) 评论(0) 推荐(0)
摘要: 对.Net Framework的认识(1).Net Framework主要有两部分组成,CLR+类库。3C: CTS(Common Type System), CLS(Common Language Specification), CLR(Common Language Runtime)。CTS是个类型标准,任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射,从而使符合CTS的各种语言之间可以无缝互操作,CTS还提供了语言间的继承,例如C#类继承VB.Net类。CLS制定了一种以.NET平台为目标的语言所必须支持的最小特征,以及该语言与其他.NET语言之间实现互操作性所 阅读全文
posted @ 2013-04-19 10:02 HackerVirus 阅读(318) 评论(0) 推荐(0)
摘要: .NET 4.5 异步IO在C/S架构中,不管是传统的winform还是wpf都可能会遇到进行异步操作文件的时候。文件小还好说,直接写操作代码。如果是大文件很多时候做成异步的操作。在界面上显示一个进度条什么的,后台使用一个backgroundworker来做。在这里告诉大家在.NET Framework4.5中支持异步IO的操作。大大简化之前些的异步方法代码。使用backgroundworker代码View Codeprivate void Button_Click_3(object sender, RoutedEventArgs e) { System.C... 阅读全文
posted @ 2013-04-19 09:57 HackerVirus 阅读(311) 评论(0) 推荐(0)
摘要: TPL中Task执行的内联性线程重入在没有TPL(Task Parallel Library)之前,使用ThreadPool处理多线程事务及等待,可能类似如下代码: 1 class Program 2 { 3 [ThreadStatic] 4 static int PerThreadValue; 5 6 static void Main(string[] args) 7 { 8 Console.WriteLine("Main thread: {0}", 9 Thread.CurrentThread.ManagedThread... 阅读全文
posted @ 2013-04-19 09:55 HackerVirus 阅读(289) 评论(0) 推荐(0)