如何搭建一个集群项目

一、集群项目是什么?

搭建项目之前首先要明白什么样的项目才叫集群项目,那么什么叫集群呢?说的简单一点,集群就是很多对象集合在一起,集群项目就是很多一摸一样的项目放在一起运行嘛。

二、集群项目有什么用?

当一个系统使用的用户比较少时,对服务器的压力比较小,这个时候也不需要什么集群,但当系统的用户量很多时而且在同一时间进行并发,那么系统、服务器可能就承受不了这个压力直接崩溃,也有可能某个系统由于某种原因而崩溃了,这个时候就需要有集群或热备,集群的效果是当其中有一个应用系统崩溃了其他的应用系统还在启动着,不影响客户体验,它的作用是分摊应用系统的压力,如果服务器内存不够了那么要添加其他服务器来分摊压力。

三、怎么快速搭建一个集群项目?

琦三叔搭建的项目比较简单用到的技术主要为如下几种:

nginx、tomcat、redis、web项目

nginx:一个很强大的高性能Web和反向代理服务器,说简单点就是将用户发起的url重定向到自己的特定端口项目中,浏览器默认是80端口,通过nginx就可以转到其他端口的项目,如80端口转到88端口,这个nginx也是集群的关键,通过它才能让多个相同的项目同时运行。

tomcat:这个众所周知是一个应用系统容器,只有它开启了才能访问到它里面的项目

redis:缓存服务器,它的功能特别强大,在这里用到的是作为多个项目之间的缓存共享,因为是集群所以可能在某个项目里面的内容无法分享到其他项目中,所以用它来同步缓存

web项目:这个就是要访问的系统项目了。

好了,大致的都介绍完了,那么准备开始搭建系统了

1)、tomcat搭建

集群就是多个tomcat同时运行 

第一步:首先从网上下载tomcat,在系统上无法直接运行必须先安装jdk才行(自己百度),先将tomcat复制成多个如下所示:

 

第二步:修改配置文件,让多个tomcat可以同时运行,因为现在这些tomcat除了名字不一样其他是完全一样的,所用端口也是一摸一样的,所以开启一个后其他的就开启不了了,打开tomcat目录下conf目录下的server.xml文件,修改以下端口:

以此类推,每个tomcat都配置成不一样的端口,查看下配置是否正确,打开tomcat目录下bin目录下的startup.bat,如下就是正常开启一个tomcat:

把其他tomcat也一起开起来,如果有闪退的那么代表配置有问题,需要改。

现在tomcat都能正常启动了,但那么多dos窗口放在桌面分都分不清楚,所以现在要把tomcat服务化,不再通过startup.bat开启。

打开tomcat目录下bin目录下的service.bat找到下面这行

set SERVICE_NAME=Tomcat7

然后将名字替换成改文件夹名字,如下图:

直接全部替换就行,然后将tomcat目录下bin目录下的tomcat7.exe和tomcat7w.exe改名字也改成刚才的名字

接着打开dos界面切换到tomcat的bin目录文件夹中

然后输入service.bat install 即可。

以此方法将所有tomcat全部服务化,查看是否服务化了直接打开服务界面看是否存在这些服务就好了

默认这些tomcat是没有开启的,那么现在要开启tomcat,打开tomcat目录下bin目录下的tomcat7w.exe

如果开启tomcat开启不了,那么打开tomcat目录下logs文件夹中的日志文件,查看报错原因,琦三叔当时的报错原因是内存不足了,开启不了tomcat所以在tomcat7w.exe中修改了下内存优化如下图:

事后如果想把tomcat7服务删掉 直接在dos界面输入以下代码即可:

tomcat搭建完成了,现在开始搭建nginx

先网上下载nginx,然后直接运行nginx.exe即可

在浏览器中输入localhost跳转到nginx的界面代表正常运行了,那么就要开始进行配置,打开nginx目录下的conf目录中的nginx.conf文件,修改成如下配置:

PS:

#upstream表示负载服务器池,定义名字为backend_server的服务器池
upstream backend_server {
    server   10.254.244.20:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.242.40:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.245.19:81 weight=1 max_fails=2 fail_timeout=30s;
    server   10.254.243.39:81 weight=1 max_fails=2 fail_timeout=30s;
  #设置由 fail_timeout 定义的时间段内连接该主机的失败次数,以此来断定 fail_timeout 定义的时间段内该主机是否可用。默认情况下这个数值设置为 1。零值的话禁用这个数量的尝试。

设置在指定时间内连接到主机的失败次数,超过该次数该主机被认为不可用。

#这里是在30s内尝试2次失败即认为主机不可用!
  }

如果仅仅只是进行端口转发而不是进行集群那么修改成这样(只需在原来的server外面添加新的server)

这样是根据不同的网址转发到不同的端口,此例中不需要。

对了上面的配置文件中www.aaa.com;并不是随便乱写的,这个网址必须指到本地,想要让它指到本地那就要做另一个操作,那就是修改hosts文件,在文件最底部添加一个代码

127.0.0.1     www.aaa.com

然后打开dos界面输入 ping www.aaa.com 

现在测试一下是否成功了

先开启所有tomcat服务,然后开启nginx,接着在网页上输入www.aaa.com显示如下,则代表成功了

接着上一篇写,搭建redis

Redis是一个缓存服务器,主要用在linux上,不过有人也做了window上的版本,网上下载windows上的版本,解压完后有以下内容

然后在dos界面中切换到redis目录中,然后执行

Redis-server.exe redis.windows.conf就开启了如下所示,简单吧!注意这个要一直开着,一旦关闭redis服务就关闭了

测试一下,再开启一个dos窗口输入以下命令

它的意思是往redis中填充age,然后再获取填充值,OK了

四、web应用

因为是集群,所以在web系统中需要做缓存的内容统统往redis中存,然后要取的时候也从redis中取出来就可以了,也可以用session同步,因为开发语言太多了,怎么开发一个web应用暂不介绍,只要搭建完上述几个内容基本已经有一个初步的成型了。