OpenResty在Docker下的安装
OpenResty安装
mkdir -p /mnt/openresty/{conf,html,logs}
docker pull openresty/openresty
docker run --name openResty -p 80:80 -d openresty/openresty
docker cp openResty:/usr/local/openresty/nginx/conf/nginx.conf /mnt/openresty/conf/nginx.conf
docker cp openResty:/etc/nginx/conf.d/default.conf /mnt/openresty/conf/default.conf
docker stop openRest...
Spring Boot项目启动命令参数
启动命令
基础启动命令
java -jar /opt/languageTrainer/LanguageTrainer.jar
指定Spring Boot profile
java -jar /opt/languageTrainer/LanguageTrainer.jar --spring.profiles.active=prod
指定系统属性
java -Dfile.encoding=UTF-8 -jar /opt/languageTrainer/LanguageTrainer.jar
指定非标准选项
java -jar -Xmx512m -Xms256m /opt/languageTrainer/LanguageTrainer.jar
不间断运行
nohu...
Nacos在Docker下安装
准备数据库
执行初始化脚本
https://github.com/alibaba/nacos/blob/master/distribution/conf/mysql-schema.sql
集群模式启动
Nacos版本2.2.0,外部数据库使用MySQL 5.7
docker run -p 8848:8848 -p 9848:9848 --name nacos \
--restart always \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
--env MODE=cluster \
--env NACOS_AUTH_ENABLE=true \
--env NACOS_SE...
Spring Cloud Gateway验证JWT
无需验证的URI集合配置
application.yml
doubucket:
authentication:
permitUri:
- /users/getToken
定义全局filter
@Component
@AllArgsConstructor
public class AuthenticationFilter implements GlobalFilter, Ordered {
private final AuthenticationProperties authenticationProperties;
private final DoubucketJwtUtils doubucketJ...
Spring Security实现基于JWT的单点登录
Maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
0.9.1版本之后,对jjwt的引入...
Java Web Token简述
Json Web Token信息组成
Java Web Token信息由三部分组成,分别是
Header,描述token的类型,摘要算法等,JSON格式
Payload,描述token认证相关的一些主要信息,JSON格式
Verify Signature,token的摘要信息,用于检查token的合法性
例子
Header
{
"alg": "HS256",
"typ": "JWT"
}
Payload
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
Verify Signature
这里通过伪代码表示,HMACSHA256表示摘要生成算法,base6...
ConcurrentHashMap实现id范围锁
单次获取
public class Test() {
private final ConcurrentHashMap<Integer, Boolean> concurrentHashMap = new ConcurrentHashMap<>();
public void doSomethingWithLock() {
Integer id = 1;
if (concurrentHashMap.putIfAbsent(id, Boolean.TRUE) == null) {
// 获取锁成功
try {
// 操作与id为1的相关数据...
Kibana在Docker下安装
下载Kibana镜像
docker pull kibana:7.17.9
复制默认配置
mkdir -p /opt/volume/kibana/config
docker run --name kibana --rm -d kibana:7.17.9
docker cp kibana:/usr/share/kibana/config /opt/volume/kibana
docker stop kibana
修改配置
/opt/volume/kibana/config/kibana.yml
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://192.16...
332 post articles, 34 pages.