集群、分布式、负载均衡区别与联系

done

1.
集群(Cluster):是一组独立的总括机系列结合一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以透过网络共享内存举行音信传送,实现分布式总结机。

# Apache Tomcat
daemon

  1. 负载均衡(Load
    Balance):先得从集群讲起,集群就是一组连在一起的处理器,从外表看它是一个序列,各节点可以是见仁见智的操作系统或不同硬件构成的电脑。如一个提
    供Web服务的集群,对外界来看是一个大Web服务器。可是集群的节点也得以单独提供服务。

    tomcats=”1 2 3″

3.
特色:在存活网络布局如上,负载均衡提供了一种廉价有效的措施增加服务器带宽和扩张吞吐量,加强网络数据处理能力,提升网络的八面玲珑和可用性。集群系统
(Cluster)紧要解决下边多少个问题:高可靠性(HA):利用集群管理软件,当主服务器故障时,备份服务器可以活动接管主服务器的干活,并登时切换过
去,以贯彻对用户的不间断服务。高性能总结(HP):即丰硕利用集群中的每一台电脑的资源,实现复杂运算的并行处理,平日用于科学总括领域,比如基因分
析,化学分析等。负载平衡:即把负载压力依据某种算法合理分配到集群中的每一台微机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。

./ilanni.sh p2
status

2、负载均衡系统:
负载均衡又有DNS负载均衡(相比常用)、IP负载均衡、反向代理负载均衡等,也就是在集群中有服务器A、B、C,它们都是互不影响,互不相干的,任何一台的机械宕了,都不会影响其他机器的运转,当用户来一个呼吁,有负载均衡器的算法决定由哪台机器来拍卖,假设你的算法是应用round算法,有用户a、b、c,那么分别由服务器A、B、C来拍卖;

