大家都知道OAuth 2.0 有四种不同的grant type,分不同的业务场景来使用,我在前面的一篇文章也有粗略讲过 微服务架构学习笔记之一认...
我们在搭建微服务的时候,常常需要考虑的一个问题是,微服务之间以及你的应用和微服务之间是怎么信任对方的。 这个时候我们会谈到两个概念,认证(aut...
Guava在很多项目都已经使用过了,最近有点时间,于是重读了下github上的user guidance,然后结合自己的使用经验将常用的一些知识...
Java的内存分布 在JVM中,内存是按照分代进行组织的。 其中,堆内存分为年轻代和年老代,非堆内存主要是Permanent区域,主要用于存储一...
从上一篇文章中我们已经知道了NameNode和Secondary NameNode的职责,这篇文章我们主要讲讲我们怎么往DataNode上写数据...
前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系。很多人都认为,Secondar...
使用泛型的目的 当我们第一次接触泛型时,第一个问题肯定会是,为什么要使用泛型?最直接的答案是为了避免转型,使得编译器能够在编译期就发现转型错误而...
在Java中,我们都知道关键字synchronized可以用于实现线程间的互斥,但我们却常常忘记了它还有另外一个作用,那就是确保变量在内存的可见...
前言 相比于前面三种垃圾收集算法,引用计数算法算是实现最简单的了,它只需要一个简单的递归即可实现。现代编程语言比如Lisp,Python,Rub...