集群的定义和目的(鱼类为什么要集群集群的功能和生态学意义是什么)

本文目录
鱼类为什么要集群集群的功能和生态学意义是什么
集群是大多数鱼类较为普遍的行为,在整个生命中,鱼类都会都会显现出阶段性的集群,尤其是徊游性鱼类。据资料统计,世界上有记载的2万多种鱼类中,整个生涯都会集群的占25%,幼鱼阶段集群的占50%,这说明了鱼类集群行为是一个普遍的行为。
一般情况下,个体小的鱼类极易形成集群,这样能够增加安全系数,让它们在大鱼吃小鱼的环境里得以生存和发展。有趣的是,不仅小鱼喜欢集群,某些大型捕食鱼也喜欢集群,如金枪鱼、鲣鱼等。显然,大型捕食鱼集群比单独行动能够更快的找到食物。
鱼类集群
除了防御和捕食,鱼类集群还发挥着其它作用,与单独的个体鱼相比,对于不利的环境,鱼群有更好的抵御能力,集群游泳还可以减少个体鱼的能量消耗,在洄游时也能更快地找到洄游路线,到了繁殖季,大多数鱼类聚集在一起交配、产卵,更有利于种族的繁衍。
鱼类集群的原因都有哪些?
根据其产生原因的不同,鱼类集群可分为四类,包括生殖集群、索饵集群、越冬集群和临时集群。
生殖集群:由性腺已成熟的个体汇合而成的鱼群称为生殖鱼群或产卵鱼群,这类鱼群性腺发育程度基本一致,但年龄不一定完全相同,且这类鱼群群体密度大,也比较集中和稳定。
鱼类集群
索饵集群:由食性相同的鱼汇聚成的、以捕食其爱好的饵料生物为目的汇合而成的鱼群称为索饵集群,这类鱼群食性相同,长相相近,种类或许不同,大家都是为了相同的摄食饵料而聚集在一起的。
越冬集群:由为了寻找适合其生活的新环境而汇合而成的鱼群称为越冬集群,这类鱼群都是由于环境的改变而产生停止摄食或减少摄食现象的鱼类集合而成的。
临时集群:当遇到环境突变或是凶猛鱼类时引起的暂时性集中的鱼群称为临时集群,当环境恢复正常或是凶猛鱼类离去,它们就可能离散。
数据库集群的介绍
集群主要分成三大类 (高可用集群, 负载均衡集群,科学计算集群)
高可用集群( 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集群。这类集群致力于提供单个计算机所不能提供的强大的计算能力。
高性能计算分类:
3.1、高吞吐计算(High-throughput Computing)
有一类高性能计算,可以把它分成若干可以并行的子任务,而且各个子任务彼此间没有什么关联。象在家搜寻外星人( SETI@HOME – Search for Extraterrestrial Intelligence at Home )就是这一类型应用。
这一项目是利用Internet上的闲置的计算资源来搜寻外星人。SETI项目的服务器将一组数据和数据模式发给Internet上参加SETI的计算节点,计算节点在给定的数据上用给定的模式进行搜索,然后将搜索的结果发给服务器。服务器负责将从各个计算节点返回的数据汇集成完整的 数据。因为这种类型应用的一个共同特征是在海量数据上搜索某些模式,所以把这类计算称为高吞吐计算。
所谓的Internet计算都属于这一类。按照 Flynn的分类,高吞吐计算属于SIMD(Single Instruction/Multiple Data)的范畴。
3.2、分布计算(Distributed Computing)
另一类计算刚好和高吞吐计算相反,它们虽然可以给分成若干并行的子任务,但是子任务间联系很紧密,需要大量的数据交换。按照Flynn的分类,分布式的高性能计算属于MIMD(Multiple Instruction/Multiple Data)的范畴。
下面说说这几种集群的应用场景:
高可用集群这里不多作说明。
想Dubbo是比较偏向于负载均衡集群,用过的猿友应该知道(不知道的可以自行了解一下),Dubbo同一个服务是可以有多个提供者的,当一个消费者过来,它要消费那个提供者,这里是有负载均衡机制在里面的。
搜索引擎Elasticsearch比较偏向于科学计算集群的分布计算。
而到这里,可能不少猿友都知道,集群的一些术语:集群容错、负载均衡。
我们以Dubbo为例:
***隐藏网址***
Dubbo提供了这些容错策略:
集群容错模式:
可以自行扩展集群容错策略,参见:集群扩展
Failover Cluster
失败自动切换,当出现失败,重试其它服务器。(缺省)
通常用于读操作,但重试会带来更长延迟。
可通过retries="2"来设置重试次数(不含第一次)。
Failfast Cluster
快速失败,只发起一次调用,失败立即报错。
通常用于非幂等性的写操作,比如新增记录。
Failsafe Cluster
失败安全,出现异常时,直接忽略。
通常用于写入审计日志等操作。
Failback Cluster
失败自动恢复,后台记录失败请求,定时重发。
通常用于消息通知操作。
Forking Cluster
并行调用多个服务器,只要一个成功即返回。
通常用于实时性要求较高的读操作,但需要浪费更多服务资源。
可通过forks="2"来设置最大并行数。
Broadcast Cluster
广播调用所有提供者,逐个调用,任意一台报错则报错。(2.1.0开始支持)
通常用于通知所有提供者更新缓存或日志等本地资源信息。
***隐藏网址***
Dubbo提供了这些负载均衡策略:
Random LoadBalance
随机,按权重设置随机概率。
在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
RoundRobin LoadBalance
轮循,按公约后的权重设置轮循比率。
存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
LeastActive LoadBalance
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
ConsistentHash LoadBalance
一致性Hash,相同参数的请求总是发到同一提供者。
当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。
***隐藏网址***
缺省只对第一个参数Hash,如果要修改,请配置《dubbo:parameter key="hash.arguments" value="0,1" /》
缺省用160份虚拟节点,如果要修改,请配置《dubbo:parameter key="hash.nodes" value="320" /》

更多文章:
雷电模拟器改ip地址(夜深安卓模拟器怎么切换ip,只能是手动换吗)
2026年10月11日 09:40
教资502 bad gateway(中小学教师资格考试报名为什么显示502BadGateway)
2026年10月11日 05:40
重庆维修电脑(重庆市江津区白沙镇哪有卖电脑的或电脑维修店,最好离航天技术学院近点的)
2026年10月11日 00:10
服务器地址格式不正确(怎么解决dns服务器设置不正确的问题)
2026年10月10日 21:00







