微服务把我坑了!

Spring Security微服务安全:3个致命坑,90%的团队都踩过! 摘要: Spring Security微服务适配存在三大致命坑:1)认证机制混乱导致用户需多次登录,应采用OAuth2+JWT统一认证;2)授权策略不一致引发数据权限冲突,需通过RBAC模型统一管理;3)服务间通信不安全易被中间人攻击,须使用HTTPS或服务网格加密。文中通过代码对比展示错误与正确实践,结合血泪教训强调统一安全架构的重要性。 关键点: 认证中心避免"登录地狱" 统一授权解决权限分裂 安全通信防数据篡改 代码示例+吐槽直观呈现问题 (字数:148) 阅读详情

技术总监张大胖在朋友圈看到一篇文章,讲的是Netflix的微服务实践。 

研究了一会儿以后,他不由地拍案叫绝:每个服务都是一个组件,可以

1. 独立开发 

2. 独立部署 

3. 独立伸缩

人家Netflix居然可以在生产环境随意地停掉微服务测试稳定性,这真的把张大胖镇住了!

张大胖上网搜索一番,发现网上已经有很多文章了,很多公司已经开始使用微服务了,输出了很多最佳实践,自己还不知道,太落伍了,这绝不能容忍!

他马上召集部门开会,商量微服务改造事宜。 

技术狂热粉小王率先发言:“现在支持微服务的有很多框架,比如SpringCloud , Dubbo等, 张总可以选择一下!”

张大胖找到了支持者,向小王投去了赞许的目光。

爱思考的小李说到:“张总, 我们维护的是一个企业内部系统,好像也不太复杂啊,需要改造成微服务吗?”

张大胖反问:“怎么不需要?微服务是未来业界的趋势,不顺势而为就会被时代抛弃。以后你没做过微服务,出门好意思给别人打招呼吗?!”

没人说话了。

张大胖又补充一句:“每个服务都是独立的,大家可以用自己喜欢的编程语言去开发啊!”

这句话太有杀伤力了, 各个开发人员浮想联翩:

小李:“嗯,我要试一下Go”

小王:“我正在学JavaScript,可以搞下Node.js”

小刘:“趁此机会练习下Python”

看到大家脸上的表情,张大胖心中暗喜, 他讲了一下自己选择的RPC框架,支持服务发现,负载均衡、网关、故障转移等各种功能。

然后他带着大家把现有系统做了划分,拆分成12个微服务,它们之间通过REST API调用。

微服务改造之路正式开启!

第一周:

小李:“张总,现在配置个本地环境可真是麻烦啊,我负责的服务依赖其他五个服务,没法本地运行啊。”

张大胖:“嗯,这我事先倒是没想到,我看到大家都在用docker,要不我们也把微服务都形成docker镜像?这样每个人都可以在本地运行整个环境了。”

小李:“这能行吗?我的机器性能差,这么多微服务跑不起来吧?”

张大胖:“没事, 我申请经费,每人一台高性能电脑!”

第二周:

小王:“张总,你看我们每个微服务对应一个自己的数据库,原来的事务做不了了。”

张大胖大吃一惊,怎么把这一茬给忽略了!他知道分布式事务,两阶段提交,三阶段提交, 但是性能差,稳定性不好,上网搜锁了一下,发现了TCC,但是对业务的侵入性强,最后确定用“最终一致性”这么一个宝贝,发给了小王。 

小王看完后说到:“张总,这还得实现重试和幂等性啊,真是麻烦啊。”

张大胖拍拍小王的肩膀:“小伙子,要有开放的心态,这是多么好的学习机会啊?”

第三周:

小梁:“张总,这么多微服务,我为了定位一个问题,花了一个上午的时间,一个服务一个服务地查找,累死个人啊。”

张大胖很无奈,搜出一个“链路跟踪”的开源解决方案Zipkin,扔给小梁去实施。

看着密密麻麻的配置,小梁觉得很崩溃。

第四周:

小蔡:“张总,这日志文件都分布在不同的机器上,查看起来太麻烦了。”

张大胖找到一个“ELK日志分析”的解决方案,扔给小蔡去实施。

第五周:

