这一篇是原理篇,接下来还会有一篇实战篇,实战的相关代码是非常火的一个开源项目叫:xxl-sso一、简介单点登录(SingleSignOn),简称为SSO。它的解释是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。所谓一次登录,处处登录。同样一处退出,处处退出。二、背景在我们企业发展初期的时候,企业内部使用的系统都会比较少,一般也就一个或者两个,每个系统有自己的登录功能。运营人员将自己的账号登录还是很方便。但是随着公司的发展,公司的系统越来越多,比如有OA系统、CRM系统、财务管理系统、设备管理系统等,这个时候总不能每个系统都登录一遍吧,那真的会崩溃的。合理做法是用户只需要
作者|werat译者|言征策划|云昭当人们说“调试器是无用的,使用日志和单元测试更好”时,我怀疑他们中的许多人认为调试器只能在某些行上设置断点,一步一步地通过代码,并检查变量值。虽然任何合理的调试器都可以做到这一切,但这只是冰山一角。想想看;40年前,我们就已经可以通过这一代码了,当然有些事情已经改变了吗?1、断点每个调试器都支持断点。在代码中的某一行上设置断点,当执行到达该行时,程序将停止。但现代调试器可以做的远远不止这些。列断点。你知道不仅可以在特定的行上设置断点,还可以在行+列上设置断点吗?如果一行源代码包含多个表达式(例如,foo()+bar()+baz()等函数的调用),那么可以在
作者|werat译者|言征策划|云昭当人们说“调试器是无用的,使用日志和单元测试更好”时,我怀疑他们中的许多人认为调试器只能在某些行上设置断点,一步一步地通过代码,并检查变量值。虽然任何合理的调试器都可以做到这一切,但这只是冰山一角。想想看;40年前,我们就已经可以通过这一代码了,当然有些事情已经改变了吗?1、断点每个调试器都支持断点。在代码中的某一行上设置断点,当执行到达该行时,程序将停止。但现代调试器可以做的远远不止这些。列断点。你知道不仅可以在特定的行上设置断点,还可以在行+列上设置断点吗?如果一行源代码包含多个表达式(例如,foo()+bar()+baz()等函数的调用),那么可以在
富Web时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。本节我们就来探索一下Docker的神秘世界,从零到一掌握Docker的基本原理与实践操作。别再守着前端那一亩三分地,是时候该开疆扩土了。我们将会围绕下面几点展开:认识Docker核心概念安装Docker快速开始常规操作最佳实践为了更好的理解Docker是什么,我们先来讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去。这时候按以往的办法,我只能去海边,再次搬石头、砍木头、画
富Web时代,应用变得越来越强大,与此同时也越来越复杂。集群部署、隔离环境、灰度发布以及动态扩容缺一不可,而容器化则成为中间的必要桥梁。本节我们就来探索一下Docker的神秘世界,从零到一掌握Docker的基本原理与实践操作。别再守着前端那一亩三分地,是时候该开疆扩土了。我们将会围绕下面几点展开:认识Docker核心概念安装Docker快速开始常规操作最佳实践为了更好的理解Docker是什么,我们先来讲个故事:我需要盖一个房子,于是我搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。结果,住了一段时间,心血来潮想搬到海边去。这时候按以往的办法,我只能去海边,再次搬石头、砍木头、画