项目笔记8

项目发布与总结

image.png

独立性:不是一次性执行。要经常执行。
@BeforeCLass 在类初始化之前。执行一次
@Before调用任何方法之前都执行一次

@Before @After可以用来插入测试数据和删除测试数据
用Assert类,方法有assertNotNUll,assertEquals,
判断小数想不想等,需要再加个近似值,数字表示精度,也就是小数的位数。

image.png

项目监控

image.png

springboot手册里有所有端点。
导入包,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

  1. maven放/opt下配置。
tar -zvxf tar.gz -C /opt
/etc/profile   export PATH=$PATH:maven/bin
source /etc/profile
echo $PATH

配置镜像

  1. 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''; 
  1. 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
  1. 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 &
  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"
  1. 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
  1. 安装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;
        }
}

  1. 部署打包
    我们把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的代码删除
修改成

image.png

spring.profiles.active就表示配置文件激活的目标

然后我们要修改配置代码,尤其是本地路径,以及虚拟路径,日志文件放到/tmp/log下,以及要把wkhtmltoimage执行代码修改,因为我们把命令配置成了脚本


image.png

你可能感兴趣的:(项目笔记8)