文章分类 - 技术基础
摘要:业务需求是软件架构能力的第一推动力,微服务的概述和技术栈总结。
阅读全文
摘要:死锁是指两个或两个以上的进程(线程)在运行过程中因争夺资源而造成的一种僵局,若无外力作用,这些进程(线程)都将无法向前推进。
阅读全文
摘要:本文整理redis的主从、哨兵、Twemproxy、HAProxy的配置方法
阅读全文
摘要:一些XaaS的概念总结和区别
阅读全文
摘要:平时大家都知道的锁一般都有:CAS锁,synchronized锁,ReentranLock锁等,但是并没有了解各自的用处与一些细节。本文总结之。
阅读全文
摘要:文章主要介绍了java虚拟机类加载的时机,主要关注类初始化的时机,哪些行为属于主动引用,哪些行为属于被动引用,接着介绍了类加载过程,主要包括加载、验证、准备、解析和初始化五个阶段。最后介绍了类加载器以及双亲委派模型。
阅读全文
摘要:线程是把进程的两项功能——独立分配资源与被调度分派执行分离开来。进程作为系统资源分配和保护的独立单位,不需要频繁地切换。线程作为系统调度和分派的基本单位,能轻装运行,会被频繁地调度和切换。
阅读全文
摘要:堆和栈可以分为两种,一种是数据结构,另一种是和内存的分配有关,这两种虽然都有栈和堆,但是两者关系并不大
阅读全文
摘要:volatile变量,用来确保将变量的更新操作通知到其他线程。
阅读全文
摘要:简单介绍常见识别验证码的技术
阅读全文
摘要:当需要排查各种内存溢出问题、当垃圾收集成为系统达到更高并发的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。
阅读全文
摘要:bloom算法类似一个hash set,用来判断某个元素(key)是否在某个集合中。和一般的hash set不同的是,这个算法无需存储key的值,对于每个key,只需要k个比特位,每个存储一个标志,用来判断key是否在集合中。
阅读全文
摘要:RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习。那么也就剩下5种。
阅读全文
摘要:自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。
阅读全文
摘要:两种锁各有优缺点,不可认为一种好于另一种,像乐观锁适用于写比较少的情况下(多读场景),即冲突真的很少发生的时候,这样可以省去了锁的开销,加大了系统的整个吞吐量。但如果是多写的情况,一般会经常产生冲突,这就会导致上层应用会不断的进行retry,这样反倒是降低了性能,所以一般多写的场景下用悲观锁就比较合适。
阅读全文
摘要:消息队列是分布式系统中重要的组件之一。使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。
阅读全文