小刘:“张总,小梁改了微服务的接口,增加了一个参数,他没给其他人说, 我们的微服务都没法运行了!”

张大胖说:“小梁怎么能这么做呢?”

小刘:“原来在一个工程中,在编译阶段就能发现接口的不匹配,现在都是靠文档约定的接口,发现问题就晚了。”

张大胖搜出一个“契约测试”,发到群里:“以后的服务改动,必须得通过契约测试!”

第六周:

小李:“张总,我们这12个微服务,每个服务部署3个实例,我昨天熬了一宿,才手工部署完成,必须得自动化了,要不咱们也来一套k8s?”

张大胖拍拍小李的肩膀:“小伙子挺有想法,微服务可不就得搭配k8s吗,搞起来!”

经过几个月的996的开发,微服务改造过的系统隆重上线,各种新技术在其中闪闪发亮:服务发现,负载均衡、网关、故障转移,最终一致性,链路跟踪,日志分析,契约测试,docker, k8s......

张大胖心满意足。

CEO把张大胖叫进了办公室。

CEO:“张大胖,你说搞系统改造,我还给你批了资金,现在系统怎么越来越慢了?”

张大胖:“老板您有所不知,我们的系统现在变成分布式的了,分布式系统要略微慢些。”

CEO:“我就问你,我就想看看这个报表,为什么半天都出不来结果?”

张大胖:“因为我们现在是微服务架构,这涉及到多个服务调用!我们实现了网关,负载均衡,故障恢复等很多高级的功能,不信您看,每个服务有3个实例,我把任意一个杀掉, 系统就会自动启动一个新的, 和Netflix一样..... ”

CEO 怒了:“你疯了吗?我们这个是内部应用,公司一共才几百人,你瞎搞啥负载均衡,故障转移!”

第二天, 张大胖被开除了。 

张大胖离开之前对组员说:“唉,没办法,领导们只关注业务,不关注技术的发展趋势,我要走了,大家以后好自为之吧。”

小李嘀咕道:“这技术不就是为业务服务的吗?微服务看起来很美,但是根本不适合我们。”

小王说:“张总,别听小李瞎说,我们学会了微服务,简历中也有干货了。”

张大胖心中一亮, 回去赶紧修改简历,加上了这么一条:

领导了单体项目向微服务的迁移,精通微服务的架构设计,部署,监控。 

后记:

写这一篇小品文,是想说明一个道理:不能“手里拿着一个锤子,眼中看到的全是钉子”,微服务虽好,也有适用的范围, 有很多项目单体应用活得好好的,根本没有拆分的必要,盲目追风,反而得不偿失。

(完)

如何降低程序员的工资?

程序员,你得选准跑路的时间!

两年,我学会了所有的编程语言!

一直CRUD,一直996,我烦透了,我要转型

字节码万岁!

上帝托梦给我说:一切皆文件

Javascript: 一个屌丝的逆袭

Node.js :我只需要一个店小二

我是一个线程

TCP/IP之大明邮差

一个故事讲完Https

CPU 阿甘

【回眸】Tessy集成测试软件使用指南(一)新手使用篇 这个专栏的文章前4篇都在记录如何使用Tessy进行单元测试,集成测试需要有一定单元测试基础,且做集成测试之前,需要做好单元测试,否则将会大幅增加软件单元代码纠错的代价。集成测试所花费的时间通常远远超过单元测试。如果直接从单元测试到系统测试,结果往往是不理想的。集成测试可以检测由于单元相互交互而导致的错误,通常由一组专业的测试人员执行。 阅读详情

相关推荐

第四篇:关于python程序打包的问题-找不到fsspec

这个问题困扰了我将近两天的时间一直找不到什么好的办法,甚至打算放弃。主要原因是身边没有可以述说的人,也没有可以请教的人。正在想要放弃的时候找到了解决办法。 打包后运行程序是这样的, 大概意思是找不见fsspec这个依赖,刚接触python说实话对于这些第三方库理解不是很到位,我的理解就是:类似于java程序中的jar包,程序找不见了。可怎么让他找见了,刚开始以为我自己没有安装fsspec,在cmd中进行了安装,结果如下图所示 很明显,已经安装并且安装目录都有,跟着网上的一些解决办法,在打包的时候把这.

