信也科技推出Radar微服务框架 助力行业提升微服
1月6日,信也科技正式对外推出Radar微服务框架,此微服务组件如其名称一样,像雷达般迅速,可有效提高架构灵活性与服务可治理性。
近年来,微服务框架在各业务场景中已大量落地。信也科技在对内部系统进行微服务改造的过程中,摸索出了一条独具特色的道路。
在进行服务治理的初期,微服务的整体状况是Spring Boot应用之间相互访问,是通过域名进行远程调用,中间基于Nginx转发。随着业务的增长,这种方式在系统性能、运维效率与服务治理方面的弊端越来越显著,信也科技需要一套更加完善的微服务框架来适应业务与技术的增长。
2019年,信也科技曾考虑过市场上其他的微服务方案。例如,曾尝试使用SOFA改造信也科技的存量项目,但存在代码改动大、故障多等问题,在接入数十个应用后最终决定终止。此后,在调研了Service Mesh等业界微服务相关资料的情况下,经过反复的方案对比与权衡,信也科技基础组件的架构师另辟蹊径,自主研发了一款轻量级、0成本接入的微服务框架--Radar。
作为信也科技自主研发的微服务框架,Radar能兼容包括SOFA在内的存量系统,在无需修改代码的情况下,提供注册发现、熔断限流、服务路由、拓扑关系可视化展示等高级服务治理功能;在现有应用的改造过程中,对服务上下游的升级与接入顺序没有强制要求;同时为确保系统升级风险完全可控提供了完善的回退机制。
Radar整体架构示意图
据了解,Radar是通过在消费方和提供方之间引入“拦截器”的方式来提供微服务的相关能力。具体实现步骤如下:
第一,服务提供方在启动时,会将当前应用的域名、IP和端口等信息向注册中心注册。注册成功后,会定时向注册中心发送心跳来保活。
第二,当消费方在发起请求时,通过拦截消费方的请求,将域名替换成IP和端口,直接调用提供方。如果提供方未注册到注册中心,此时还是采用传统的域名方式调用。
第三,当服务提供方收到请求时,拦截器会拦截入口请求,可做参数透传等功能。
第四,当服务提供方信息发生变更时,注册中心会将提供方的信息主动推送到消费方。
同样使用拦截器,相比Service Mesh,Radar提供了进程内的流量控制,避免性能损失。此外,Radar基于Java语言开发,能保障技术栈的稳定性与维护能力的可靠性。接入 Radar只需引入框架依赖,具有代码改动小,风险低的优势。
Radar具体包含以下五项功能:
第一,定制路由规则。Radar提供了灵活多样且基于Header和Request的路由定制,用户可通过控制台即可便捷地配置并实时下发,无需应用重启。
第二,构建拓扑关系。应用在发起调用时,拦截器会将当前的域名信息向下游透传,当下游收到此请求时,会将上下游关系记录下来,形成拓扑关系,方便查看应用之间的关系。
第三,透明监控埋点。应用发起调用时,拦截器会自动做监控埋点,一旦出现问题,可方便排查与定位。
第四,服务熔断限流。在应用服务的提供方中,内置熔断限流组件。当出现流量突增时,可通过控制台设置,快速进行限流熔断。
第五,生成Mock测试。在真实的测试环境中,由于链路较长、参数复杂,难以构造。当出现问题时,难以调试排查。通过接入Radar微服务框架的客户端,会自动记录HTTP请求的参数信息。当出现问题时,可通过后台对某个接口进行重新调用,方便调试。
Radar除了能满足生产环境所需的服务治理功能外,还能满足测试工作对多环境的强烈需求。
传统上,在多团队并行开发的时候,往往会出现争用测试环境的现象。一般的解决方法是在成本范围内建设尽可能多的冗余的测试环境,但会面临较明显的资源浪费,代码特性干扰,测试数据覆盖等难题。通过Radar的注册发现和流量管控功能,可以快速的虚拟出多个互相独立的测试环境,用完后可以快速销毁,从而消除测试环境少带来的测试任务拥挤,测试代码和数据互相干扰,和服务器浪费的现象。
基于Radar的多环境原理,接入Radar的应用会优先调用同一环境。如当前环境没有部署实例,则会调用公共环境的Default实例,从而形成完整的环境调用。此种方式可保证用最少的应用实例构建完整的调用链路,理论上可创建无限多的子环境。目前基于Radar创建的测试环境中的应用实例已经大大超过生产环境的实例,极大方便了测试工作。
基于Radar的多环境原理
从2020年1月份MVP版本上线至今,Radar在信也科技已经接入了500多个应用,每天调用量达到千亿次。Radar的落地效果也证明了该框架的价值:显著提升了网络性能,对比Nginx代理耗时平均降低了15%,最多可降低40%,网络硬件设备负载降低了60%多;接入成本较低,应用接入Radar微服务组件相较于接入Sofa Stack,平均耗时由5个工作日降低到1个工作日,效率提升80%;降低发布风险,原生支持精细化流量管控,高效支持灰度测试,通过Radar灰度的应用,放量稳定性提升30%多。
信也科技基础组件Radar团队将不断完善Radar的功能和推广规范化,包括增加扩展点,允许用户自定义特定功能,支持调用失败重试,推广契约优先的编程方式等。同时,Radar将在不久的将来开源至社区,助力行业提升微服务改造治理的能力。
2020年以来,信也科技自主研发的云计算平台Stargate、数据库管理解决方案——精卫平台、智能机构资金管理平台——魔方平台均已成功上线,随着Radar微服务框架的正式发布,展现了信也科技在技术平台方面做出的努力与贡献。未来,信也科技将持续在科技领域深耕,促进行业提高能效,与合作伙伴互融共赢。