...
        在业务制定的时候很少会切入缓存设计这一环节,毕竟在指标不明确的情况这属于一种过渡设计.毕竟缓存切入有很多手段,在很多时候直接在WEB进行一个页面缓存就有着非常高收益的效果.缓存是一种横向的数据处理应用,一般在设计中引入AOP,ICO的应用组件都可以在后期切入添加.但AOP,ICO在没有比较丰富的经验情况引入会直接增加应用的复杂度和风险.在设计主要介绍一种简单的设计方式在设计阶段引用缓存但又不带来复杂的工作成本. 一个简单示例 public class BlogService:Interfaces.IBlogService { ...
在实际编写程序中大部他开发人员应用到队列的场景并不多,在数据结构层面来说队列是一个先过先出的存储机制;如果经常面向服务器并发应用编写的同学对队列机制应该不会陌生.基于队列的应用设计作为服务的性能和可靠性上起到非常重要的作用,对于刚入门的同学可能对这些东西不太理解,既然添加了一个处理环节为何还能提供性能.通过下面讲解可以让不了解队列机制的同学进一步认识到队列机制在服务器应用设计如何起到重要的作用. 性能提升和可靠性 使用队列机制真的能让代码性能提升吗?从代码角度来说不能,原因很简单因为要执行的代码多了.既然不能提高代码执行性能那为什么服务设计都会考虑队列机制呢?主要原因服务设计一 ...
在之前的文章中简单描述了一下如何通过LRU结合多层缓存机制实现高命中的缓存,这一章节里的主要内容是深入地了解其原理的实现. LRU算法 什么是LRU算法? LRU是Least Recently Used的缩写,即最少使用页面置换算法,是为虚拟页式存储管理服务的.通过这种算法可以把最近使用的数据迁移到数据存储的热区,而不常用的数据则迁到数据存储的冷区;通过数据存储分区那在清除局部冷区数据相应要处理的复杂底就会降低.在.NET中可以通过一个双向链表来实现冷热交互的结构,大概结构如下: 以上是一个基于双向链表存储的原理,新添加进来的数据会添加到头部,当 ...
提出Configuration Agent这样一个东西可能会让人感到奇怪,对于配置信息读取什么还需要一个Agent;那Agent的作用是什么,能达到一个怎样的目的,下面讲解为何需要Agent和其重要性。 普通应用场景 一般情况每个应用都会获取本应用域下的配置信息,在应用单一部署的情况一般不会存在什么问题,毕竟不需要配置同步等维护工作。 多应用部署场景 如果应用规模大一个应用多服务器部署则是一件非常普遍的事情。那这个时候的配置维护更新的问题。 存在问题 相信经历应用多服务器部署的朋友都应该了解, ...
由于MSMQ的消息交互都需要对磁盘进行读写操作,所以提高MSMQ的消息吞吐能力相对比较有效的方法就是提高磁盘读写能力.可以简单地把MSMQ的消息,日志等文件存储到不同的磁盘来降低MSMQ对一个磁盘IO依赖从而达到更高的读写效能.由于MSMQ一般都是存储流水数据,如果消息结构比较少和消费积累量不高的情况把MSMQ存储放到内存则是一个非常不错的选择,这样能够大大提高MSMQ的读写效能(缺点:断电部分数据存在丢失).下面针对MSMQ内存存储的一些实现和简单测试. 构建内存盘 首先要从内存中创建一个盘出来,这个可以通过一些工具就能实现,这里选择了Dataram RAMDisk(这款工具 ...
目标 在业务处理上经常需要使用MQ作为消息流转和分发的渠道,但不同MQ产品其提供的操作方式都有着不同的差异性存在,这样会使开发人员使用起来就相对比较麻烦;MQ Client Agent的设计目的就是提供一个统一的MQ写入规则,让开发人忽略具本MQ操作的细节,即使在更换MQ产品的时候也可以在不修改现有逻辑代码的前提下轻易达到切换不同的MQ产品能力. 功能 提供消息统一写入规则功能库 支持可配置的MQ Connection Provider 支持可以的Message Handler 结构 功能类 ...
前言       在互联网应用项目中分布式设计是必不可少的环节,通过分布式设计从而达到简单扩容硬件的方式来提高系统和平能的总体吞吐能力。但实际应用中并不是简单地进行分布式设计就能解决问题,因为在现实应用并不是所有硬件资源都可以很好地进行扩容,比较常见的就是数据库资源,所以在设计整个架构的时候必须考虑部署资源的局限制性;否则整个构架所产生的效果就不能达到设计前规划水平。下面讲述构建一个可靠、高吞吐的分布式业务架构基础改造。 现有架构       以上结构是最常见的分布式设计结构,而 ...
AMS全称是Application Management Server即应用程序管理服;由于经常要写些一些应用服务,每次部署和维护都比较麻烦,首先要针对服务编写一个windows服务程序方便系统启动里加载;而当要对服务进行更新的时候不得不对服务进行停止和启等一系列的繁琐工作;而对于平常所有服务运行跟踪管理上就更加难以处理,即使IIS本身也无法方便查看具体WEB服务中处理业务上的统计信息,为了解决以上的种种问题所以考虑针对.NET程序设计一个应用程序管理服务。 目标功能 AMS的主要功能是可以根据需要在服务上创建多个进程,而每个进程里都可以挂载多个应用服务。其实进程挂载应用 ...