-
jar解压后之后,重新打包成jar
作者: Kinglong 发表时间: 2023-02-07 04:47转载文章来源:https://blog.csdn.net/Stepeh/article/details/107817413 版权声明:本文为CSDN博主「Stepeh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 jar cvfm 打包指令 server.jar ... -
饿汉式单例类
作者: 陆金龙 发表时间: 2023-01-10 22:17饿汉式单例类特点: 1.在类初始化时,已经实例化。 2.本身是线程安全的。 3.不足:一开始就初始化,占用内存。 public class Singleton { private Singleton() {} private static final Singleton single = new Singleton(); public sta... -
静态内部类单例
作者: 陆金龙 发表时间: 2023-01-10 22:111.静态内部类单例 public class Instance { private static class InstanceHolder { public static Instance instance = new Instance(); } private Instance() {} public static Instance getInstance() { return InstanceHolder.instance ; } } 静态内部类单例综合使用了java的类级内部类和多线... -
Java开发中的消息队列相关问题处理
作者: 陆金龙 发表时间: 2023-01-08 07:53关键词:RabbitMQ高可用 Kafka高可用 消息队列重复消费 消息丢失 消息队列积压内容基于石杉码农学院的石杉老师的视频整理。 1.理解集群、分布式 集群是指多台服务器集中在一起,实现同一业务。 分布式是指将不同的业务,分布在不同的机器上执行。 分布式的每一个节点,都可以做集群,而集群并不一定就是分布式的。 2.如何保证消息队列的高可用性 如何保证消息队列的高可用。如果MQ挂了怎么办? 2.1 RabbitMQ实现高可用 RabbitMQ:不是分布式的。 RabbitMQ有单机模式(生产环境不会这么用),普通集群模式,镜像集群模式。 普通集群模式原理:多台机器部署多个RabbitMQ实例,队列分配... -
volatile+DCL(双重检测)单例
作者: 陆金龙 发表时间: 2022-12-30 22:28关键词:DCL volatileDCL(Double Check Lock)双重检测锁。减少了锁粒度,如果第一次检查instance不为null,那么就不需要执行下面的加锁和初始化操作。 利用volatile的禁止指令重排特性,弥补并发情形下双重检测单例模式的缺陷。 public class Singleton { // 使用volatile的禁止指令重排特性,避免获取到的实例因指令重排原因未完成初始化,使用时报错。 private volatile static Singleton instance; private Singleton(){ } ... -
Java开发中的消息队列及选型
作者: Kinglong 发表时间: 2022-12-25 21:51关键词:RabbitMQ RocketMQ Kafka1.为什么要使用消息队列 使用消息队列,比较核心的目的有3个:解耦、异步、削峰。 解耦:以松耦合的方式实现系统之间的通信,保障各系统之间的独立性,更方便、灵活地实现系统的扩展和变更。 异步:将任务中的耗时步骤交给MQ及消息订阅模块处理,避免阻塞,提高响应速度。 削峰:将短暂的高峰期请求积压在MQ中,然后以数据库能够承受的速度从消息队列中逐渐拉取出来进行处理。将并发请求高峰时段的压力由数据库IO操作转移到MQ中,避免服务器因为超负荷请求而崩溃。 2.使用消息队列会面临哪些问题 (1)系统可用性降低:如果MQ挂掉,造成整套系统崩溃。 (2)系... -
JVM系列实践:Java内存模型与线程
作者: 陆金龙 发表时间: 2022-12-24 01:56关键词:volatile synchronized monitorneter monitorexit1.并发处理 并发处理的应用使得Amdahl定律取代摩尔定律成为计算机性能发展的源动力。 Amdahl定律:S=1/((1-a)+a/n)。a是并行计算部分占比,n是并行处理节点数。 (1)增加处理器数,计算负载分布到更多处理器上,提高计算速度。 (2)程序中可并行代码比例决定增加处理器带来速度提升的上限。 2.内存模型 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量的底层细节。这里的变量包括静态字段、实例字段和构成数组对象的元素,但不包括局部变量和方法参数,因为后者是存放在各线程对应的虚...