wso2 identity server架构简述
WSO2 Identity Server为企业WEB应用提供复杂的身份管理及安全认证服务。以下是wso2的架构图。一开始看这个架构图可能会有些困惑,箭头很杂乱,不知所云。为了方便理解,可以把以下架构图分为两部分来看。一部分是身份认证流程,另一部分是用户和访问权限管理框架。
WSO2 Identity Server为企业WEB应用提供复杂的身份管理及安全认证服务。以下是wso2的架构图。一开始看这个架构图可能会有些困惑,箭头很杂乱,不知所云。为了方便理解,可以把以下架构图分为两部分来看。一部分是身份认证流程,另一部分是用户和访问权限管理框架。
垃圾回收算法的基础
标记 - 清除算法是最基础的算法,如它的名字一样,算法分为标记和清除两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。
这个算法的基本思想就是通过一系列名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话来说就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。
在Java语言里,可作为GC Roots的对象包括下面几种:
Serial是最基本的收集器,历史悠久。是一个单线程收集器,而且它在进行垃圾回收的时候,必须暂停其他所有的工作线程,直到收集结束。这就意味着,每次进行垃圾收集都必须停掉用户正常工作的线程。使用复制算法
ParNew是Serial的多线程版本。仍要停顿
Parallel Scavenge是一个新生代收集器,使用多线程和复制算法。相比其他收集器,只有这个收集器是针对系统吞吐量进行改进,适用于后台运算并且交互不多的程序。其他收集器则更关注改善收集时的停顿时间,适用于用户交互的程序。
接口(interface)在Go语言有着至关重要的地位。如果说goroutine和channel 是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代,成为一道极为亮丽的风景;那么接口(interface)是Go语言整个类型系统(type system)的基石,让Go语言在基础编程哲学的探索上,达到史无先例的高度。
Go 语言的接口(interface)不单单只是接口。
1 | // ParseBool 将字符串转换为布尔值 |