weixin_47861710的博客 5865

华为od招聘“为的就是这块技术”

5.很多人对华为加班有偏见,我们是周三五 6点下班,周二四 8.35下班,周一随意。午休 2 小时,晚饭 1 小时。4.博士团队带队,世界领先技术,入职两导师6个月二对一辅导,一人一策发展路线。3.od少是因为20、21年入职的od员工转正了(部门每年预算、人力花不完)“生化环材”转行的,也拿个offer保个底,一起加入搬砖集体。毕业即入坑的,先拿个offer保个底,怼起主管无压力。要求:最高学历是统招的985、211,不看第一学历。安全领域:AI、大数据、开发、测试;2.部门od很少,压力小。

2401_82778117的博客 1944

实战对比:VINS和ORBSLAM3在无人机避障中的表现(含实测数据)

本文通过实战测试,深度对比了VINS和ORBSLAM3两种主流视觉SLAM算法在无人机避障中的表现。测试聚焦于光照变化、动态遮挡和快速运动三大挑战,提供了详细的实测数据与性能分析。结果表明,VINS在计算效率和实时性上占优,而ORBSLAM3在定位精度和地图管理方面更稳健,为不同应用场景下的工程选型提供了清晰依据。

醉三国 627

为了技术而技术(微服务)

技术总监张大胖在朋友圈看到一篇文章,讲的是Netflix的微服务实践。 研究了一会儿以后,他不由地拍案叫绝:每个服务都是一个组件,可以 1. 独立开发 2. 独立部署 3. 独立伸缩 人家Netflix居然可以在生产环境随意地停掉微服务测试稳定性,这真的把张大胖镇住了! 张大胖上网搜索一番,发现网上已经有很多文章了,很多公司已经开始使用微服务了,输出了很多最佳实...

极界的博客 1039

Redis+QMT实战:如何用Stream模式实现聚宽策略的毫秒级跟单(附完整代码)

本文详细介绍了如何利用Redis Stream模式构建一个低延迟、高可靠的量化交易信号中继系统,实现从聚宽策略到本地QMT的毫秒级跟单。通过对比传统方案,解析了Redis Stream在消息持久化、消费组和显式确认方面的核心优势,并提供了完整的架构设计思路与核心代码实现,帮助量化开发者解决云端策略信号稳定传递至本地实盘的难题。

weixin_29280657的博客 477

Proteus下载安装快速入门:30分钟掌握全过程

手把手教你完成proteus下载安装,从环境配置到首次运行一气呵成,适合电子设计新手快速掌握仿真工具的核心操作步骤。

weixin_31974443的博客 891

能够公司呆下去,靠的是一份迷茫!

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,非公众号转载保留此声明。小时候家里挂了一幅画,上书“难得糊涂”。在很长一段时间里,我认为“傻”是一种能力。直到后来才明白,傻并不是,“装傻”才是。因为一些不可描述的原因,有家公司的员工,普遍都比较迷茫:活不知道怎么干,路也不知道怎么走。鉴于这样的现状,自认为自己是管理层的人,想要 xjjdog 传播一点前沿知识,指点一些方向。我思来想去,...

小姐姐味道 489

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

华为od招聘

od招聘

weixin_72414159的博客 1393

别再为淘宝滑块发愁了!一个Python脚本自动获取x5sec cookie的保姆级教程

本文提供了一套完整的Python自动化解决方案,帮助开发者轻松应对淘宝滑块验证码问题。通过模拟浏览器行为、精准识别滑块缺口位置和生成拟人化移动轨迹,脚本能够自动获取关键的x5sec cookie,显著提升爬虫效率。教程涵盖环境配置、验证机制分析、代码实现及反检测策略,是解决淘宝滑块验证的实用指南。

weixin_30300225的博客 574

C++坦克大战源代码

【代码】C++坦克大战源代码。

强国豪,林中霖 2609

微服务开发遇到的坑以及治理方案

对新增、更新类型的接口多次调用,由于未做幂等措施。慢接口的请求qps过高打满应用线程池数。上游服务接口不稳定级联影响接口。2. 消息中间件异步解耦。1. 对上游接口异步调用。1. 对接口实现加锁。

