mysql 判断不为null要用is not null
PO对象定义为什么要加private static final long serialVersionUID = 1L;
- po对象里定义serialVersionUID是因为有些框架可能会使用对象流传输对象,比如Dubbo。
- 服务之间互相调用,传输对象,使用的是openFeign,openFeign使用的是jackson的字符流。
java路径下的编译文件,默认是不会放到classpath里的
mybatis xml里可以用automapping="true" ,但id映射需要写
对于平台属性值的修改,建议先删掉后修改,这样就不用对比
为什么@ComponentScan
mapstruct转换Date类型,java中date类型存储到es中时区
es查询慢,故障排查
bashwjm@wjm-virtual-machine:~$ curl localhost:9200/_cat/nodes?v ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.17.0.5 56 94 2 0.38 0.40 0.44 dilmrt * 3f585227e067 你的命令 curl localhost:9200/_cat/nodes?v 是用于与 Elasticsearch 交互的命令。结果显示了 Elasticsearch 集群中的一个节点的信息。以下是结果中每列的解释: ip: 节点的 IP 地址,这里是 172.17.0.5。 heap.percent: 节点的堆使用百分比,这里是 56,表示堆的 56% 被使用。 ram.percent: 节点的内存使用百分比,这里是 94,表示内存的 94% 被使用。 cpu: 节点的 CPU 使用情况,这里是 2,表示 CPU 使用率为 2%。 load_1m, load_5m, load_15m: 节点的负载(load average)情况,分别表示过去 1 分钟、5 分钟和 15 分钟的平均负载。 node.role: 节点的角色,这里是 dilmrt。 master: 显示是否是主节点(*表示是)。 name: 节点的名称,这里是 3f585227e067。 总体而言,这一行的含义是,位于 IP 地址 172.17.0.5 的 Elasticsearch 节点,其堆使用了 56%,内存使用了 94%,CPU 使用率为 2%,负载较低,是集群中的一个数据、索引、搜索等多种角色节点,同时也是主节点。 wjm@wjm-virtual-machine:~$ curl -XGET localhost:9200/_cat/shards?h=index,shard,prirep,state,unassigned.reason| grep UNASSIGNED % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 487 100 487 0 0 13270 0 --:--:-- --:--:-- --:--:-- 13527 goods 0 r UNASSIGNED CLUSTER_RECOVERED优化 ​
index数据放在内存里
搜索添加拼音分词器,实现拼音搜索,日期排序
购物车按照添加日期倒序显示
购物车Redis高可用集群
订单outTradeNo使用雪花算法,显示id的地方,“我的订单”,“生成订单“的id都用outtradeno显示
redis主从复制哨兵
shellsudo mkdir -p /docker/redis_master/conf sudo mkdir -p /docker/redis_slave6380/conf sudo mkdir -p /docker/redis_slave6383/conf sudo mkdir -p /docker/redis_sentinel6381/conf sudo mkdir -p /docker/redis_sentinel6382/conf sudo chmod -R 777 /docker主节点的配置文件
bashvim /docker/redis_master/conf/redis.conf # 服务端口 默认6379 port 6379 # 关闭保护模式,允许远程连接 protected-mode no启动主节点
bashdocker run --name=redis-master6379 -d -p 6379:6379 --privileged=true --network host -v /docker/redis_master/conf/redis.conf:/etc/redis/redis.conf redis:6.2 redis-server /etc/redis/redis.conf --restart=always这个先不写,否则系统瞬时负载太大
从节点的配置文件
vim /docker/redis_slave6380/conf/redis.conf
# 服务端口 默认6379
port 6380
# 关闭保护模式,允许远程连接
protected-mode no
# 配置主从复制 从节点默认只读
## redis5.0后新版本配置
replicaof 172.16.8.186 6379启动从节点
bash
docker run --name=redis-slave6380 -d -p 6380:6380 --privileged=true --network host -v /docker/redis_slave6380/conf/redis.conf:/etc/redis/redis.conf redis:6.2 redis-server /etc/redis/redis.conf
docker run --name=redis-slave6383 -d -p 6383:6383 --privileged=true --network host -v /docker/redis_slave6383/conf/redis.conf:/etc/redis/redis.conf redis:6.2 redis-server /etc/redis/redis.conf
--restart=always先不用哨兵sentinel的配置文件
bash
port 6381
sentinel monitor master 192.168.198.128 6379
logfile "sentinel6381.log" 启动哨兵
bash
docker run --name=redis-sentinel6381 -d -p 6381:6381 --privileged=true --network host -v /docker/redis_sentinel6381/conf/redis.conf:/etc/redis/redis.conf:z redis:6.2 redis-server /etc/redis/redis.conf --sentinel
--restart=always启动哨兵
bash
docker run --name=redis-sentinel6382 -d -p 6382:6382 --privileged=true --network host -v /docker/redis_sentinel6382/conf/redis.conf:/etc/redis/redis.conf:z redis:6.2 redis-server /etc/redis/redis.conf --sentinel
docker报错sentinel directive while not in sentinel mode
改文件映射的权限
sudo chmod -R 777 /docker/redis_sentinel6382
java客户端redisson报错,容器的网络改成host模式
报错:Command execution timeout for command: (SENTINEL SENTINELS), params: [master], Redis client: [addr=redis://192.168.198.128:6382]
redisson版本<redisson.version>3.17.6</redisson.version>及以上# Redis Sentinel Configuration
# 指定 Sentinel 运行的端口
port 6382
# 监控的主节点
sentinel monitor mymaster 192.168.198.128 6379 2
# 如果在down-after-milliseconds毫秒内无法从主节点收到回应,将主节点标记为主观下线
sentinel down-after-milliseconds mymaster 5000
# 故障转移的超时时间,即在这个时间内进行故障转移
sentinel failover-timeout mymaster 10000
# 在主观下线之后,如果 min-slaves-to-write 为真,Sentinel 将拒绝执行写命令
sentinel min-slaves-to-write mymaster 1
# 在主观下线之后,如果 min-slaves-max-lag 为真,则将拒绝执行写命令
sentinel min-slaves-max-lag mymaster 10
# 这个选项定义了如果 master 被判断为主观下线的次数达到了给定值,就会将 master 标记为客观下线
sentinel parallel-syncs mymaster 1
# Sentinel 记录所有事件的日志级别,可选值包括 debug、verbose、notice、warning
loglevel notice
# Sentinel 日志文件路径
logfile "sentinel6382.log"bug ​
- 雪花Id(snowflake)主键(Long) ,前端丢失精度


面试 ​
- 自我介绍300字左右
- 各个微服务由几个节点,一般大于等于2。通过负载均衡算法均匀分布到各个节点
- 项目团队有几个?一个项目组中的成员:4后2前2测1或2产品.
- 项目经理就是管理项目进度的
- 你遇到哪些影响深刻的问题,怎么解决的
- 最有成就感的事情
- 对我们公司了解多少,为什么投递?公司业务不错,有前景
- 问面试官问题:多久发一次版,问技术栈,这次面试有哪些提高的地方,技术趋势
- 交付给甲方,还没有上线