11 2021 档案

释放rsyslog占用的Linux内存
摘要:企鹅云上的服务器内存有些不足,1c2g的机器一直将就用。 top,shift+M,查看内存使用情况,进程的内存占用按照从大到小排序: [root@VM_0_11_centos ~]# top top - 11:10:46 up 767 days, 20:30, 1 user, load averag 阅读全文

posted @ 2021-11-29 14:13 幽州散人 阅读(336) 评论(0) 推荐(0)

OpenResty连接Redis哨兵与集群
摘要:挖个坑先,后面有时间可以继续做这块的开发工作。 OpenResty官方目前还不支持Redis哨兵和集群模式,而Java技术栈有jedis、lettuce、redisson这些Redis客户端库、都是支持单体、哨兵以及集群模式的。(虽然别的技术栈可能在一些具体问题上可能比Java技术栈更厉害,但是Ja 阅读全文

posted @ 2021-11-27 17:14 幽州散人 阅读(1000) 评论(0) 推荐(0)

白话理解什么是Spring循环依赖
摘要:我们知道Spring IOC是指的容器来负责创建Bean并负责处理Bean之间的依赖关系,比如有如下两个类A、B: @Component public class A @Autowired private B b; @Component public class B 站在容器的角度,发现A依赖B,直 阅读全文

posted @ 2021-11-25 17:08 幽州散人 阅读(174) 评论(0) 推荐(0)

Java类加载
摘要:3个阶段:加载、连接、初始化。 其中连接这步可以细分为验证、准备、解析3个步骤。 加载: 按全类名找到class文件或者jar包里的class文件,二进制流读取,然后转换流静态数据结构为方法区的运行时数据结构,把类定义加载到方法区。 然后在堆里边生成一个Class对象作为方法区类定义的入口。(btw 阅读全文

posted @ 2021-11-25 15:32 幽州散人 阅读(64) 评论(0) 推荐(0)

观察者模式的简单例子
摘要:Spring框架里边有很多Listener,对应的设计模式是观察者模式。所以写了一个小例子加深理解。 一共3个类,被观察对象,观察者接口,观察者实现 import java.util.ArrayList; import java.util.List; /** * 被观察对象 * */ public 阅读全文

posted @ 2021-11-22 09:34 幽州散人 阅读(289) 评论(0) 推荐(0)

SpringBoot的SPI机制
摘要:Java中自带了所谓SPI机制,按照约定去META-INF/services目录里找各个接口的配置文件,找到接口的实现类,然后使用当前线程上线文类加载器定位到实现类加载器,通过其加载实现类,然后再反射newInstance得到实现类的实例。 Spring里也有类似的SPI,思路根上面类似,从clas 阅读全文

posted @ 2021-11-20 11:59 幽州散人 阅读(5050) 评论(0) 推荐(0)

Java反射的性能问题
摘要:前言 动态代理分为两种,JDK动态代理和spring里边使用的Cglib动态代理。分别使用的是interface和子类继承的思路来对委托类进行wrap生成代理类。 本篇算是动态代理系列的番外篇(前文:https://www.cnblogs.com/lyhero11/p/15557389.html) 阅读全文

posted @ 2021-11-15 22:45 幽州散人 阅读(1390) 评论(0) 推荐(0)

动态代理系列Cglib的FastClass机制(四)
摘要:书接上文,https://www.cnblogs.com/lyhero11/p/15553458.html Cglib代理类分析 上回书遗留了一个疑问:cglib是如何动态的对委托类的方法进行调用的,我们说由于Java反射的一些性能问题,cglib使用了一种叫做FastClass的技巧来优化这个调用 阅读全文

posted @ 2021-11-15 17:29 幽州散人 阅读(4018) 评论(4) 推荐(3)

动态代理与AOP(三)
摘要:书接上文,https://www.cnblogs.com/lyhero11/p/10370750.html , 又是1年多,天性自由散漫,佛系求知,但总归是有求知意愿,所以脚步不能停。这次尝试把动态代理和AOP理解更深入些。 这次结合AOP来看看动态代理的玩法。先看看怎么开发AOP切面。再引出spr 阅读全文

posted @ 2021-11-14 21:30 幽州散人 阅读(504) 评论(0) 推荐(0)

模拟线程饥饿
摘要:思路和代码来自于网络,本文仅是个人记录性质,感谢原作者们。 思路 线程1、线程2来自于一个固定线程池newFixedThreadPool(2),然后分别都去执行任务A,任务A当中会向同一个线程池提交任务B返回Future,同时任务A使用Future.get()等待任务B的返回结果才能继续往下执行。 阅读全文

posted @ 2021-11-12 15:15 幽州散人 阅读(87) 评论(0) 推荐(0)

tomcat的3个线程栈dump样本分析
摘要:"朝花夕拾、不留遗憾。念念不忘,必有回响。" 通过通读tomcat请求任务处理、tomcat线程池、TaskQueue、ReentrantLock以及AQS的源码,以及对它们的功能和原理的了解,我们就可以分析tomcat线程dump里边的蛛丝马迹了。 另外关于样本三,由于没有实验重现问题进而证明推断 阅读全文

posted @ 2021-11-07 18:26 幽州散人 阅读(1182) 评论(0) 推荐(0)

LockSupport.park()分析
摘要:本文一些理解和代码参考了看过的网上一些文章,感谢原作者们 之前在https://www.cnblogs.com/lyhero11/p/13681548.html 中讨论了java并发编程里的“等待-通知”范式,里边提到了LockSupport,最近也在研究之前的一份tomcat线程dump的样本和A 阅读全文

posted @ 2021-11-06 10:05 幽州散人 阅读(1584) 评论(0) 推荐(0)

windows下开启docker占用内存过高解决办法
摘要:实际上是依赖的WSL2占用的内存,在当前用户目录下新建.wslconfig文件: [wsl2] memory=2GB # Limits VM memory in WSL 2GB, also can be set to other values swap=0 localhostForwarding=t 阅读全文

posted @ 2021-11-03 10:13 幽州散人 阅读(3166) 评论(2) 推荐(1)

如何与别人共享Docker镜像
摘要:如何把Docker镜像拷给别人 比如本地有个名为lyhero11/springbootapp2的镜像,操作如下。 docker save导出镜像: docker save -o D:\docker-images\springbootapp2-latest.tar lyhero11/springboo 阅读全文

posted @ 2021-11-01 21:18 幽州散人 阅读(1654) 评论(0) 推荐(0)

使用docker部署springboot应用
摘要:在《使用docker安装mysql5.7》一文中,我们用docker在本地跑起来了一个mysql容器,并做了测试。现在我们把连接mysql容器的这个springboot应用也用容器跑起来。 springboot工程的容器化 在项目根目录新建Dockerfile: # Docker image for 阅读全文

posted @ 2021-11-01 14:55 幽州散人 阅读(354) 评论(0) 推荐(0)

导航