- 博客(12)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 记一次线上构建jar包所遭遇的环境问题
背景:给用户部署一套数据迁移服务,因原centos构建机器故障,故只能采用在ubuntu环境、windows本地机器进行构建Jar包。问题一:centos构建与ubuntu构建两边是同样的jdk与maven仓库等,均采用的oracle jdk。发现用ubuntu构建的jar包无法启动。实验对比方向两个环境编译下,bean加载的顺序不一致ubuntu编译的Jar包,执行日志里看不到regist的调用,导致get时报了空指针异常。Java号称一次编译,到处运行。通过实验可以发现,Java的跨平台在某
2021-12-10 15:32:02
752
原创 Linux常用工具汇总
一、利用 lsof/netstat 查看进程连接数lsof[teledb@db1n9 manager.web.deploy-0.1.0-SNAPSHOT]$ lsof -i | grep 58104 | wc -l 1028netstat[teledb@db1n9 manager.web.deploy-0.1.0-SNAPSHOT]$ sudo netstat -nap|grep 58104|wc -l1031
2021-08-26 17:26:10
169
原创 单例-线程安全
双重检查锁定public class Singleton { // 静态实例变量加上volatile private static volatile Singleton instance; // 私有化构造函数 private Singleton() {} // 双重检查锁 public static Singleton getInstance() { if (instance == null) { synch
2021-07-20 14:55:22
122
原创 JVM梳理
Xms与XmxWhat are the -Xms and -Xmx parameters when starting JVM?JVM Xms与Xmx设置相同的考虑为了避免在生产环境由于heap内存扩大或缩小导致应用停顿,降低延迟,同时避免每次垃圾回收完成后JVM重新分配内存。所以,-Xmx和-Xms一般都是设置相等的。在生产环境中把Xms和Xmx设为相同值也是Oracle官方推荐的:Oracle recommends setting the minimum heap size (-Xms)equ
2021-07-20 10:07:35
138
原创 MySQL 常用指令
MySQL 语句查询特定数据库的空表select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA ='database_name' and TABLE_ROWS = 0;
2021-07-12 17:59:01
71
转载 JVM 性能调优
JVM 性能调优对JVM内存的系统调优主要目的是减少GC的频率和Full GC的次数。Full GCFull GC会对整个堆进行整理,包括Young、Old和Permanent。Full GC需要对整个堆进行回收,会比较慢,因此应该尽可能减少Full GC的次数原因老年代(Old)被写满调优时尽量让对象在新生代GC(Minor GC)时被回收,Minor GC很频繁,速度较快,让对象在新生代(Young)多存活一段时间,不要创建过大的对象及数组以避免直接在老年代创建对象。持久代Perman
2021-07-09 18:14:19
192
转载 Java并发优化思路
优化思路导图虚拟机层面偏向锁偏向锁:即锁会偏向于当前已经占有锁的线程。同步块大多数情况下不会出现多线程同时竞争锁,在无竞争时,之前获得锁的线程再次获取锁时,会判断是否偏向锁指向我,那么该线程将不用再次获得锁,直接进入同步块。偏向锁的实施是将对象头Mark的标记设置为偏向,并将线程ID写入对象头Mark。JVM默认启用偏向锁 -XX:+UseBiasedLocking。当其他线程请求相同的锁时,偏向模式结束。因此在竞争激烈的场合,偏向锁反而会增加系统负担,因为每一次都要判断是否偏向。轻量级锁
2021-07-09 17:03:53
223
原创 Git使用教程
所遇问题及解决办法GitLab remote: HTTP Basic: Access denied and fatal Authenticationgit config --system --unset credential.helpergit pull/push 总输入密码git config --global credential.helper store
2021-07-07 14:52:40
95
转载 Start thread at springboot application
转载于start-thread-at-springboot-applicationFirst create a bean of the type TaskExecutor in your configuration@Beanpublic TaskExecutor taskExecutor() { return new SimpleAsyncTaskExecutor(); // Or use another one of your liking}Then create a Command
2021-06-25 17:52:09
87
原创 Kubernetes网络隔离
Kubernetes网络隔离Network Policies隔离手段:NetworkPolicy要在Kubernetes集群中使用NetworkPolicy,CNI网络插件必须维护一个NetworkPolicy Controller,支持Kubernetes 的NetworkPolicy。实现了NetworkPolicy的网络插件包括Weave和Calico等,但不包括Flannel。通过控制循环的方式对NetworkPolicy对象的增删改查作出响应,然后在宿主机上完成iptables规则的配置工作
2021-06-25 17:38:49
749
原创 Docker 容器隔离
Docker容器隔离在容器里执行top指令,会发现,它显示的信息是宿主机的CPU和内存数据,而不是当前容器的数据。造成该问题的原因在于,容器通过Cgroups来为容器进程设置资源限制,但是/proc 文件系统并不知道用户通过Cgroups给这个容器做了什么样的资源限制,/proc 文件系统不了解Cgroups限制的存在。# 容器teledb@teledb-XPS-8930:~$ docker run -it -m 256m --memory-swap 256m centos /bin/bash[ro
2021-06-25 17:32:29
249
手机与电脑服务器的通信
2015-01-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人