服务器集群的思考
来源:互联网 发布:网络4007错误怎么回事 编辑:程序博客网 时间:2024/05/29 07:24
服务器集群的思考
面对不断增长的用户请求量、不断提高的服务可靠性,‘集群’技术的分量越来越重要。
首先想象下集群后一个简单的请求流程。单一入口(都是从一个地方请求数据),中间层分发(负载均衡设备分发请求到集群的node上),node之间的同步。这就是整个集群的过程。
一 单一的入口
对于终端client user来说,他们通过一个入口来访问服务,这个入口一般是域名、ip。client user从来不用理会后台的复杂性。
二 中间层的分发
中间的分发代表着正式进入集群阶段。
域名分发:
dns服务器解析多个ip出来,client选择一个ip作为访问入口。这中集群方式比较简单,没有负载均衡的判断机制。
ip分发:
client通过主ip访问到负载均很设备(F5、keepalived+haproxy、middleware cluster(weblogic、WebSphere自带的)),负载设备通过source ip、cookie等将request分发到后台的node上。这时我们可以设置负载均衡机制(轮询、分组、最大连接数等),根据request来分发,我们还可以改写request、response。
能够这样做的原因是我们懂得socket编程、理解tcp/ip协议族,能够对接收到的ip raw包进行改写。
分发到不同node无非是修改ip包的源地址、目的地址。判断request无非是获取HTTP请求的url再做判断。
三 node间的同步
node间的同步时最简单的,也是最复杂的。
node可以是static web server、dynamic web server、application server、database。
那么我们需要同步些什么呢?
http session,ejb session,server state,disk data synchronization。
一般的web server是无需同步内容的。weblogic、websphere cluster等提供了http session、ejb session的同步。java cluster同步的原理是通过rmi对象序列化来实现的。另外还有server state object 同样会在服务器之间同步,以便为负载均衡判读机制服务。
四 database的集群同步
数据库也属于node
最简单的划分database,涉及到两个part,request connector和data processer
request connector负责接收请求,将请求发给data processer处理。
date processer 负责具体的查询、读写磁盘操作。
在request conncector上半层的集群意义并不大,仅仅提供了多个connector接收端,request conncector的下半层涉及到各个node的同步(sql语句的内容、表的锁定、内存共享)。共享数据,并最终有序的像底层data processer发送sql institute。这个层的实现有oracle的rac、mysql的cluster等。
data processer的集群就更加的复杂了,现在的商业实现很少。
一般data processer还是single,通过磁盘的raid来提供处理速度。而不是集群来提供。在后端san为我们提供了高效的磁盘读写速度。
而集群一般是通过active/standby方式,主备数据库同时运行,主数据库的更新不同向backup数据库写入。
- 服务器集群的思考
- 分布式服务器集群架构方案思考
- 分布式服务器集群架构方案思考
- 分布式服务器集群架构方案思考
- 云计算平台是网络服务器集群的操作系统——SDChina大会思考之二
- 省钱的服务器集群
- 服务器集群的配置
- Linux集群的总结和思考
- 部署redis集群的一些思考
- 游戏服务器架构的思考
- 服务器大并发的思考
- 基于服务器集群的感想
- 实现简单的服务器 集群
- Zookeeper服务器集群的搭建
- 服务器集群的session管理
- Linux下的服务器集群
- 游戏服务器程序的性能思考
- 思考游戏服务器的tick机制
- 设计模式
- 基于 Hibernate搜索的数据库全文检索系
- linux 下c 程序 段错误 分析
- 2010年的编程错误列表
- 技术以外的功夫
- 服务器集群的思考
- 汎用モジュールの例外メッセージ設定
- 求助!!!!
- Qt学习记录
- ASP调用WEBSERVICE文档
- C#导入excel重写
- 孙鑫VC++讲座笔记-(4)MFC消息映射机制的剖析(修订版)
- 关于Google Map API的使用说明
- linux 下安装软件的那点事儿