rm -rf
${tom1_home}/work/*

1、Linux集群首要分为三大类( 高可用集群, 负载均衡集群,科学总括集群)
集群是一个统称,他分为好二种,如高性能科学群集、负载均衡群集、高可用性群集等。
科学群集 、高性能集群(High performance cluster,HPC)
它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的快慢和可靠性都远远胜出单机运行的职能。弥补了单机性能上的供不应求。该集群在天气预报、环境监控等数据量大,总结复杂的条件中接纳相比多;
常常,那种集群涉及为群集开发并行编程应用程序,以解决复杂的不错问题。它不应用专门的特级并行统计机,而是用商业系统(如通过急迅连接来链接的一组单处理器或双处理器PC),并且在公私信息传递层上开展通信以运行并行应用程序。我们通常听说一种有益的
Linux
一流总计机问世了,大多数气象就是指这种集群系统,其处理能力与真正一流总括机出色,而其价格与上百万美金的专用顶尖总计机相相比是一定的有益。
负载均衡集群(Load balance cluster, LBC)
它是采用一个集群中的多台单机,完成许多相互的小的办事。一般情形下,要是一个施用使用的人多了,那么用户请求的附和时间就会增大,机器的特性也会境遇震慑,假设应用负载均衡集群,那么集群中擅自一台机器都能相应用户的伸手,这样集群就会在用户暴发劳动请求之后,采纳登时负荷最小,可以提供最好的劳务的这台机械来经受请求并相应,这样就可用用集群来扩展系统的可用性和安居。那类集群在网站中动用较多;
负载均衡群集为铺面需要提供了越来越实用的连串。如其名目,这种系统使负载可以在多台统计机中尽量平均地分摊处理。负载可以是内需均衡的应用程序处理负荷或网络流量负载。在系统中,每个节点都得以处理局部载荷,并且能够在节点之间动态分配负载,以促成平衡。对于网络流量也是这样。
高可用性集群(High availability cluster,HAC)
它是接纳集群中系统
的冗余,当系统中某台机械发出损坏的时候,其他后备的机器可以迅速的接班它来启动服务,等待故障机的维修和再次来到。最大限度的保险集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的小圈子具有广大的应用。
高可用性群集的产出是为着使群集的完全服务尽可能可用。尽管高可用性群集中的主节点暴发了故障,那么这段时日内将由次节点代替它。次节点平常是主节点的镜像,所以当它代替主节点时,它可以完全接管其身份,对用户没有其它影响。
在群集的这三种基本类型之间,平日会生出交叉、混合。比如:在高可用性的群集系统中也得以在其节点之间实现负载均衡,同时依然维持着其高可用性。

echo “node$m is not
running…”

3、分布式是指将不同的工作遍布在不同的地点。
而集群指的是将几台服务器集中在同步,实现平等业务。
分布式中的每一个节点,都可以做集群。
而集群并不一定就是分布式的。
比喻:就比如天涯论坛网,访问的人多了,他可以做一个群集,后边放一个响应服务器,后边几台服务器完成同样业务,假设有业务访问的时候,响应服务器看哪台服务器的负荷不是很重,就将给哪一台去做到。
而分布式,从窄意上了解,也跟集群差不多,
然而它的团队相比较松散,不像集群,有一个协会性,一台服务器垮了,另外的服务器可以顶上来。
分布式的每一个节点,都完成不同的事务,一个节点垮了,哪这么些工作就不得访问了。

fi

    echo

echo “/_/  \____/_/
/_/ /_/\___/\__,_/\__/    “

;;

澳门美高梅手机网站 1

澳门美高梅手机网站 2

;;

添加到劳动之后,
就可以这么以服务章程来启动和终止、重启tomcat实例了。如下:

澳门美高梅手机网站 3

echo ”  / / / __ \/
__  __ \/ ___/ __  / __/  “

澳门美高梅手机网站 4

    tomcats=”1″

#define stop
function

;;

tree -L 1
./node1

echo “node$m
starting,Please wait 2s…”

done

   tomcatstatus

#概念tomcat的开行情势,启动格局为tomcat.sh
p1 start类似的吩咐

PS:这次试验的测试OS为centos6.5
64bit,可是shell脚本也得以在ubuntu下使用。

3.1
新建ilanni.sh脚本

专注:该shell脚本只可以依据node1、node2、node3、node4等各类执行下去,不可能独立的终止和开行tomcat实例,除node1外。

三、创建shell脚本

./ilanni.sh p3
stop

exit 1

闭馆命令:

./ilanni.sh all
stop

3.2
修改ilanni.sh文件权限

./ilanni.sh all
status

do

澳门美高梅手机网站 5

#!/bin/bash

    “start”)

  run_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom_home}”)

澳门美高梅手机网站 6

不过为了更有益的治本这4个tomcat,我这边做了两地方的行事,一是把装有的tomcat工作目录都针对其它单独的一个目录下,二是透过shell来启动、关闭和重启tomcat。

for j in $tomcats

为了操作更有益于,我们可以把ilanni.sh这一个剧本参加到系统服务中。具体操作方法如下:

 
tom_home=”$tom$i”

#概念启动脚本路径

澳门美高梅手机网站 7

#概念五个tomcat的总目录,/app/tomcat目录下有node1、node2、node3、node4
多少个tomcat实例。

${tom_home}/${startup_bin}
&>$dev

tomcatrestart() {

# chkconfig: 345 10
10

./ilanni.sh all
start

sleep 2

echo “node$j is not
running…”

#judge $1 $2 whether
null

tomcatstatus() {

;;

上述大家是以启动多少个tomcat实例为例的,假诺开行或者关闭是一个、多少个以及所有tomcat实例的话,我们可以利用如下命令。

   “restart”)

    tomcatstop

;;

有关tomcat的单机多实例,可以看我的下一篇随笔《烂泥:学习tomcat之tomcat单机多实例》。

    “stop”)

case $1 in

查看情状命令:

mkdir -p
/app/tomcat/apiwebapps

if [ “${run3_status}X”
== “X” ];then

ilanni.sh权限修改完毕之后,大家就足以来启动这4个tomcat实例了。比如现在想启动node1和node2这六个实例,我们可以通过以下命令来启动。

为了不一个一个独门的护卫tomcat实例,首先大家来修改tomcat实例的办事目录。所有的tomcat配置文件位于conf目录下的server.xml文件。

#define start
function

     echo “Usage: $0
$usage”

done

chkconfig
–list |grep ilanni

  do

    tomcatstart

#概念怎么样启动tomcat,在此大家是经过个数tomcat以及前边定义的tomcat的一声令下,来操作tomcat

esac

chkconfig
–add /etc/init.d/ilanni

近期我们可以查阅node1为例,查看该tomcat实例的目录结构,如下:

只顾:这4个tomcat所监听的端口是例外的,否则不可能启动tomcat。

fi

echo “node$m
starting,Please wait 2s…”

sleep 2

到此有关通过shell批量管理tomcat的稿子就截止了。

export
JAVA_HOME=/usr/local/java/jdk1.7.0_80

tomcatstart() {

澳门美高梅手机网站 8

当今本身是把4个tomcat实例都放到/app/tomcat目录下,
这4个tomcat实例目录名称分别为node1、node2、node3、node4。
可以观望这4个tomcat实例的命名规则为node${i}。现在先导编制shell脚本。

echo “node$j
stopping,Please wait 1s…”

chkconfig
ilanni on

echo “node$m
stopping,Please wait 2s…”

   “p2”)

tom=”/app/tomcat/node”

./ilanni.sh p3
status

;;

   *)

if [ “$1” == “” -o “$2”
== “” ];then

for n in $tomcats

ilanni.sh脚本成立完毕后,现在大家来修改ilanni.sh的实施权限。如下:

}

esac

我们只需要修改server.xml文件的appBase配置项,这样就可以指定tomcat实例的办事目录。如下:

./ilanni.sh p2
stop

echo “node$n is not
running…”

else

;;

if [ “${run2_status}X”
== “X” ];then

四、启动与关闭tomcat

run2_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom2_home}”)

五、把ilanni脚本出席连串服务

sleep 1

case $2 in

澳门美高梅手机网站 9

echo ” / / / /_/ / / / /
/ / /__/ /_/ / /_    “

查阅是否已添加进服务列表

   *)

   “p1”)

tomcat启动后,要是要适可而止的话,我们得以接纳如下命令:

    tomcats=”1 2″

echo
”                                        “

新建一个shell文件命名为
ilanni.sh,内容如下:

if [ “${run_status}X” !=
“X” ];then

    tomcats=”1 2 3
4″

echo “node$n is
running”

./ilanni.sh p3
start

./ilanni.sh p2
start

#定义tomcat的状态

tomcatstop() {

sleep 1

理所当然相应的闭馆、重启和查阅状况命令,分别如下。

echo ” 
______                           __   “

   “status”)

tom2_home=”$tom$m”

当下一台服务器上,部署了4个tomcat,也就一定于4个节点。日常在保安工作时,需要我们一个一个tomcat实例举行独立的维护,感觉很不便于,所以就有了这篇作品。

#定义JAVA_HOME

;;

else

上述修改完毕后,我们需要创立/app/tomcat/apiwebapps目录。

echo ” /_  __/___ 
____ ___  _________ _/ /_  “

for i in $tomcats

#define restart
function

echo “node$i
starting,Please wait 2s…”

do

正文由ilanniweb提供友情赞助,首发于烂泥行天下

#澳门美高梅手机网站, description: Apache
Tomcat daemon

#定义tomcat的关闭

澳门美高梅手机网站 10

   echo “Usage: $0
$usage”

fi

startup_bin=”bin/startup.sh”

fi

./ilanni.sh p1
start

for m in $tomcats

./ilanni.sh p1
stop

   tomcatrestart

二、修改tomcat工作目录

dev=”/dev/null”

${tom2_home}/${startup_bin}
&>$dev

/etc/init.d/ilanni
p2 status

透过上图,我们可以出,ilanni.sh脚本已经就投入到系统服务之中了。

if [ “${tomcat_pid}X” ==
“X” ];then

商厦的事务是拔取tomcat做web容器,为了更实用的拔取服务器的特性,我们一般配备六个tomcat做事情的负荷均衡。

./ilanni.sh p1
status

想要得到更多的篇章,可以关注自身的微信ilanniweb

;;

   “all”)

echo “delte node$j
cache,Please wait 1s…”

tom1_home=”$tom$j”

经过上图,我们能够看来,我们早已把实例node1、node2停掉了,而且我们也删除了实例node1、node2的缓存。

else

澳门美高梅手机网站 11

;;

tomcat_pid=$(ps -ef |
grep ${tom1_home} | grep “org.apache.catalina.startup.Bootstrap start”
| awk ‘{printf $2}’)

sleep 2

tom3_home=”$tom$n”

/etc/init.d/ilanni
p2 start

usage=”{p1|p2|p3|all}
{start|stop|restart|status}”

}

}

    echo

透过上图,可以很醒目的观察实例node1、node2已经启动了。

大家需要把每一个tomcat实例server.xml配置文件的appBase配置项,修改为/app/tomcat/apiwebapps。

echo “node$i is already
running…”

do

}

   “p3”)

fi

tree -L 3
/app/

#定义tomcat的重启

${tom2_home}/${startup_bin}
&>$dev

chmod +x
ilanni.sh

kill -9 ${tomcat_pid} &
>$dev

澳门美高梅手机网站 12

一、业务需要

#judge $2

澳门美高梅手机网站 13

# processname:
tomcat

done

#定义tomcat的启动

ps -ef | grep
${tom2_home} | grep “org.apache.catalina.startup.Bootstrap start” | awk
‘{printf $2}’| xargs kill -9 >$dev

else

#define status
function

#judge $1

run3_status=$(ps -ef |
grep -v ‘grep’ | egrep “java.*=${tom3_home}”)

   echo “Usage: $0
$usage”

cp
ilanni.sh /etc/init.d/ilanni

发表评论

电子邮件地址不会被公开。 必填项已用*标注