集群地址:集群有多个服务实体组成,集群客户端通过访问集群的集群地址获取集群内部各服务实体的功能。
具有单一集群地址是集群的一个基本特征,维护集群地址的设置被称为负载均衡器。负载均衡器内部负责管理各个服务实体的加入和退出
外部负责集群地址向内部服务实体地址的转换。有的负载均衡器实现真正的负载均衡算法,有的只支持任务的转换。只实现任务转换的负载均衡器使用与
支持ACTIVE-STANDBY的集群环境。
内部通信 为了能协同工作,实现负载均衡和错误恢复,集群各实体间必须时常通信,比如负载均衡器对服务实体心跳测试信息、服务实体间任务执行上下
文信息的通信。
Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群)
高可用集群( High Availability Cluster)
负载均衡集群(Load Balance Cluster)
科学计算集群(High Performance Computing Cluster)
1. 高可用集群(High Availability Cluster)
常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如"双机热备", "双机互备", "双机".
高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)。
2. 负载均衡集群(Load Balance Cluster)
负载均衡系统:集群中所有的节点都处于活动状态,它们分摊系统的工作负载。一般Web服务器集群、数据库集群和应用服务器集群都属于这种类型。
负载均衡集群一般用于相应网络请求的网页服务器,数据库服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
3. 科学计算集群(High Performance Computing Cluster)
高性能计算(High Perfermance Computing)集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算分类
高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME -- Search for Extraterrestrial Intelligence at Home )就是这一类型应用。这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上 参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
4. 分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方。
而集群指的是将几台服务器集中在一起,实现同一业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。
举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。
而分布式,从窄意上理解,也跟集群差不多, 但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。
分布式的每一个节点,都完成不同的业务,一个节点垮了,哪这个业务就不可访问了。
使用mysql、nginx等开源软件,通过架构和低成本服务器也可以搭建千万级用户访问量的系统。新浪微博、淘宝网、腾讯等大型互联网公司都使用了很多开源免费系统搭建了他们的平台。所以,用什么没关系,只要能够在合理的情况下采用合理的解决方案。
那怎么搭建一个好的系统架构呢?这个话题太大,这里主要说一下数据分流的方式。比如我们的数据库服务器只能存储200个数据,突然要搞一个活动预估达到600个数据。
可以采用两种方式:横向扩展或者纵向扩展。
纵向扩展是升级服务器的硬件资源。但是随着机器的性能配置越高,价格越高,这个代价对于一般的小公司是承担不起的。
横向扩展是采用多个廉价的机器提供服务。这样一个机器只能处理200个数据、3个机器就可以处理600个数据了,如果以后业务量增加还可以快速配置增加。在大多数情况都选择横向扩展的方式。如下图:
- 简介
- Cookie
- HTML5 LocalStorage
- session
- 当浏览器关闭后,Session就销毁了吗?
- mysql数据库保存session
- HTTP协议的由来
- fsockopen异步请求
- http防盗链
- Apache伪静态知识补充
- 大并发量解决方案
- 大型网站是怎样解决多用户高并发访问
- 网站高并发 大流量访问的处理及解决方法
- 并发数与在线客户数 注册用户数的关系
- 即时聊天程序
- 反向Ajax实现
- ob缓存作用
- 浅聊并发之战
- php扩展安装
- php安装redis扩展
- SQLMap自动化实施SQL注入共计
- 命名空间namespace
- 集群和分布式之【session共享】
- php Redis存储Session 【1】
- php Redis存储Session 【2】
- php mysql存储session【1】
- php缓存
- 文件缓存
- memcache和redis的比较
- 原生session与session in redis对比
- XSS攻击【1】
- XSS攻击【2】
- PHP消息队列
- php+mysql 模拟发送邮件队列
- php+mysql 模拟订单处理队列
- php+redis 模拟秒杀队列
- RabbitMQ 消息队列系统
- beanstalkd
- PHP构建即时通讯
- WebSocket协议
- workerman
- PHP变量的作用域
- PHP传值和传引用的区别
- PHP匿名函数
- PHP递归函数&应用
- PHP单例模式
- PHP性能优化
- RESTful
- 集群
- 增加pgsql扩展
- php.ini路径查找
- Swoole Compiler
- mysql 主从
- 主从
- mysql-proxy
- window docker环境