coolfiry

认认真真做人,兢兢业业做事!
posts - 39, comments - 17, trackbacks - 0, articles - 0

网站如何做分布式(集群)的大纲

何时要用分布式

  • 单台服务器无法承受压力。
  • 需要实现发生错误时候,自动切换
  • 学习或者测试分布式技术

应用分布式的场景


一、提供多个对外的接口,按照一定规则,分派不同请求由不同接口来处理。
这时候需要考虑:
  • 如何实现负载均衡
    • 在哪个层次实现转移负载
    • 负载的均衡如何实现
  • 如何实现故障转移
    • 如何监控故障
    • 如何切换服务

二、把一个功能拆分成多个功能,不同功能分布部署到不同服务器上

  • 对外功能的拆分 
    • http://news.sina.com.cn/ http://sports.sina.com.cn/ http://mobile.sina.com.cn/
    • http://www.microsoft.com/china/  http://www.microsoft.com/downloads/
    • SOA
  • n层架构,其中的一些层分布到不同服务器上
    • WEB + DB 模式

网站请求中的分布式

按照请求流程,我们可以在以下环节按照一定规则,把用户的请求分流到不同服务器上:

  • Web Client Level
    • 例子:QQ 设置中你可以选择登陆的服务器IP
  • DNS Based Selection
    • 优点:
    • 缺点:
      • 不能区分服务器的差异,也不能反映服务器的当前运行状态。
      • DNS 的刷新需要时间,无法及时故障切换。
  • TCP balancing proxies
    • 硬件
    • 软件
  • HTTP-aware routers

  • URL重定向

网站应用中的分布式

  • 代理服务器实现请求的分离
    • Squid是Linux下一个缓存Internet数据的代理服务器软件
  • 拆分网站对外功能
    • 不同域名前、后缀
    • URL 重写
  • SOA
    • 每个Service 分布到一台服务器上
  • n 层架构
    • 缓存分布式部署
      • 文件Cache
      • 内存Cache (memcached )
        • http://www.danga.com/memcached/
        • https://sourceforge.net/projects/memcacheddotnet/
    • DB分布式集群部署
      • 故障转移
      • 发布订阅
      • 分布式分区视图
    • 应用服务器(比如定时发送邮件通知的服务)

    • 相关技术:
      • 企业服务
      • .net Remoting
      • WCF
      • Web Service

 

如何判断一个应用是否支持分布式

如果发现某一部分应用需要做分布式了,就可以按照以下思路来考虑如何改造:

从应用所用数据看是否支持分布式

  • 多份并存数据(一个数据存在多份)最大多长时间同步一次是可接受的。
    • 内存缓存的数据跟数据库的数据(页面级缓存和业务逻辑缓存)
    • 静态文件跟数据库
    • 查询数据库跟业务变更数据库
  • 数据按照一定规则拆分(一个数据只存在一份)对业务是否有影响
    • 过去每年的数据迁移到一个对应历史库中。
    • 专用的图片服务器 http://pics.ebaystatic.com/

此处可分析:QQ的在线用户数据,会是如何处理的呢?

从应用逻辑过程看是否支持分布式

  • 是否可以并行执行这个逻辑过程

  • 这个逻辑过程是否可以拆分成几个松耦合的过程

微软技术支持的5种分布式

夏桅的这篇博客中的图表就可以很详细的对比这5种分布式:

Windows的第五种群集方案 - CCS

posted @ 2006-09-21 15:34 Coolfiry 阅读(786) | 评论 (0)编辑 收藏

http://www.tiobe.com/index.htm?tiobe_index

