项目笔记8
项目发布与总结
image.png独立性:不是一次性执行。要经常执行。
@BeforeCLass 在类初始化之前。执行一次
@Before调用任何方法之前都执行一次
@Before @After可以用来插入测试数据和删除测试数据
用Assert类,方法有assertNotNUll
,assertEquals
,
判断小数想不想等,需要再加个近似值,数字表示精度,也就是小数的位数。
项目监控
image.pngspringboot手册里有所有端点。
导入包,spring boot actuator start。有一个端点默认是禁用的,关闭服务器。
默认只暴露两个端点,/actuator/info /actuator/health
include 暴露的端点,exclude,排除的端点。
image.png
/acutator/loggers.
自定义端点。
@ReadOperation //get请求访问
@WriteOperation//POST请求访问
image.png
/acturator/database
要做权限管理:
把路径分配给管理員即可。
项目部署
image.png真实环境可以部署多个实例,得需要好几台服务器。
maven3.6.1
https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/
1.安装java
- maven放/opt下配置。
tar -zvxf tar.gz -C /opt
/etc/profile export PATH=$PATH:maven/bin
source /etc/profile
echo $PATH
配置镜像
- mysql安装
https://www.cnblogs.com/Twobox/p/9925460.html
下载这个版本的安装包,剩下的参考上面连接教程。该卸载的卸载,该安装的安装
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar
启动服务
service mysqld start
# systemctl start mysqld
# systemctl status mysqld
grep 'pawword' /var/log/mysqld.log //查找密码
mysql -uroot -p
alter user root@localhost identified by '密码'//大写字母特殊符号。
//重新登录
导入数据
create database community
use community
source /root/init-sql/init_schema.sql
source /root/init-sql/init_data.sql
source /root/init-sql/tables_mysql_innodb.sql
# 修改user表下的headerurl
update user set ... like'';
- redis安装
yum list redis*
yum install redis
vim /etc/redis.conf
# 找到redis.conf 并修改 daemonize no 为 daemonize yes ,这样就可以默认启动就后台运行
redis-server /etc/redis.conf
systemctl start redis
systemctl staus redis
redis-cli
- kafka安装
linux临时文件都放到/tmp
默认配置就可以
后台启动方式
bin/ zookeeper-server-stasrt.sh -daemon config/zookeeper.properties
nohup bin/kafka-server-start.sh config/server.properties 1>/dev/null 2>&1 &
- elasticSearch安装
修改elasticsearch.yml下的路径
修改jvm.options 的内存
-Xms256m
-Xmx512m
es不允许用root用户启动,只能用普通用户启动
创建用户组和用户
groupadd nowcoder
useradd nocoder1 -p 123456 -g nowcoder
赋予用户目录权限
cd /opt/
chown -R nowcoder1:nowcoder *
cd /tmp/
chown -R nowcoder1:nowcoder
切换用户开启es
su - nowcoder1
bin/eskasticsearch -d
切换回root测试es是否启动
curl -X GET "localhost:9200/_cat/health?v"
- wkhtmltoImage
yum install wkhtmltopdf
装一个虚拟gui,因为我们的服务器没有界面壳子,这样就不能解析html生成图片了
yum list *xvfb*
yum install xorg-x11-server-Xvfb.x86_64
执行命令
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage https://www.baidu.com 1.png
因为太麻烦所以写个脚本
cd /opt
vim wkhtmltoimage.sh
#下面是脚本的内容
xvfb-run --server-args="-screen 0, 1024x768x24" wkhtmltoimage "$@"
# 然后赋予权限
chmod a+x wkhtmltoimage.sh
测试
/opt/wkhtmltoimage.sh https://www.baidu.com 2.png
- 安装tomcat
配置环境变量
启动试试
startup.sh
解决端口无法访问的问题,是因为阿里安全组
https://www.jianshu.com/p/087774e1cc22
启动比较慢 ,如果启动失败去log下看看catalina.out
cat catalina.out
发现端口被占用,kill掉占用的程序
netstat -alnp | grep 8005
image.png
kill -9 3258
9.配置nginx
配置一共有几个tomcat,再配个虚拟服务器把请求分发给tomcat
真实服务器配置
本机tomcat, fials=3三次请求失败就移除服务器集合里。移除后过30s再看看
image.png
upstream myserver{
server 127.0.0.1:8088 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name [ip或者域名];
location / {
proxy_pass http://myserver;
}
}
- 部署打包
我们把ROOT包删掉,然后把我们的打包成ROOT.war包
还要把/ 路径 转发到/index下,这样就可以不用输入index路径了。然后把路径改成空,也就不用写community路径了,然后是修改数据库连接,在最后要补上&allowPublicKeyRetrieval=true不然会报公钥不允许的错误
pring.datasource.url=jdbc:mysql://localhost:3306/community?characterEncoding=utf-8&useSSL=false&serverTimezone=Hongkong&allowPublicKeyRetrieval=true
然后配置打包方式以及打包名
image.png
image.png
还有我们直到tomcat也是java程序,所以它有main方法一个程序不能有两个main方法,所以我们新建一个类。要继承一个父类,SpringBootServletInitailizer。重写方法,并发编译运行源指定我们的原来的程序入口。
image.png
springboot支持多配置文件可以在开发,上线,测试用不同的配置文件。方法是,为配置文件重新命名develop就是开发,produce就是生产用的,一定注意格式,是在后面添加-xxx
image.png
然后我们把application.properties的代码删除
修改成
spring.profiles.active
就表示配置文件激活的目标
然后我们要修改配置代码,尤其是本地路径,以及虚拟路径,日志文件放到/tmp/log下,以及要把wkhtmltoimage执行代码修改,因为我们把命令配置成了脚本
image.png