写点什么

跨语言高性能 RPC 框架 Focus 发布 V1.2.0

作者:dinstone
  • 2024-02-02
    广东
  • 本文字数:1202 字

    阅读完需:约 4 分钟

2024-02-01 Focus 发布了 V1.2.0。


Focus 是下一代跨语言、轻量级 RPC 框架。旨在帮助程序员快速的开发微服务应用程序,简化多运行环境下的 RPC 编程,可以很轻松的实现云端编程和移动端编程。

改进的特性:

  • 删除了 RPC 协议层类 Call,Reply,Attach,重构了 RPC 异常处理机制

  • 添加 RPC 协议层类 Invocation,重构了 Handler API

  • 修复了 TelemetryInterceptor 在异常情况下的 bug

  • 给 Invocation 添加了访问 Service/Method config 的方法

  • 给 Invocation 添加了调用 Context

  • 重构了 ServiceLocater 到 ServiceLocator,优化了服务发现 ServiceLocator 类 DiscoveryServiceLocator 支持 Nacos and Consul service locator

Focus 简介

Focus 是下一代跨语言、轻量级 RPC 框架。旨在帮助程序员快速的开发微服务应用程序,简化多运行环境下的 RPC 编程,可以很轻松的实现云端编程和移动端编程。

通常,评价一个 RPC 框架是否优秀、高效能,有 3 个基本标准:

  • 简单易用,无侵入:不需要过多的研究使用文档,查看快速开始或 API 就能快速用起来,框架代码无需侵入业务代码就能完成调用。

  • 抽象适度,可扩展:框架分层耦合合理、模块职责内聚、实现简洁易懂,能覆盖绝大多数场景,对特殊场景可通过设置或扩展来满足需求。

  • 性能优越,可演进:“高性能” 永远是一个绕不开的关注点,框架的实现也是编码能力的体现,保持 API 不变,但实现可持续迭代改进。

Focus 框架在高效能方面做了很多的努力,贯彻最小侵入性设计理念,坚持面向对象的 SOLID 原则,追求极简协议和代码简洁,能够让开发者和企业更轻松地集成和使用 RPC 框架。

对于希望使用和学习 RPC 框架的同学来说,选择一个高效、易用、灵活和可扩展的框架非常重要。Focus 框架可以为他们提供更多的参考和选择,帮助他们更好地了解和掌握 RPC 框架的使用技巧和最佳实践。

特性

  • 跨语言支持。同时支持多种串行化协议:Jackson 和 Protobuff。

  • 模块化 API。模块化的客户端和服务端 API,可扩展的系统架构核心小于 1 MB。

  • 分层架构。合理严谨的分层(包括 API 层、代理层、调用层、协议层、传输层)使得依赖最小化、可控,适用于更多运行环境。

  • 可插拔的服务发现机制。支持 Consul,Nacos,Polaris 等常见注册中心。

  • 可插拔的调用拦截机制。可实现 Logging、Tracing、Metrics、限流、熔断等服务安全、可观测性、服务治理功能。

  • 支持同步调用、异步调用、泛化调用。满足各种场景下的不同诉求。

  • 高效的自定义协议。二进制消息交换协议 Photon 和 Focus 的 RPC 协议。

  • 不同级别的服务控制。全局级别、服务级别的序列化、压缩、超时、重试设置,方法级别的超时、重试设置。

  • Spring boot 集成支持友好。简化 Spring 应用的集成、开发难度。

快速开始

快速开始给出一个基础的例子,大家感受一下,同一台机器上的客户端和服务端的 RPC 编程是多么的简单。更多的例子可以参考例子工程 focus-examples

运行快速启动的最低要求是:

  • JDK 1.8 及以上

  • Maven 或 Gradle 工程管理工具


用户头像

dinstone

关注

天命之谓性,率性之谓道,修道之谓教。 2008-11-12 加入

一个热爱编程的架构师,在网络编程方面有一些惨痛经验。

评论

发布
暂无评论
跨语言高性能 RPC 框架 Focus 发布 V1.2.0_RPC框架_dinstone_InfoQ写作社区