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