
java
java流行框架与jdk源码学习笔记
歪歪梯
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
基于zookeeper实现分布式锁
基于zookeeper实现分布式锁欢迎查看Eetal的第二十七篇博客–基于zookeeper实现分布式锁分布式锁设计zookeeper的临时节点在会话断开后,则会自动删除,这个特性使其可以非常好的应用在分布式锁而如果直接使用某一个path的临时节点作为分布式锁,会导致”惊群效应“(当锁每次释放都会唤醒全部竞争节点,而实际只能有一个竞争到)所以结合有序节点进行优化,对于某一个特定的节点R...原创 2019-08-01 16:29:17 · 157 阅读 · 0 评论 -
zookeeper源码分析-事件注册及通信原理
title: zookeeper源码分析-事件注册及通信原理欢迎查看Eetal的第二十六篇博客–zookeeper源码分析-事件注册及通信原理zookeeper基本命令代码依赖 <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId>...原创 2019-08-01 02:21:02 · 576 阅读 · 0 评论 -
zookeeper源码分析-选举算法
zookeeper源码分析-选举算法欢迎查看Eetal的第二十五篇博客–zookeeper源码分析-选举算法入口类启动zookeeper后输入java命令jps,查看到线程运行的主类为QuoRumPeerMainQuoRumPeerMain的启动方法根据启动命令传递的参数,读取配置文件去解析,根据是单机还是集群使用不同的方法运行 protected void initialize...原创 2019-07-29 13:24:27 · 315 阅读 · 0 评论 -
zookeeper协调原理
zookeeper协调原理欢迎查看Eetal的第二十四篇博客–zookeeper协调原理CAP原理CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。一致性表示分布式系统中各个节点数据的一致性可用性代表数据访问的高性能分区容错性指的是因为同步的时...原创 2019-07-19 23:09:26 · 524 阅读 · 0 评论 -
zookeeper集群搭建
zookeeper集群搭建欢迎查看Eetal的第二十三篇博客–zookeeper集群搭建zookeeper简介zookeeper大多用于做分布式环境下的注册中心或者监控中心一开始是用于分布式系统下资源的同步访问在分布式事务场景下也多作为 协调者是一个中心化管理的分布式同步技术zk上的数据和redis类似,存在于内存,保存快照、数据日志等文件安装zookeeper需要安装jdk环...原创 2019-07-18 15:38:33 · 210 阅读 · 0 评论 -
springBoot2.x集成kafka
最近在做一个物联网paas项目,实时设备预警结合kafka流式实时计算的特定,采用springBoot结合kafka来完成kafka环境搭建——kafka基本命令及环境搭建依赖 <!-- kafka --> <dependency> <groupId>org.springframework.kafka</groupId&...原创 2020-04-13 10:37:17 · 808 阅读 · 0 评论 -
springBoot整合springBootAdmin进行服务监控
springBootAdmin是面向springBoot的一款监控组件,很好集成,配置一下参数加个依赖就能用admin工程 <!-- springBoot admin 监控 --> <dependency> <groupId>de.codecentric</groupId> <artifact...原创 2020-04-08 19:39:06 · 3514 阅读 · 5 评论 -
springCloud的LoadBalance源码分析
title: SpringCloud的LoadBalance源码分析欢迎查看Eetal的第二十篇博客–SpringCloud的LoadBalance源码分析相关核心类LoadBalancedLoadBalancerClientLoadBalancerAutoConfigurationLoadBalancerInterceptorRibbonAutoConfigurationRib...原创 2019-06-06 04:05:34 · 1380 阅读 · 0 评论 -
使用HandlerInterceptor和RateLimiter进行限流
title: 使用HandlerInterceptor和RateLimiter进行限流欢迎查看Eetal的第十九篇博客–使用HandlerInterceptor和RateLimiter进行限流为什么使用拦截器目前网上有博客使用的是aop,但是因为我项目里使用了shiro进行权限验证shiro的过滤器链优先级是低于spring的过滤器的所以根据约定优于配置,直接使用过滤器就不需要去配置s...原创 2019-05-26 21:34:41 · 1189 阅读 · 0 评论 -
zgc垃圾收集器原理
着色zgc只支持64位系统,然后最大支持4T的堆内存,64位指针只需要使用42位就可以寻址4TB的空间,这意味着有多余的22位可以利用。zgc利用了4位,分别用来表示:是否已经finalize,重映射(remap),mark0,mark1。mark0与mark1表示是否被标记,在gc周期性更换,这样可以不要重复去复原(就像以前survivor的复制回收算法,也就是这次用mark0表示,下次就用...原创 2020-04-09 01:44:23 · 1376 阅读 · 0 评论 -
MBean与JMX
MBean与JMX欢迎查看Eetal的第二十二篇博客–MBean与JMXJMXJMX(java Management Exetensions)在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等优点是可以非常容易的使应用程序被管理伸缩性的架构使每个JMX...原创 2019-07-10 15:07:29 · 1712 阅读 · 0 评论 -
java-rmi源码解析
title: java-rmi源码解析欢迎查看Eetal的第二十一篇博客–java-rmi源码解析相关核心类sun.rmi.server.UnicastServerRefsun.rmi.server.UnicastRefsun.rmi.server.Utilsun.rmi.transport.tcp.TCPEndpointsun.rmi.transport.LiveRefjava...原创 2019-06-20 16:20:10 · 701 阅读 · 0 评论 -
java的四种引用类型
title: java的四种引用类型引用队列ReferenceQueue,引用队列内部维护一个Lock锁,除了强引用,其他类型引用都包含一个可以传入引用队列的构造函数引用的对象在即将被回收时,会把绑定了引用队列的引用加入引用队列然后回收该对象,因为这时其会变为InActive(死亡 )Reference抽象类 /*引用实例处于四种可能的内部状态之一: * *活性:由垃圾收集...原创 2019-03-31 17:37:49 · 257 阅读 · 0 评论 -
HashMap、TreeMap、HashTable、ConcurrentHashMap对比
title: HashMap、TreeMap、HashTable、ConcurrentHashMap对比(jdk1.8)欢迎查看Eetal的第十篇博客–HashMap、TreeMap、HashTable、ConcurrentHashMap对比(jdk1.8)HashMapHashMap是java中经常用来存取键值对形式的一个集合类1.8以后实现方式为 数组(Node<K,V>...原创 2019-03-27 19:43:49 · 264 阅读 · 0 评论 -
JUC学习笔记
title: JUC相关欢迎查看Eetal的第八篇博客–JUC相关JUCJUC是java.util.concurrent的简写,该包下包含一系列java关于多线程协作相关的类notify和waitnotify和wait为Object的方法,需要当前线程持有该对象锁,没有调用则会排除非法监管状态的异常,wait使得当前线程放弃该对象锁,进入条件等待队列,notify从该对象锁的条件等待队...原创 2019-03-27 19:44:12 · 606 阅读 · 0 评论 -
使用future机制和对象锁实现SynchronizedExecutor
title: 使用future机制和对象锁实现SynchronizedExecutor欢迎查看Eetal的第九篇博客–使用future机制和对象锁实现SynchronizedExecutorfuturefuture代表一个任务的预执行结果,通过get方法获取执行结果 public interface Future<V> { V get() throws Exception...原创 2019-03-27 19:45:01 · 501 阅读 · 0 评论 -
并发基石-Markword与锁升级
title: 并发基石-Markword与锁升级synchronizedsynchronized关键字是java提供的互斥锁关键字,我们常说的互斥锁一般都是非自旋锁,即竞争不到锁的线程会进入阻塞状态知道被唤醒今天我们来讲讲java中用来对synchronized进行优化的三种锁,同时会介绍markword对象头目前我在网上搜到的十几篇博客讲的都有问题,可能有写对的我没搜到.很多人不经过...原创 2019-03-28 12:30:12 · 2216 阅读 · 1 评论 -
并发基石-AQS与Condition
title: 并发基石-AQS与ConditionCondition在前面的博客JUC相关中,已经初略介绍了Condition接口,代表一个条件,可以阻塞、唤醒一个条件队列今天来具体讲讲其与AQS(AbstractQueueSynchronizer)的实现源码Condition中的加入条件队列,阻塞,唤醒等等操作都是由AbstractQueueSynchronizer或其子类方法完成A...原创 2019-03-28 12:30:55 · 559 阅读 · 0 评论 -
动态代理与静态代理
title: 动态代理与静态代理静态代理—硬编码没啥好说的,就是像装饰模式一样public class StaticProxy extends Object{ Object object; public StaticProxy(Object object) { this.object = object; } @Override public int hashCod...原创 2019-04-08 10:21:56 · 152 阅读 · 0 评论 -
字符串常量池在1.6与1.8以及String、StringBuffer、StringBuilder
title: 字符串常量池在1.6与1.8以及String、StringBuffer、StringBuilder字符串加入常量池时机直接使用双引号声明出来的String对象会直接存储在常量池中,相同字符串使用同一个对象而使用构造函数创建的会新创建一个字符串对象,但是该字符串对象的字符数组value会引用常量池中的字符串对象的字符数组使用String的concat方法拼接后的字符串使用的是...原创 2019-04-15 04:46:15 · 710 阅读 · 0 评论 -
GC与垃圾回收分代
title: GC与垃圾回收分代gc与finalize网上很多博客简略的说确保对象死活需要经过两次标记这是错误的。Object有个finalize,默认是空实现被回收时会判断这个对象是否重写了finalize方法,如果没有就直接回收否则会把该对象加入一个f队列(代表需要执行回收方法的队列)jvm会分配一个执行finalize的线程去执行这个队列每个对象的finalize方法,如果在f...原创 2019-03-30 16:28:07 · 286 阅读 · 0 评论