
Jina 是一个 MLOps 框架,赋能开发者在云上构建多模态、跨模态的应用程序。Jina 能够将 PoC 提升为生产就绪服务。基础设施的复杂性交给 Jina,开发者能够直接轻松使用高级解决方案和云原生技术。
💡Jina 3.10.0 现已正式发布!
本次更新包含 8 个新增功能、2 个性能改进、7 个错误修复以及 2 个文档改进。
🆕 新功能
jina ping在本地和 Kubernetes 上作为就绪探针启用(#5200)
此功能让您能够检查整个 Flow 或其各个组件的准备情况:
jina ping flow grpc://localhost:12345
jina ping executor localhost:12346
jina ping gateway grpc://localhost:12345
成功输出:
INFO JINA@28600 readiness check succeeded 1 times!!!
输出失败:当就绪检查不成功时,此命令将 exits with code 1
因此,在 Kubernetes 中部署时用作 Executor 和 Gateway 的就绪探针是一个不错的选择。
添加参数以指定将退出运行时的异常(#5165)
您可以指定哪些 Exceptions 应该触发受影响的 Executor 终止:
Flow().add(uses=MyExecutor, exit_on_exceptions: ['Exception', 'RuntimeException'])
这确保了 Executor 不会陷入无法使用但技术上仍处于活动状态的状态,并且可以重新启动 Executor。这在通过 Kubernetes 自动重启 Executor 时特别有用。
client.post的重试机制(#5176)
client.post()接受max_attempts、initial_backoff和参数来控制重试请求的能力max_backoff,backoff_multiplier当发生瞬时连接错误时,使用指数退避策略:
client.post( on='/', inputs=docs, max_attempts=5, initial_backoff=0.1, max_backoff=0.5, backoff_multiplier=1.5)
添加对各处请求大小的监控 (#5111)
现在在任何地方都可以监控请求的大小 ( jina_request_size_bytes) :每个 Executor、每个 Gateway 和每个 sharding Head 上。
因此,现在可以通过 Prometheus 和 Grafana 访问这个新指标。
JCloud 的 JSON 日志记录 (#5201)
现在可以创建 JSON 格式的日志,而不是标准的逐行文本输出。
样本输出:
{"created": 1663930387.5850368, "filename": "data_request_handler.py", "funcName": "_load_executor", "levelname": "DEBUG", "lineno": 98, "module": "data_request_handler", "msg": "<jina.serve.executors.BaseExecutor object at 0x7fc1951f78d0> is successfully loaded!", "name": "WorkerRuntime", "pathname": "/home/foo/jina/serve/runtimes/request_handlers/data_request_handler.py", "process": 13386, "processName": "Pod", "thread": 140469860276032, "threadName": "MainThread"}
要启用此功能,请将环境变量设置'JINA_LOG_CONFIG为'json'.
支持类似列表的语法来指定可见的 cuda 设备 (#5187)
现在你可以使用设备 ID 来指定可见的CUDA设备,这些设备应该在循环 GPU 分配中使用。
CUDA_VISIBLE_DEVICES=RR1,3
这将以循环方式将 CUDA 设备 1 和 3 分配给不同的 Executor 副本。
使jina hub push非阻塞 (#5129)
jina hub push现在是非阻塞操作,这意味着用户不必在服务器端等待整个推送完成。
在后台处理推送时,可以使用以下命令检查其状态:
jina hub status [<path_to_executor_folder>] [--id TASK_ID] [--verbose] [--replay]
jina hub push中的警告消息 (#5156)
jina hub push现在可以显示有用的警告消息,例如弃用警告:

在事件中添加持续时间信息 (#5157)
Telemetry 的数据现在还包括每个 Event 的持续时间。
🐞 错误修复
修复 Protobuf 的 Python 后端的兼容性 (#5222)
当使用 Python 而不是 cpp 或 udp 作为 Protobuf 的后端时,此错误会导致异常。
通过本次修复,Python 也可以用作 Protobuf 的后端。
将重要参数移动到顺序 (#5205)
从 Jina Hub 拉取时,出于错误的本地缓存实现,这个 Bug(偶尔)会导致 docker.errors.NullResource: Resource ID was not provided 错误,现在已修复。
修复使用 --force-update 登录用户时丢失的信息(#5180)
此错误导致登录用户在强制推送到 Jina Hub 时失败。此问题现在已修复,强制推送可以按预期运行。
使用 gRPC 连接池连接的默认 gRPC 参数 (#5211)
使我们的 gRPC 客户端符合推荐的配置[1]。
新列语法的 Bump DocArray 版本 (#5171)
DocArray 中 column 语法的一些更改需要版本提升。
增加最低 Protobuf 版本 (#5166)
Protobuf 库中的一些更改需要版本提升。
删除剩余的打印件 (#5199)
一些不需要的print语句偷偷溜进了我们的代码库,我们把它们踢了出去!
📗 文档改进
• 将 os.setenv 更改为os.environ (#5223)
• 加入 prefetch(#5220)
• 修复 docker 的安装说明(#5213)
• 修正语法、措辞、标点符号 (#5209)
• 修正语法、标点符号 (#5208)
• 阐明 http 中的 exec 端点使用 (#5202)
• 加入 grpc 客户端限制警告 (#5193)
• 更新常见问题和生命周期 (#5191)
• 改进自定义 docker 中有关配置文件的警告 (#5190)
• 阐明参数中的返回行为 (#5179)
• 添加 exit_on_exceptions 参数的部分 (#5172)
• 增加关于如何在 Flow yaml 中传递标签与 JCloud 部署的文档 (#5164)
引用链接
[1] 推荐配置: https://github.com/grpc/grpc/blob/master/doc/keepalive.md
点击 Release Notes(阅读原文) 前往 GitHub 查看更详细的新功能说明以及代码示例!
快来体验!一键安装新版 Jina,并运行 Jina
pip install -U jina

更多精彩内容(点击图片阅读)


1907

被折叠的 条评论
为什么被折叠?



