
这两年跑过不少城市的交通口项目,跟市里的交管、市政兄弟(现在停车办大多归到城管或者交通局了)聊得最多的一件事,其实不是前端那块车牌识别准不准,而是后台系统到底扛不扛得住。路侧停车电子收费这事儿,表面上看是路口立个枪机、地磁埋下去,车主手机上扣个费,但真要把全市几万个泊位纳管进一个平台,还能做到毫秒级响应,背后的微服务治理简直就是一场没硝烟的持久战。
早些年很多地方搞智慧停车,图快,直接拿套开源代码改改就上了。单体应用里头塞满计费逻辑、支付回调、设备心跳。平时没什么,一到节假日或者早高峰,某个片区突然涌入几千辆车,识别服务狂发请求,数据库连接池瞬间被打满。这种“雪崩”我在华北一个地级市亲眼见过,早八点高峰期,整个收费系统瘫痪了二十分钟,热线被打爆。后来复盘,就是典型的没做服务隔离,一个慢SQL把整个线程池占死了,连带着计费全废。
所以现在市政板块接电子收费,微服务化已经不是“要不要”的问题,而是“怎么治”的问题。
先说服务拆分。路侧停车的业务链其实很长:感知层(地磁/视频)上报、车牌校正、计费引擎、账单生成、支付网关、违停取证推送。这里面最忌讳的就是把计费引擎和硬件心跳耦在一起。我们现在的做法,是把高并发的“设备状态上报”单独拆成无状态服务,走消息队列削峰。而核心的“计费与优惠策略”做成独立域,甚至针对不同区县做多租户隔离。这样某个区搞活动,优惠规则乱变,绝不会影响到主城区的正常扣费。说白了,微服务治理的第一步,是让故障爆炸半径尽可能小。
再说毫秒级响应这块。市政系统对接财政非税收入,每一笔扣费都要留痕,还得防篡改。链路长了,延迟就上来了。我们之前测过,如果在同步链路里硬调第三方支付和短信,P99延迟能飙到800毫秒以上,车主出场体验极差。后来在治理层面上了服务网格(Service Mesh),把鉴权、重试、超时控制全塞进Sidecar里,业务代码反而干净了。加上全链路的灰度追踪,哪一步慢了一目了然。现在核心接口的P99能压在50毫秒以内,才敢跟业主方拍胸脯说“毫秒级”。很多同行以为加机器就能解决延迟,其实不对,服务间的网状调用不治理,机器加得越多,超时 cascade(级联)越厉害。
治理里头最容易被忽视,但市政项目又最看重的,是容错和灰度。路侧停车系统不同于互联网APP,它带点半执法性质。系统升级不能停,设备固件推送不能乱。我们在微服务网关层做了很细的流量调度,新版本计费服务先放5%的路边泊位进去跑,观察一天对账没问题,再全量。遇到第三方地图服务商API抖动,直接熔断,降级到本地最后一次有效计费策略,保证车辆不至于因为系统抽风而被卡住(虽然是纯电子收费没栏杆,但账单不能错)。之前跟某新一线城市的停车办负责人聊,他最怕的就是“半夜升级导致早上出不了账单”,所以我们把配置中心玩得很溜,策略变动秒级下发,不用重启节点。
其实搞市政数字化,技术人容易陷入两个极端:要么觉得用最新框架就万事大吉,要么觉得稳字当头不敢拆。路侧停车电子收费的微服务治理新解,核心不在于堆技术名词,而在于摸清城市交通的呼吸节奏。高峰期怎么削峰,平峰期怎么对账,财政接口怎么合规又不拖慢性能。这些细节,招标文件里写不出,全是踩坑踩出来的经验。
回头看,毫秒级响应不过是用户体验的最表层。水面下,那是无数个微服务在注册中心里健康心跳,在配置中心里动态刷新,在监控大屏上平稳跳动的曲线。对于市政管理者来说,系统不出错,百姓无感缴费,就是最好的治理。而这,恰恰是微服务架构在政务民生领域最该有的样子。