车载以太网之要火系列 - 第43篇:郭大侠学SOME/IP :服务写死痛点多,SD出山更灵活
写在开篇·蓉儿挖新坑上回说到郭靖搞清楚了SOME/IP的报文头、Service ID、Instance ID、Method、Event、Field……学了一大堆。郭靖合上笔记本信心满满“蓉儿SOME/IP我算是学完了车窗服务用0x0300左前窗用0x0001升窗用0x0001我都记住了”黄蓉咬了口糖葫芦“那好我问你——车窗服务在哪个IP地址端口是多少”郭靖一愣“这……不是配死的吗”黄蓉叹了口气“配死的那如果车窗服务的IP变了或者换了一个新ECU你怎么办”郭靖挠挠头“改配置重新刷软件”黄蓉白了他一眼“这就是服务写死的痛。今天咱们就讲——为什么需要SOME/IP-SD。”一、服务写死的世界硬编码的噩梦黄蓉在白板上画了一个“配死模式”的图座舱写死配置 “车窗服务在 192.168.1.100:30490Service ID0x0300” “音响服务在 192.168.1.101:30490Service ID0x0200” “BMS服务在 192.168.1.102:30490Service ID0x0100”郭靖问“这样写死有什么问题吗”黄蓉反问“你想想——”场景服务写死的后果换了一个新ECUIP变了所有依赖它的客户端要改配置、重新刷软件服务临时下线客户端不知道继续发请求每次都超时新增一个服务所有需要它的客户端要手动添加配置同一个服务多个实例冗余备份客户端不知道有备份主挂了就彻底挂了开发阶段每换一个环境就要改一遍配置“服务写死的痛痛在‘牵一发而动全身’。”二、一个真实的“写死翻车”故事黄蓉讲了个真实案例某车企开发自动驾驶功能摄像头服务写死在配置里IP192.168.1.100。后来摄像头ECU升级换了供应商IP变成了192.168.1.200。结果——所有域控制器都不知道新IP自动驾驶功能直接瘫痪。解决方案30多个ECU挨个刷软件。产线停了2天损失惨重。郭靖瞪大眼睛“这……就改一个IP要刷30多个ECU”黄蓉“对。这就是服务写死的代价。服务地址一改所有依赖它的客户端都要改。”三、服务写死的“连锁反应”黄蓉画了一张“硬编码依赖链”┌─────────────┐ │ 座舱域控 │ └──────┬──────┘ │ 写死车窗在192.168.1.100 ┌────────────┼────────────┐ │ │ │ ▼ ▼ ▼ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ 左前车窗 │ │ 右前车窗 │ │ 左后车窗 │ │.100 │ │.101 │ │.102 │ └─────────┘ └─────────┘ └─────────┘“一个写死下游全绑死。改一个IP改一大堆配置。”郭靖若有所思“那如果车窗服务的IP不是写死在座舱里而是车窗服务自己告诉座舱‘我在这里’不就行了”黄蓉眼睛一亮“你终于说到点子上了。这就是SD做的事SD的故事就从这里开始哦。”四、拥有SD更灵活黄蓉在白板上写下SD的核心思想SD Service Discovery 服务发现服务端主动广播“我会啥我在这里。”客户端收到广播“哦原来你在那里。”对比方式座舱知道车窗服务的方式改IP后服务写死“车窗在192.168.1.100”要改座舱配置拥有SD车窗自己广播“我在192.168.1.100”车窗广播新IP座舱自动更新“有了SD服务端只改自己不用改别人。”五、SD的“江湖类比”黄蓉画了一个类比服务写死你朋友搬家了不告诉你新地址。你还跑去老地址敲门敲了半天没人应打电话问“你怎么不在家”朋友说“我搬了半年了……”拥有SD朋友搬家后给你发了条消息“我新家在XXX”。你收到后下次直接去新家。郭靖恍然大悟“哦SD就是‘我搬家了告诉你一声’”黄蓉点头“对而且SD不光告诉你‘新地址’还告诉你‘我提供什么服务’、‘我的服务多久有效’。”六、预告SD还能做什么黄蓉在白板上写下SD的三件套预告SD功能说明类比Offer Service服务端广播“我会啥我在这里”“我搬家了新家在XXX”Find Service客户端主动问“谁会啥”“有没有人知道车窗服务在哪”Subscribe客户端订阅事件组“你搬到新家后记得通知我”“这三个功能下几篇会一个一个讲。今天你只需要记住一句话服务写死痛点多拥有SD更灵活。”七、黄蓉的小本本郭靖翻开她的笔记本上面写着服务写死的痛服务地址一改所有客户端要改配置服务下线客户端不知道继续发请求新增服务所有客户端要手动添加冗余备份客户端不知道切谁SD的核心思想服务端主动说“我会啥我在哪里。”客户端被动听“哦原来你在那里。”拥有SD的价值改服务端不用改客户端服务即插即用动态发现写在最后郭靖合上笔记本“我明白了。服务写死一个IP改了所有依赖它的服务都要改。拥有SD服务自己广播‘我在这里’客户端自己发现——改服务端不用改客户端。”黄蓉咬了口糖葫芦“那你知道了为什么要用SD。下篇咱们讲——服务发现真神奇报文头里藏玄机。”打完收工886。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2615748.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!