摘要:
为什么需要持久层框架? 首先我们先看看使用原生jdbc存在的问题? public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; R 阅读全文
摘要:
Ribbon简介 什么是Ribbon? Ribbon是springcloud下的客户端负载均衡器,消费者在通过服务别名调用服务时,需要通过Ribbon做负载均衡获取实际的服务调用地址,然后通过httpclient的方式进行本地RPC远程调用。 Ribbon原理 Ribbon负载均衡算法主要是轮询算法 阅读全文
摘要:
Eureka简介 Eureka是什么? Eureka是基于REST(Representational State Transfer)服务,主要以AWS云服务为支撑,提供服务发现并实现负载均衡和故障转移。我们称此服务为Eureka服务。Eureka提供了Java客户端组件,Eureka Client, 阅读全文
摘要:
一、Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去。 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据。所以适合做冷备份。 RDB对redis的读写影响非常小,因为redis主进程只需要fork一个子进程进行磁盘IO操作就行了 阅读全文
摘要:
简易的redis分布式锁 加锁: set key my_random_value NX PX 30000 这个命令比setnx好,因为可以同时设置过期时间。不设置过期时间,应用挂了,解不了锁,就一直锁住了。 解锁: if redis.call("get",KEYS[1])==ARGV[1] then 阅读全文
摘要:
ThreadLocal基础部分 ThreadLoal的作用 保存线程的独立变量,即每个线程维护一份。这种变量在线程的生命周期内起作用,减少同一个线程内多个函数之间公共变量传递麻烦。 使用场景 需要给不同的线程保存不同的信息时。 基础使用 public class TestThreadLocal { 阅读全文
摘要:
从入门到瓶颈(文末附学习脑图) 首先,先自我介绍一下,楼主94年的,四川人,普通大专毕业。 第一阶段 实习阶段 2015年,实习阶段去浙江温州(没错,就是皮革厂的那个地方)找了份软件实施的工作实习。大概的工作内容是去给经销商进行ERP实施培训,OA系统维护等等。每天住在厂里,朝九晚五,也不用加班,不 阅读全文
摘要:
一、从Spring到SpringBoot 随着Spring的生态体系越来越壮大,Spring也变得越来越复杂,越来越臃肿。比如你想基于一套SSM的框架进行开发,那么你需要配置很多的东西,整合很多的东西。 因此Spring Boot应运而生。那么他基于什么变得简单呢? 就是:约定大于配置 什么是Spr 阅读全文
摘要:
一、Rabbitmq 二、RocketMQ 与kafka的区别: 纯java开发,不用zk 支持延迟投递,消息溯源等 多个队列使用一个日志文件,所以不存在kafka过多topic之后慢的问题 三、Pulsar Pulsar 是一个用于服务器到服务器的消息系统,具有多租户、高性能等优势。 Pulsar 阅读全文
摘要:
一、 Lock 锁 java.util.concurrent.locks.Lock 为什么有了synchronized,还需要Lock呢? 使用方式更灵活 性能开销小 1.1 ReentrantLock 简单示例: public class TestLock { private Lock lock= 阅读全文