如何搭建一个集群项目
一、集群项目是什么?
搭建项目之前首先要明白什么样的项目才叫集群项目,那么什么叫集群呢?说的简单一点,集群就是很多对象集合在一起,集群项目就是很多一摸一样的项目放在一起运行嘛。
二、集群项目有什么用?
琦三叔搭建的项目比较简单用到的技术主要为如下几种:
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是一个缓存服务器,主要用在linux上,不过有人也做了window上的版本,网上下载windows上的版本,解压完后有以下内容
然后在dos界面中切换到redis目录中,然后执行
Redis-server.exe redis.windows.conf就开启了如下所示,简单吧!注意这个要一直开着,一旦关闭redis服务就关闭了
测试一下,再开启一个dos窗口输入以下命令
它的意思是往redis中填充age,然后再获取填充值,OK了
四、web应用
因为是集群,所以在web系统中需要做缓存的内容统统往redis中存,然后要取的时候也从redis中取出来就可以了,也可以用session同步,因为开发语言太多了,怎么开发一个web应用暂不介绍,只要搭建完上述几个内容基本已经有一个初步的成型了。
原文地址:https://blog.csdn.net/yongshuai185/article/details/89455760
如何搭建一个集群项目相关推荐
- 利用云服务器搭建hadoop集群
利用云服务器搭建hadoop集群 测试连接 一. Linux配置 二. 3台服务器免密码登录 1. 三台机器生成公钥与私钥: 2. 拷贝公钥到同一台机器 3. 复制第一台机器的认证到其他机器 4. 通 ...
- elasticsearch系列八:ES 集群管理(集群规划、集群搭建、集群管理)
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- ES集群规划、集群搭建、集群管理
一.集群规划 搭建一个集群我们需要考虑如下几个问题: 1. 我们需要多大规模的集群? 2. 集群中的节点角色如何分配? 3. 如何避免脑裂问题? 4. 索引应该设置多少个分片? 5. 分片应该设置几个 ...
- 从零开始搭建Redis 集群 ,三主三从模式
文章引用 https://www.cnblogs.com/mafly/p/redis_cluster.html Redis 集群简介 Redis 是一个开源的 key-value 存储系统,由于出众的 ...
- 一把王者的时间就写完了一个nginx的web集群项目
构建一个基于nginx的web集群项目 一.什么是负载均衡? 二.为什么需要负载均衡? 1.编译安装nginx 2.解决软件的依赖关系,需要安装的软件包 3.新建luogan用户和组 4.下载ngin ...
- spring cloud多模块项目框架搭建-Redis-Cluster集群搭建及系统集成
第九章 Redis-Cluster集群搭建及系统集成 本系列博客旨在搭建一套能用于实际开发使用的spring cloud多模块微服务项目框架,并不是一个spring cloud的demo而已,提供系统 ...
- 搭建K8S-web-MySQL-keepalived 负载均衡集群项目
搭建K8S-web-MySQL-keepalived 负载均衡集群项目 部署目录 搭建K8S-web-MySQL-keepalived 负载均衡集群项目 总体架构图 安装MySQL 下载MySQL镜像 ...
- 【Elasticsearch】从零开始搭建ES8集群并且集成到Springboot,更好的服务电商类等需要全文索引的项目(二)
从零开始搭建Elasticsearch集群(二) 从零开始搭建Elasticsearch集群(二) 为什么使用IK分词器 安装IK分词器到ES的插件库中 安装kibana可视化平台 1.下载 2.配置 ...
- hadoop集群_Ambari搭建hadoop集群
Ambari搭建hadoop集群 Ambari提供了对Hadoop更加方便快捷的管理功能,主要包含: 通过一步一步的安装向导简化了集群供应. 预先配置好关键的运维指标(metrics),可以直接查看H ...
最新文章
- mysql 不同的文件系统_文件系统,数据库管理系统,操作系统之间有什么联系?...
- 使用 C#/.NET Core 实现单体设计模式
- 算法------------ 最长公共前缀
- dtree的使用和扩展
- Qt的Oracle数据库QOCI驱动问题
- 【GIT 基础篇二】创建版本库与提交
- HashMap的put方法讲解
- 《01》ECMAScript 6 简介
- redis中list类型详解及常用命令
- Dubbo管理控制台dubbo-admin搭建
- 中小学计算机中级班教学目标,计算机中级考试教学目标
- zabbix 自定义监控
- interpretable machine learning
- 兼容PD和QC快充充电器输入单节锂电池2A充电芯片-2号电路板
- 费用分摊分配用法(KSU5/KSV5/KB21N/KB11N)
- 编码转换参考范例大全
- EasyUI的Vue版本
- 提高机器学习模型性能的五个关键方法
- 我只是穴居人-克拉克/惠勒定律的汉塞尔曼推论
- 动态规划算法思想解决找零钱问题