这次 vb 和 vb.net 的数据再次合并了。C 系的语言 (java, c, c++, C#) 总体占了 50% 强。在 .net 环境中,vb 大概还是多过新生代的 C# 。
这次仔细了看了看。才发觉这个升降是去年同期的比较。是能够使用此语言的工程师,课程,独立软件生产商的相关比例。不直接代表用语言出了多少代码。

原来 Ruby 和 Java 基本上是同时代的东西。http://www.ruby-lang.org/  http://rubycn.ce-lab.net/ 由日本人发明、流行的东西。
从运行效率、性能上来看,C/C++ 比 Java 强。Java 比 Ruby 强。在比较简单的功能中,Java 和 C/C++ 可以相当接近。当程序的算法比较复杂,涉及大量数据的时候,Java 速度还是会落后近一个数量级。此时,内存使用也会有几倍的差异。
http://blog.csdn.net/rmartin/archive/2006/08/30/1143161.aspx
http://www.butunclebob.com/ArticleS.UncleBob.SpeedOfJavaCppRuby

不知道 D 是什么东东了。倒是在许久以前,从公司的首设博士那里听到过一耳朵。感觉语法结构还是 C like 的。http://www.digitalmars.com/d/index.htmlhttp://www.soho-works.net/BLOG/326.asp http://libai.math.ncu.edu.tw/bcc16/user/forum/read.php?f=15&i=14

http://www.tiobe.com/index.htm?tiobe_index

TIOBE Programming Community Index for September 2006

September Headline: Ruby and D are the hot languages of today

tiobe language 200609

tpci trends 200609

posted @ 2006-09-14 13:35 Coolfiry 阅读(595) | 评论 (0)编辑 收藏

摘要:

近日, Sun 宣布收购 JRuby 项目.Sun终于开始表露出让不仅仅是Java运行在JVM上的兴趣了.

 
近日, Sun 宣布收购 JRuby 项目.

Sun终于开始表露出让不仅仅是Java运行在JVM上的兴趣了.

近日,SUN迈出了重要的一步.

Charles Nutter, JRuby 的核心开发者之一, 宣布: Sun 已经整体收购了JRuby 项目. 他与JRuby的另外一个核心开发者
Thomas Enobo 都将会加入Sun.


从这次动作看的出来Ruby在Sun战略中的地位,  看来Ruby很有可能成为JVM支持的第一个非Java语言.

动态语言, 已经不遥远了.

官方站点:
http://jruby.sourceforge.net/
(http://www.matrix.org.cn/resource/news/JRuby+Sun_954.html)

posted @ 2006-09-11 13:58 Coolfiry 阅读(210) | 评论 (0)编辑 收藏

     摘要: 用 JNI 调用 C 或 C++ 动态联接库原来如此简单 ...  阅读全文

posted @ 2006-09-09 16:30 Coolfiry 阅读(543) | 评论 (0)编辑 收藏

开学了

posted @ 2006-09-04 13:45 Coolfiry 阅读(208) | 评论 (0)编辑 收藏

回成都了

posted @ 2006-09-01 22:12 Coolfiry 阅读(207) | 评论 (0)编辑 收藏

多线程与一个端口的问题
不知道在一个进程中的多线程同时运行,使用同一端口会出现什么样的情况?

比如:开5个线程下载,下载的时候,每一个线程是否是能正确的接收到数据.如果能,那么Socket是针对线程级的,但那样的话,这几个线程就不能同时使用一个端口了,应该是会报差的哈.

还有一点,在下的时候好像可不指明接入的端口号哈?

posted @ 2006-08-19 22:49 Coolfiry 阅读(1131) | 评论 (1)编辑 收藏

 看新鲜,基于Ajax技术网站赏析
2006-6-9 11:11:24

Ajax,与其说是一种技术不如说是一系列技术的组合,但Ajax带给我们的不仅仅是技术,更多的是以人为本的一种服务理念,它崇尚参与性和交互性,不仅缓和了资源矛盾也亲和了人与人之间的关系。Ajax王国下的子民既是管理者又是被管理者,是主亦是客,是信息接收者也是信息制造者,多么和谐美妙的社会!


Google Ajax技术的领跑者,基于Ajax的广为大家熟悉的产品有Google Maps,Google Gmail,Google IG等,Google作为Ajax技术的先行者和倡导者早已经走在其它同类网站的前列。进入Google MapsGoogle GmailGoogle IG

Macrosoft Live 微软帝国一直以操作系统为核心,但迫于Google带来的巨大威胁,这个软件界的巨人开始把目光转向web应用技术服务,建立了具有个人门户性质的live网站,live网站目前还不支持中文版,但其个性化的界面已经深深吸引了大批用户,用户体验非常棒。进入live网站

Netvibes 有中文繁体功能,可惜不支持简体。比较早的桌面系统,功能也十分的齐全,系统写的代码十分的精简。据说 Okrss和周博通都是仿照它写的代码。进入Netvibes

Pageflakes 是一个在已经异常拥挤的桌面系统市场中新近推出的网站. 它综合了RSS阅读器, 邮件收发, 记事本以及搜索等功能. 提供第三方API。进入Pageflakes

Favoor 这个色彩如LOGO一样比较鲜艳,活动的桌面系统,不过需要先注册才可以使用,注册是方便的。同样都是支持RSS,邮件收发,书签之类的小功能。这是来自德国的网站。进入Favoor

Eskobo 蓝色色调,我测试了一下,中文支持的功能很好。还配有各种skin任你选择,随你喜好吧。进入Eskobo

Protopage 面中的元素可以像视窗那样彻底地无限制移动,不像其它的桌面Ajax系统,只能定向移动。进入Protopage

Goowy 这个就十分特别的,网页版,还有下载的桌面版,有点像YAHOO的widget。我正在研究,功能太多了,大家都来试用吧。进入Goowy
■国内

GouGou GouGou作为一个在线RSS阅读网站实际上起到了一个反rss的作用,人们千方百计地把自己网站上的内容xml化并提供给一些特定的RSS阅读器订阅,但GouGou似乎把这些东西又还原了,所幸的是,用这种方式进行内容阅读还是比直接浏览网站方便得多。进入Gougou

Redoo热度 我不知道国内从什么时候开始也有了Ajax网站,但这个网站不论从技术上说还是从内容上说都是做的比较好的,不过明眼人一看就知道这个网站的很多程序代码是借鉴别人的,不管怎么样,它把自己的内容进行了有效的组装,已经非常不错了。进入Redoo

posted @ 2006-08-19 16:27 Coolfiry 阅读(5102) | 评论 (4)编辑 收藏

Coolfiry的Blog开通了

posted @ 2006-08-19 14:50 Coolfiry 阅读(222) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4