1855

【Autoware】Autoware.universe安装过程与问题记录

Autoware.universe安装过程与问题记录

DevFrank的博客 2740

微服务就是个坑!

点击上方 "大数据肌肉猿"关注,星标一起成长点击下方链接,进入高质量学习交流群今日更新| 950个转型案例分享-大数据交流群为什么大多数公司最好要避免使用微服务呢?微服务看起来是一种很好...

a934079371的博客 813

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

微服务改造:踩过的坑!

在技术团队里,我亲身经历了从一个 2~3 人初创阶段的团队到百人规模技术团队的演变也见证了技术栈和系统架构从传统到现代的变迁从最初使用的JSP,到如今前后端分离+SpringCloud的微服务架构我们的技术、架构和运维模式经历了翻天覆地的变化。复盘一下自己走过的路,尤其是微服务拆分过程中所踩过的那些坑,背过的锅。。。这里来复盘一下,传统项目改造成微服务架构时,系统拆分所踩过的坑。

Hanko的专栏 440

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

“微服务”都要把我坑惨了!

都2020年了 还没用过微服务吗?面试的时候高并发回答的总是不能让面试官满意?一个互联网项目究竟有多少细节?网上搜了一堆秒杀系统方案,究竟真实的线上电商该怎么做?那么你缺乏这两个字实 战...

架构文摘 205

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

被微服务循环依赖调用坑了 !

鉴于这个环形依赖调用确实是这个迭代版本中引入的变更,虽然没有理清其中的因果关系原理,但是这个环性依赖调用还是很可疑的,而且这个环形调用是可以通过其他方法消除的。通过这个图示,我们可以发现,如果容器中接收请求的线程池如果都在等待服务Boo.boo() 的响应,而 Boo 又需要调用回服务 Foo.another()。最近的迭代转测后,遇到了一个比较有意思的问题。这种情况往往是服务之间的调用没有约束导致的,为了方便取到或更新数据,服务之间可以随意的调用,以”微服务“为设计目标的系统会逐渐演变成一个。

2301_78526383的博客 1503

小心别掉进微服务的“坑”里!

????这是一个或许对你有用的社群????一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事中“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

weixin_44421461的博客 196

微服务循环依赖引发惨案,有坑!

???? 欢迎加入小哈的星球,你将获得:专属的项目实战 /1v1 提问/Java 学习路线 /学习打卡/每月赠书/社群讨论新项目:《从零手撸:仿小红书(微服务架构)》正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...,点击查看项目介绍;《从零手撸:前后端分离博客项目(全栈开发)》2期已完结,演示链接:http...

犬小哈 282

微服务改造血泪史:数据库拆分踩过的那些坑!

今天来复盘一下微服务中数据拆分过程中所踩过的那些坑,背过的锅。。。这里来复盘一下,传统项目改造成微服务架构时,数据库拆分所踩过的坑。

Hanko的专栏 520

实战复盘!我们用FastAPI重构微服务,性能提升300%的踩坑经验

成功经验:渐进式迁移:不要一次性重写,风险太大契约先行:先定义API接口,前后端并行开发监控驱动:没有监控就不要上线新功能自动化一切:CI/CD、测试、部署都要自动化踩过的坑:服务拆分过细:最初把用户服务拆成了4个微服务,后来合并为1个分布式事务滥用:试图用2PC保证强一致性,结果性能惨不忍睹配置管理混乱:每个环境手动改配置,导致多次线上事故服务网格(Service Mesh)引入,进一步解耦服务治理逻辑机器学习模型在线学习,实现个性化推荐实时更新多活架构建设,提升系统容灾能力。

haolove527的专栏 939

致传统企业朋友:不够痛就别微服务,有坑!

微服务落地是一个复杂问题,牵扯到IT架构,应用架构,组织架构多个方面在多家传统行业的企业走访和落地了微服务之后,发现落地微服务是一个非常复杂的问题,甚至都不完全是技术问题...

Docker的专栏 919
上一篇: 最全干货:从写简历,到面试、谈薪酬的那些技巧和防坑指南
下一篇: 面试过关,扔掉并发编程!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值