安装redis 步骤 请一直往下翻
给所有窗口发相同命令:
xshell-----查看—撰写----撰写窗格
一:准备工作(提供nginx实现项目服务器集群统一入口)
1 :查看所有主机的ip
2 :修改项目 baseUrl 写出nginx的路径
3 : idea运行clean 再打包:package
4 :进入target目录 剪切项目到桌面 重命名为maven_cloud4.war
5:关闭nginx和所有的tomcat
6:清除tomcat的webapps下的maven_cloud4.war文件和maven_cloud4文件夹
7:拷贝新的maven_cloud4.war到所有tomcat的webapps下
8:在/etc/nginx/conf.d中配置cloud.conf中配置集群名字和server
9:开启所有的tomcat
10: 在xshel中开启tomcat的控制台
>>进入/usr/local/tomcat/logs
>>输入命令:tail -f catalina.out
11:开启nginx
12:访问项目:/masterip:80/mc4
解决session共享问题:(同一个入口:但处理请求的服务器不同:session是保存在服务器端的 虽然是一个回话 但session不同)
方案1: 指定ip与server的对应关系:某个ip只能请求固定的server
不可靠:一单某个server宕机 对应的ip就无法请求
方案2: 把所有服务器上的session进行统一管理
只要有一个server活着 项目就能运行
怎么保存这些session呢?
》文件:io流读写 数据进行解析
》数据库:进行jdbc连接和sql语句
》内存: 获取内存地址即可 :效率高 贵
实现内存中session共享 提供redis:key-value型的内存数据库
用ANSI C语言编写、可基于内存亦可持久化的日志型、Key-Value数据库
关系型数据库:用二维表来存储数据
Key-value型数据:nosql:not only sql
使用:类似于map 提供set或者put进行存储 提供get进行获取
linux上 如何安装 redis?
1:上传压缩包到master的 /root下
2:解压缩到/root的目录下
>> tar -zxvf redis-5.0.4.tar.gz
3:安装redis编译依赖的软件:gcc-c++ 和tcl
>> yum install -y gcc-c++
yum install -y tcl
4:编译:进入redis的解压缩后的文件夹redis-5.0.4中 执行命令 make
>> cd /root/ redis-5.0.4
>> make
5:检查环境:在redis-5.0.4目录下 执行命令 make test(使用时间比较长)
>> make test
6:创建文件夹: /usr/local/redis
>>mkdir /usr/local/redis
7:安装: 在解压缩的redis-5.0.4目录下 输入make PREFIX=/usr/local/reis install
把redis安装到指定目录/usr/local/reis下
>>make PREFIX=/usr/local/reis install
8:检查是否安装成功:
进入/usr/local/reis/bin 查看
9:复制配置文件: 把/root/redis-5.0.4目录下的redis.conf 复制到 /usr/local/reis/bin目录下
>> cp /root/redis-5.0.4/redis.conf /usr/local/redis/bin
10: 编辑 /usr/local/redis/bin/redis.conf
>> vim /usr/local/redis/bin/redis.conf
>> : set number显示行号
>>进入编辑模式 注释:69行
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190720210658575.png)
二:启动reids:
1:启动redis的服务器端
1.1 进入/usr/local/redis/bin下
1.2 执行命令 ./redis-server
1.3 此窗口不要关闭:
关闭reids:ctrl+c即可
2:启动客户端:
2.1 进入 /usr/local/redis/bin下
2.2 执行命令
>>./redis-cli
2.3设置远程访问密码(一次性设置密码)
>>config set requirepass xxxxx
2.4 (永久性设置密码) 参考https://www.cnblogs.com/heqiuyong/p/10468109.html
修改配置文件
>> vim /usr/local/redis/bin/redis.conf
重启redis服务
新建一个重新打开redis的客户端
三:更改项目 提供reids实现session共享 :参考https://www.cnblogs.com/jiafuwei/p/6425604.html
1 :修改实体类 所有的实体类实现序列化即可serializable接口
2: 引入依赖
每句的开头少了一个 < 哦,自己添加上去
dependency>
groupId>redis.clients
artifactId>jedis
version>2.7.2
/dependency>
dependency>
groupId>org.springframework.session
artifactId>spring-session-data-redis
version>1.2.2.RELEASE
/dependency>
3: 修改spring的核心配置文件:spring-mybatis.xml
bean id=“poolConfig” class=“redis.clients.jedis.JedisPoolConfig”>
property name=“maxIdle” value=“300”/>
property name=“maxWaitMillis” value=“1000”/>
property name=“testOnBorrow” value=“true”/>
/bean>
!-- 添加RedisHttpSessionConfiguration用于session共享–>
bean class=“org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration”/>
bean id=“jedisConnectionFactory” class=“org.springframework.data.redis.connection.jedis.JedisConnectionFactory”>
property name=“hostName” value=“192.168.198.131”/>
property name=“port” value=“6379”/>
property name=“password” value=“123456”/>
property name=“poolConfig” ref=“poolConfig”/>
property name=“usePool” value=“true”/>
property name=“database” value=“1”/>
property name=“timeout” value=“3000”/>
/bean>
4:修改web.xml文件:在所有的过滤器之前加一个redis过滤器
!–配置session共享过滤器–>
filter>
filter-name>springSessionRepositoryFilter
filter-class>org.springframework.web.filter.DelegatingFilterProxy
/filter>
filter-mapping>
filter-name>springSessionRepositoryFilter
url-pattern>/*
/filter-mapping
5 重新打包:重新部署 开启 发布
0 reids的服务器必须开启 并且远程访问密码必须设置成功!
1 idea—clean—package
2 剪切 重命名
3 关闭nginx 和三个tomcat
4 删除tomcat/webapps下的maven_cloud4和maven_cloud4.war
5 上传maven_cloud4.war到webapps下
6 开启三个tomcat
7 测试浏览器访问 :8080/maven_cloud4
8 开启nginx
9 浏览器访问: 80/mc4 登陆成功 ok
Nginx:作用
1 反向代理:为服务器集群提供一个统一的入口
2 负载均衡:将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行(服务器配置与处理请求的个数成正比)
3 动静分离:动态(action jsp servlet)和静态分离(html js css img )放在不同的服务器上
Nginx自带三种负载均衡的方案:
参考:https://www.cnblogs.com/cnsanshao/p/8480019.html
https://blog.csdn.net/x1021333506/article/details/80975462
轮询: 把请求按顺序交给不同的服务器(默认)
ip_hash: 一个ip对应一个服务器
权重: 提供配置来指定每个服务器执行的请求比例
修改nginx的配置文件:vim /etc/nginx/conf.d/cloud.conf
第三方方案
>urlhash
>fair
动静分离:>把静态放在一个独立的服务器上
>提供nginx动静分离:只在master上存放静态资源
实现动静分离:
1 把项目中所有的静态资源放入文件夹/mc4下 并上传到master的 /usr/share/nginx文件夹下
2 项目重新打包
3 修改nginx的配置文件 /etc/nginx/conf.d/cloud.conf: (静态资源直接从/usr/share/nginx下拿)
location ~ .*.(html|css|js)$
{
root /usr/share/nginx;
}
4 重新发布项目 重新开启nginx