Get TimeStamp
1 | UPDATE table set updated_at=CURRENT_TIMESTAMP() |
1 | /** |
1 |
|
注意,以下所有操作都在同一个目录下执行
1 | openssl genrsa -des3 -out ca.key 2048 |
1 | openssl req -new -x509 -days 7305 -key ca.key -out ca.crt |
-days后面的7305是指证书的有效期,以天为单位,这里设置成了20年
注意期间会让你填写common name,也就是域名,这里填入的是你的根域名,例如eaimty.com。最后,你就得到了一个根域的CA证书。
1 | openssl genrsa -des3 -out yourdomain.com.pem 1024 |
1 | openssl rsa -in yourdomain.com.pem -out yourdomain.com.key |
1 | openssl req -new -key yourdomain.com.pem -out yourdomain.com.csr |
common name要填入泛域名,如*.eaimty.com,这样生成的证书可以供所有子域使用。
/home/linuxbrew/.linuxbrew/etc/openssl/openssl.cnf 或者 /etc/pki/tls/openssl.cnf
dir=. -> 修改为./ca,则当前执行openssl命令在ca的上层命令,如果是在ca目录里执行命令,则修改为./
1 | mkdir -p ca/newcerts |
1 | openssl ca -policy policy_anything -days 7305 -cert ca.crt -keyfile ca.key -in yourdomain.com.csr -out yourdomain.com.crt |
最后你会得到一个yourdomain.com.crt文件,把ca.crt中的内容粘贴到yourdomain.com.crt的最后,证书就签发完成了。
准备好yourdomain.com.crt(网站证书)和yourdomain.com.key(网站私钥),开始配置Nginx!
1 | server { |
1 | # 消费者的组名 |
listenPort:broker的服务端口号,作为对producer和consumer使用服务的端口号,默认为10911
haListenPort:主要用于slave同master同步。haService中使用,默认值为listenPort + 1,这个值是在BrokerStartup.java中设置的。
fastListenPort:主要是fastRemotingServer服务使用,默认为:listenPort - 2
brokerIP1:如果是k8s上,则是service地址(必须是IP地址信息,填服务名称无法解析)
brokerName:Master和Slave要一样
brokerIP1:如果是k8s上,则是service地址(必须是IP地址信息,填服务名称无法解析)
brokerName:Master和Slave要一样
brokerIP2:Master的IP地址
将conf目录下所有xml文件中的${user.home}替换成实际路径
SEND_OK:消息发送成功
FLUSH_DISK_TIMEOUT:消息发送成功,但是服务器刷盘超时,消息已经进入服务器队列,只有此时服务器宕机,消息才会丢失
FLUSH_SLAVE_TIMEOUT:消息发送成功,但是服务器同步到 Slave 时超时,消息已经进入服务器队列,只有此时服务器宕机,消息才会丢失
SLAVE_NOT_AVAILABLE:消息发送成功,但是此时 slave 不可用,消息已经进入服务器队列,只有此时服务器宕机,消息才会丢失
/bin/runbroker.sh
Xms启动时内存,Xmx最大内存,Xmn最小内存
1 | <<<<<<< HEAD:source/_posts/Server/SpringBoot/RocketMQ/Broker-Config.md |
1 | -Xms1g -Xmx1g -Xmn512m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m |
1 | FROM openjdk:8u171-jdk |
特别注意,如果缺少export JAVA_OPT=” -Duser.home=/opt”,在部署k8s的时候,如果删除Docker再重新部署,会重新初始化磁盘数据,造成Topic等信息丢失
比较常用的工具类有Log4j、SLF4j、Commons-logging(简称jcl)、logback、log4j2(log4j升级版)、jdk logging。大致可分为两类:接口类,包括Commons-logging、SLF4j;实现类,Log4j、log4j2、logback,jdk自带的就先不考虑了。各框架之间对应关系如下:
http://tech.lede.com/2017/02/06/rd/server/log4jSearch/
SLF4J,即简单日志门面(Simple Logging Facade for Java)。
从设计模式的角度考虑,它是用来在log和代码层之间起到门面的作用。配置SLF4J是非常简单的一件事,只要将你打算使用的日志系统对应的jar包加入到项目中,SLF4J就会自动选择使用你加入的日志系统。
Logback是由log4j创始人设计的另一个开源日志组件,意在成为log4j的继承者,Logback比现有的所有日志系统更快,占用内存更小,提供独有且很有用的特性。
日志级别从低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
如果设置为 WARN ,则低于 WARN 的信息都不会输出。Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。
设置输出DEBUG方式
java -jar springTest.jar –debug
在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)
会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
级别设置
logging.level:日志级别控制前缀,*为包名或Logger名,LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
1 | logging.level.com.fintend=DEBUG:com.fintend包下所有class以DEBUG级别输出 |
根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载
Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),
命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项(下面会提到)。默认的
命名规则,并且放在 src/main/resources 下面即可
1 | <?xml version="1.0" encoding="UTF-8"?> |
输出日志格式
1 | 18:15:22.148 logback-demo [http-nio-9010-exec-1] INFO c.e.demo.controller.UserContorller - 日志输出 info |
root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG。
可以包含零个或多个元素,标识这个appender将会添加到这个loger。
1 | <root level="debug"> |
1 | logging.config=classpath:logging-config.xml |
1 | spring.liquibase.user=root |
文件目录结构1
2
3
4
5|resource
|---changelog
|| 2018-05-08-init-schema.xml
|---liquibase
|| changelog-master.xml
1 | <databaseChangeLog |
1 | <databaseChangeLog |