跨语言 RPC 框架 Focus 发布 V1.4.0

原创
2024/05/30 21:45
阅读数 82

2024*05*30 Focus 发布了 V1.4.0。

改进的特性*

  • 升级了 Photon 版本到 1.2.4
  • 添加了上下文传播特性
  • 添加了泳道对灰度发布和分支特性隔离的能力
  • 增强了上下文关闭能力
  • 增强了Polaris的服务治理能力
  • 修复了连接关闭不能及时释放请求的错误

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 应用的集成、开发难度。

快速开始

更多的例子可以参考例子工程 focus*examples

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

  • JDK 1.8 及以上
  • Maven 或 Gradle 工程管理工具

其它评价

Focus是一个高性能的RPC*远程过程调用*框架*具有多项优秀的特性和设计。以下是对Focus框架的评价*

  1. 跨语言支持*
    • Focus框架是一个跨语言的RPC框架*这意味着它可以在不同的编程语言之间实现远程过程调用*极大地提高了系统的灵活性和可扩展性。
  2. 轻量级设计*
    • Focus被设计为轻量级框架*其系统架构核心小于1MB*使得它在资源消耗上非常高效*适合在云端和移动端等环境下使用。
  3. 高性能*
    • Focus在性能上进行了大量的优化*包括序列化和反序列化、网络通信等方面*以确保远程调用的高效性和快速性。
  4. 模块化API*
    • Focus提供了模块化的客户端和服务端API*使得开发者可以根据需要灵活地使用和扩展框架的功能。
  5. 分层架构*
    • Focus采用了合理严谨的分层架构*包括API层、代理层、调用层、协议层和传输层等*使得系统的依赖最小化、可控性强*并且易于扩展和维护。
  6. 可扩展性*
    • Focus具有良好的可扩展性*支持多种服务发现机制*如Zookeeper、Consul、Nacos等*、多种序列化协议*如Jackson和Protobuff*以及多种调用过滤机制*如Logging、Tracing、Metrics等*。
  7. 易用性*
    • Focus的API设计直观、简洁*易于理解和使用。同时*Focus提供了丰富的文档和示例代码*帮助开发者快速上手和实践。
  8. 社区支持*
    • Focus框架有一个活跃的社区支持*开发者可以在社区中寻求帮助、分享经验*并参与到框架的开发和维护中来。

综上所述*Focus是一个高性能、轻量级、跨语言的RPC框架*具有优秀的模块化设计、可扩展性和易用性。它适用于微服务架构下的远程过程调用场景*并可以帮助开发者快速构建高效、可靠的分布式系统。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部