开放平台README.MD

时间:2022-06-13 16:17:21
FAQ:
1、Swagger页面访问路径
http://localhost:8080/swagger-ui.html
2、Mybatis自动生成的映射文件
      查询text类型的字段信息时,使用主键查询,或者单独使用withBlobs查询
      插入和更新都包含
3、测试环境服务启动:nohup java -jar openplatform-0.0.1-SNAPSHOT.jar &
              nohup //不挂断运行命令  输出一般重定向到当前目录下的nohup.out文件中
              $ //在后台运行命令
4、脚本启动服务
./server.sh stop|start
5、redis-cli连接测试环境redis服务
在命令目录下进入到cmd执行该命令连接测试环境的redis服务redis-cli -h 10.0.0.112 -p 6379 -a crs-pf25dj24:Jt3d#%^5Ed
redis-cli> config set notify-keyspace-events Egx
redis服务配置完成后,需要在代码中添加spring session对redis的自动配置信息NO_OP
不然服务启动还是报错
6、后台管理系统页面登录地址
http://10.0.0.222:8284/#/
7、使用日志框架的日志文件,去除nohup的日志输出
nohup java -jar openplatform-back-0.0.1-SNAPSHOT.jar >> /dev/null  &
8、日志相关的配置信息
如果你的终端支持ANSI,设置彩色输出会让日志更具可读性。通过在application.properties中设置spring.output.ansi.enabled参数来支持。
NEVER:禁用ANSI-colored输出(默认项)
DETECT:会检查终端是否支持ANSI,是的话就采用彩色输出(推荐项)
ALWAYS:总是使用ANSI-colored格式输出,若终端不支持的时候,会有很多干扰信息,不推荐使用
9、测试环境启动nginx
           cd  /usr/local/nginx/conf
           /usr/local/nginx/sbin/nginx -启动服务
           /usr/local/nginx/sbin/nginx -s stop -停止服务
           /usr/local/nginx/sbin/nginx -h 命令帮助
           /usr/local/nginx/sbin/nginx -t 验证配置文件
            vim /usr/local/nginx/conf/nginx.conf nginx的配置文件
10、日志文件打印修改,调整到logs目录下,原来的日志文件不在做日志信息记录
  nohup命令的标准输出导向/dev/null,不做保存。
     单个日志文件最大在10Mb,超出后会自动切换文件名称    
11、du -sh查看日志文件大小
12、nginx日志
log_format格式变量:
    $remote_addr  #记录访问网站的客户端地址
    $remote_user  #远程客户端用户名
    $time_local  #记录访问时间与时区
    $request  #用户的http请求起始行信息
    $status  #http状态码,记录请求返回的状态码,例如:200、301、404等
    $body_bytes_sent  #服务器发送给客户端的响应body字节数
    $http_referer  #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。
    $http_user_agent  #记录客户端访问信息,例如:浏览器、手机客户端等
    $http_x_forwarded_for  #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置
13、虚拟机启动参数添加--简单介绍
-Djava.awt.headless=true
在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主机)。 一般是在程序开始激活headless模式,告诉程序,现在你要工作在Headless mo ...
-Djava.net.preferIPv4Stack=true
让程序只支持IPV4的使用

##debug模式启动
-XDebug               启用调试。
-Xnoagent             禁用默认sun.tools.debug调试器。
-Djava.compiler=NONE  禁止 JIT 编译器的加载。
-Xrunjdwp             加载JDWP的JPDA参考执行实例
dt_socket             套接字传输。
dt_shmem              共享内存传输,仅限于 Windows。
server=y/n            VM 是否需要作为调试服务器执行。
address=3999          调试服务器的端口号,客户端用来连接服务器的端口号。
suspend=y/n           是否在调试客户端建立连接之后启动 VM 。


##jmx模式启动
-Dcom.sun.management.jmxremote.port=1099 开放端口
-Dcom.sun.management.jmxremote.ssl=false  
JMX的SSL连接打开
-Dcom.sun.management.jmxremote.authenticate=false
不做权限验证

整个堆大小=年轻代+年老代+持久代
正常的管理参数
-server 
-Xmx2g --最大可用内存
-Xms2g --初始化堆大小
-Xmn256m --newSize
持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8
-XX:PermSize=128m 
-Xss256k 
设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。
-XX:+DisableExplicitGC  禁止调用System.gc();但jvm的gc仍然有效
-XX:+UseConcMarkSweepGC  对老生代采用并发标记交换算法进行GC
-XX:+CMSParallelRemarkEnabled  是否启用并行
-XX:+UseCMSCompactAtFullCollection  打开对年老代的压缩。可能会影响性能,但是可以消除碎片
-XX:LargePageSizeInBytes=128m  设置用于Java堆的大页面尺寸
-XX:+UseFastAccessorMethods  优化原始类型的getter方法性能
-XX:+UseCMSInitiatingOccupancyOnly
CMS有动态检查机制。
CMS会根据历史记录,预测老年代还需要多久填满及进行一次回收所需要的时间。
在老年代空间用完之前,CMS可以根据自己的预测自动执行垃圾回收。
这个特性可以使用参数UseCMSInitiatingOccupancyOnly来关闭。

-XX:CMSInitiatingOccupancyFraction=70  CMS生成占用百分比以启动CMS收集周期

-是标准参数,所有的vm实现都必须是实现这些参数的功能,而且向后
-X是非标准参数,默认所有jvm实现这些参数,但是并不保证所有的jvm实现都满足,且不保证向后兼容
-XX非Stable参数,此类参数各个jvm实现会有所不同,将来可能会随时取消

14、跨服务器拷贝文件
                                                                          迁入服务器地址              迁入服务器文件放置路径
scp -r reinsure-apache-tomcat-7.0.64 jboss@10.100.8.7:/app/java/reinsure-apache-tomcat
                       迁出服务名称                      迁入服务器用户名(最好不要用root)
                       
uat
10.100.8.227 jboss kmtA5OrSgij76fw
scp -r back jboss@10.100.8.227:/app/java/

15、本地环境启动添加激活参数
在项目主类中运行项目时,需要做运行时配置信息-run configurations中添加spring-boot:run -Drun.profiles=test

Maven启动指定Profile通过-P,如mvn spring-boot:run -Ptest,但这是Maven的Profile。
如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test
如果使用命令行直接运行jar文件,则使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
如果使用开发工具,运行Application.java文件启动,则增加参数--spring.profiles.active=test