近日,信也科技正式对外推出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将在不久的将来开源至社区,助力行业提升微服务改造治理的能力。
敬畏科学,潜心钻研,这是信也科技不变的理念,未来充满挑战和机遇的环境中,信也科技希望能不断提升自身的技术能力,促进行业提高能效,携手合作伙伴一同探索让金融服务更美好的道路。
(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )