看看.net的互联网技术

看看Stackoverflow的.net技术栈,列个目录学习技术。

 

学习的工具

1.Razor 视图引擎,可以帮助我们在View上做更多好玩且有意义的事情;
2.HAProxy 高性能的负载TCP/HTTP均衡器;
3.Redis作为分布式缓存曾的NoSql数据库;
4.Lucene.Net 全文检索;
5.Nagios 监视系统运行状态和网络信息的远程监控软件;
6.Splunk 日志分析工具;
7.Markdown
8.Nginx 反向代理服务器;

 

缓存的使用

缓存设计:
local cache:
本地缓存:只能被当前站点的服务器访问。
1.为了减少网络延迟,使用httpRuntime.Cache作为一级缓存,可以避免通过网络在缓存服务器上查找的开销。
2.缓存内容包含用户会话,视图数的更新;
3.直接缓存在内存中,不是网络或者数据库;

site cahce:
站点级缓存:能被同一个站点的所有服务器访问。
1.大部分缓存在这一级,比如热点问题ID列表,用户支持率;
2.缓存数据存储在Redis数据库中;
3.Redis速度快,缓存查找的开销主要花在网络数据传输上;
4.缓存数据发送至Redis之前会被压缩。因为CPU资源绰绰有余,而且大部分缓存数据是字符串,压缩率很高;
5.Redis服务器上的CPU使用率是0%;

global cache
全局缓存:被所有站点和服务器共享。
1.缓存内容包含收件箱,API使用配额,一些全局设置等;
2.缓存在Redis数据库中;

大部分缓存项目在超过缓存时间之后会自动过期(通常几分钟),不需要进行删除操作。到需要让一个特定的
缓存失效,会通过Redis消息系统给一级缓存发送删除通知;

 

持续更新一些东西:

1.自动编译及发布系统,通过SVN提交代码,代码编译通过后自动部署到IIS环境:

c:\windows\system32\inetsrv>cd "C:\Program Files (x86)\IIS\Microsoft Web Deploy V2\" 

C:\Program Files (x86)\IIS\Microsoft Web Deploy V2>C: 

C:\Program Files (x86)\IIS\Microsoft Web Deploy V2>msdeploy.exe -source:dirpath=D:\CCNET\result\crm\Publish -dest:dirpath=D:\Working\crm -verb:sync 
信息: 正在更新 filePath (D:\Working\crm\bin\CRM.WebUI.dll)。 
信息: 正在更新 filePath (D:\Working\crm\bin\CRM.WebUI.pdb)。 
总更改数: 2 (已添加 0,已删除 0,已更新 2,已更改 0 参数,已复制 4217856 字节)

从架构上补充一下基于组件的架构的关键目标:

1. 可重用:如果组件不能够被重用,那么太多抽象搞一个组件不仅浪费,又增加了复杂度。
2. 可替换:一个组件都被另外一个相似的组件替换掉。
3. 可扩展:组件能够被集成或者和其它组件结合提供一组新的功能。
4. 高内聚:通过接口保持组件内部变化,对外稳定。
5. 独立:不依赖于别的组件就能够部署。 

你可能感兴趣的:(.net)