diff --git a/java/README_CN.md b/java/README_CN.md index cbee3f006912677d410e364d762666fe670a301f..70162e8778595456c3a006055c751dd051b2d93c 100644 --- a/java/README_CN.md +++ b/java/README_CN.md @@ -2,7 +2,7 @@ ([English](./README.md)|简体中文) -### 开发环境 +## 开发环境 为了方便用户使用java进行开发,我们提供了编译好的Serving工程放置在java镜像当中,获取镜像并进入开发环境的方式是 @@ -15,7 +15,7 @@ cd Serving/java Serving文件夹是镜像生成时的develop分支工程目录,需要git pull 到最新版本,或者git checkout 到想要的分支。 -### 安装客户端依赖 +## 安装客户端依赖 由于依赖库数量庞大,因此镜像已经在生成时编译过一次,用户执行以下操作即可 @@ -27,7 +27,34 @@ mvn compile mvn install ``` -### 启动服务端(Pipeline方式) +## 请求BRPC-Server + +###服务端启动 + +以fit_a_line模型为例,服务端启动与常规BRPC-Server端启动命令一样。 + +``` +cd ../../python/examples/fit_a_line +sh get_data.sh +python -m paddle_serving_server.serve --model uci_housing_model --thread 10 --port 9393 +``` + +###客户端预测 +客户端目前支持多种请求方式,目前支持HTTP(数据为JSON格式)、HTTP(数据为PROTO格式)、GRPC + +推荐您使用HTTP(数据为PROTO格式),此时数据体为PROTO格式,传输的数据量小,速度快,目前已经帮用户实现了HTTP/GRPC的数据体(JSON/PROTO)的封装函数,详见[Client.java](./src/main/java/io/paddle/serving/client/Client.java) +``` +cd ../../../java/examples/target +java -cp paddle-serving-sdk-java-examples-0.0.1-jar-with-dependencies.jar PaddleServingClientExample http_proto +``` +**注意 为客户端配置文件,一般是名为serving_client_conf.prototxt的文件。** + +更多示例详见[PaddleServingClientExample.java](./examples/src/main/java/PaddleServingClientExample.java) + + +## 请求Pipeline-Server + +###服务端启动 对于input data type = string类型,以IMDB model ensemble模型为例,服务端启动 @@ -71,7 +98,7 @@ java -cp paddle-serving-sdk-java-examples-0.0.1-jar-with-dependencies.jar Pipeli ### 注意事项 -1.在示例中,所有非Pipeline模型都需要使用`--use_multilang`来启动GRPC多编程语言支持,以及端口号都是9393,如果需要别的端口,需要在java文件里修改。 +1.在示例中,端口号都是9393,ip默认设置为了0.0.0.0表示本机,注意ip和port需要与Server端对应。 2.目前Serving已推出Pipeline模式(原理详见[Pipeline Serving](../doc/PIPELINE_SERVING_CN.md)),面向Java的Pipeline Serving Client已发布。 @@ -84,5 +111,3 @@ java -cp paddle-serving-sdk-java-examples-0.0.1-jar-with-dependencies.jar Pipeli 第一种是GPU Serving和Java Client在运行在同一个GPU镜像中,需要用户在启动GPU镜像后,把在java镜像中编译完成后的文件(位于/Serving/java目录下)拷贝到GPU镜像中的/Serving/java目录下。 第二种是GPU Serving和Java Client分别在各自的docker镜像中(或具备编译开发环境的不同主机上)部署,此时仅需注意Java Client端与GPU Serving端的ip和port需要对应,详见上述注意事项中的第3项。 - - diff --git a/java/examples/src/main/java/PaddleServingClientExample.java b/java/examples/src/main/java/PaddleServingClientExample.java index 81688029709d8a4710fcf33edf5048004bb61c8f..73fe94856ff90177f7fa34535f2a2733c92068e3 100755 --- a/java/examples/src/main/java/PaddleServingClientExample.java +++ b/java/examples/src/main/java/PaddleServingClientExample.java @@ -284,7 +284,7 @@ public class PaddleServingClientExample { if (args.length < 2) { System.out.println("Usage: java -cp PaddleServingClientExample ."); - System.out.println(": http_proto grpc bert cube_local yolov4 encrypt"); + System.out.println(": http_proto http_json grpc bert cube_local yolov4 encrypt"); return; } String testType = args[0];