拆分中解决的核心问题
1.会话共享
2.数据同步
首先,说说会话共享
实现会话共享离不开session 与 cookie 域的处理。
对于常规单体应用而言,一个完整的域名,就是一个cookie 域。一般单应用的会话共享方案,是基于cookie中存储一个token (如sessionid)这样的东西,每次传递到后端,由插件自动完成从redis中取出,校验其登录状态。
但是拆分之后每个应用的三级域名都不一样。所以,这里需要特殊处理。处理的方式,大体上有两种方向。
方向一,只配置到二级域名,三级域名自动也能识别。(例如www.xiaotian.shi,login.xiaotian.shi)。
方向二,自行定制token 后端跨全域名处理。(全都是www.xiaotian.shi,通过nginx映射context-path处理)当然,第二种方案更一本万利,但是成本略高。笔者选第一种,原因很简单,成本小,三级域名区分不同的系统,很清爽的风格。
项目地址 https://github.com/shixiaotian/xiaotian.shi-plat.git
demo http://www.miledao.top/
账户密码
admin admin
user1 user1
user2 user2
user3 user3