栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Jina 轻松学 —— 部署和运行

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jina 轻松学 —— 部署和运行

 Jina是一个高性能的云原生分布式框架,可以利用它快速开发基于深度学习的神经搜索系统

本期教程将带来关于Jina部署和运行的介绍,让你快速、高效地运行Jina框架!

Jina远程部署——JinaD 


「Jina Daemon (简称为JinaD)可实现分布式部署、管理Jina Flow的功能」 

JinaD是通过REST式接口对Jina框架进行远程部署和调用的后台程序

用户使用JinaD在远程主机上对Flow和Executor进行创建、更新和删除

JinaD通过为每个Jina实例定义一个Workspace来实现部署隔离,因此可在一台主机上同时运行多个Flow

Follow下面的步骤

使用JinaD将Jina Flow运行起来吧‍♀️

 服务端 


JinaD的Docker镜像文件已发布在Docker Hub中,可部署在本地或云端,等待客户端发来的请求:

docker run --add-host host.docker.internal:host-gateway 
           -v /var/run/docker.sock:/var/run/docker.sock 
           -v /tmp/jinad:/tmp/jinad 
           -p 8000:8000 
           --name jinad 
           -d jinaai/jina:master-daemon

 Docker运行小提示:

端口号可以通过输入docker run命令时的  -p参数更改。

JinaD应该始终作为docker容器部署。简单地终端运行jinad命令启动服务是无效的。

  客户端 


Step1:Jina客户端的建立

from daemon.clients import JinaDClient
client = JinaDClient(host=HOST, port=PORT)

Step2: Workspace的建立

「Workspace是JinaD中所有Jina实例的基础入口」

Workspace为每个容器化的Jina实例创建基本镜像文件

Workspace负责管理Jina实例的所有子容器的通讯网络

Workspace中储存了用于管理Jina实例或由Jina实例创建的所有文件

建立了客户端后,就可以向服务端发送建立workspace的请求:

from daemon.clients import JinaDClient
client = JinaDClient(host=HOST, port=PORT)
workspace_id = client.workspaces.create(paths=['path_to_awesome_project'])

  Workspace运行小提示:

path_to_awesome_project文件夹中应该放入yaml, py_modules,  requirements.txt, .jinad等文件

workspace_id是新建workspace的标识

Step3:REST式的Flows建立

使用 client.flows.create ,将在workspace_id定义的workspace中创建一个新的容器,并在容器内启动一个Flow

from daemon.clients import JinaDClient
client = JinaDClient(host=HOST, port=PORT)
client.flows.create(workspace_id=workspace_id, filename='my_awesome_flow.yml')
# jflow-a71cc28f-a5db-4cc0-bb9e-bb7797172cc9

 Jina服务运行 


在这部分,我们将向你展示如何在运行Jina Flow时单独创建服务端和客户端

「单独创建服务端和客户端的应用场景」

服务端和客户端运行在不同的机器上

服务端和客户端有不同的生命周期

一个服务端同时被多个客户端访问

一个客户端想要访问多个服务端

客户端可以是浏览器/curl/postman等非代码形式

Flow和Client之间的通信可以通过grpc、websocket、http三种协议。在Jina中通过在创建Flow时写入protocol=的参数设置(默认

通过grpc)

服务端

from jina import Flow

f = Flow(protocol='http', port_expose=12345)
with f:
    f.block()

客户端

from jina import Client

c = Client(protocol='http', port_expose=12345)
c.post('/', ...)

 Flow运行小提示:

protocol也可以选择grpc、websocket哦(这两种协议在处理大量数据时有更好的表现)

点击下方 “阅读原文”,获得更详细的Jina 相关教程


 往期精彩

Jina 轻松学 —— 三个基本元素

Jina·拥抱社区!即刻申请,丰富周边送上门

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731120.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号