饿了么:基于SpringBoot的Web层服务开发实战!

内容来源:2017年5月21日,饿了么架构师孙立伟在“饿了么技术沙龙【第六弹】北京研发中心·Java专场”进行《基于SpringBoot的Web层服务开发实践》演讲分享。IT 大咖说(WeChat_ID:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:1082 | 4分钟阅读

获取嘉宾演讲视频回放及PPT,请点击:http://t.cn/RkI2Mcx

摘要

在饿了么各类业务和运营系统中,普遍使用了基于Token的认证机制。本次分享,介绍一个通用的、可扩展的SpringSecurity Filter支撑这些业务系统开发,在实际应用中取得了良好的效果。

包括以下内容:

1. 嵌入式Servlet容器的引擎的原理和机制

2. Spring MVC自动化配置的背后详情

Spring Boot的设计目标

使Spring Framework的应用开发变得简单,容易上手。非侵入性地提供一套常用的配置,“非侵入性”保证了用户可以随时覆盖所有的默认配置。提供更多的基础性、非业务的功能(内置Web容器、权限认证机制、监控、应用配置管理等等),完全不依赖XML配置。

Spring Boot不能取代Spring Framework。想要用好Spring Boot,必须对Spring Framework有足够的知识。

基于Spring Boot的应用

独立可执行Jar;内置Servlet容器(Jetty/Tomcat/Undertow),不用部署war包;自动化配置机制,对常见的Spring基础组件(Data、Security、MVC、MQ…)提供“即开即用”的默认配置。

Cloud Friendly:脚本可定制,适配init.d/systemd;External Configuration灵活的配置注入机制;Actuator应用管理和监控。

Spring Boot是Spring Cloud的基础,它所有的特性就是为了让JAVA应用在当下的云环境中更容易地部署执行,实现微服务。

基于Token的认证机制

根据任意一种认证手段,如用户名+密码、手机号+验证码等方式生成Token。

我个人认为Token是为了取代现在传统的、基于session认证机制的一个机制。Token是一个灵活的解决方案,更适用于移动端开发。

因为传统基于session的机制非常限制应用程序水平的扩展,我们不得不去维护session的一致性,对当下云计算环境中的水平扩展有害。

基于Token的认证机制推荐标准是JWT。

应用场景

移动端用户认证解决方案;RESTful API开发;替代传统的基于Session的用户认证登录机制。

Talk is cheap Show me the code.

思考

如何强制收回一个有效的Token?

可以用redis,需要注意的是,一旦用了redis,就会有状态的维护和扩展的问题。

Token有效期设置多长合适?

这个问题需要根据业务场景、依据业务系统和类型去仔细考虑。

Token的缺点

当使用JWT的时候,很容易让开发人员在Token里面塞入太多的东西。Token的职责应该尽量单一,它只是用于做认证鉴权。不要基于Token做太多的业务逻辑,Token的体积不能太大。这在架构层面没有统一的解决方法,只是依赖于业务系统规则的约束。

Spring Boot是打开Spring Cloud大门的钥匙

饿了么目前的服务治理已经有了成熟的现有框架,和Spring Cloud会有一些相关的冲突,这是我们业务系统的现状。基于Spring Boot,我们正在做的就是如何把Spring Boot改造成适合我们公司的框架。

饿了么业务的特点就是它的高峰和低峰期特别明显,对于所有系统的弹性要求非常高。我们的CTO一直在规划Cloud Native整体的架构。在我们内部有一个通用的API网关系统,它的认证鉴权系统是就是一套基于Token的可扩展的框架。这个网关系统,就是完全运行在Mesos平台之上的。

我今天的分享就到这里,谢谢大家!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,695评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,569评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,130评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,648评论 1 297
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,655评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,268评论 1 309
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,835评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,740评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,286评论 1 318
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,375评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,505评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,185评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,873评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,357评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,466评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,921评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,515评论 2 359

推荐阅读更多精彩内容