streaming


URI

<managerRoot_uri>/streaming[.<format>]

支持的方法

POSTHEAD

父资源

managerRoot

介绍

实时数据服务发布者,执行 POST 请求,可发布实时数据服务。

支持的方法:

支持的表述格式:RJSON、JSON、HTML、XML。

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。

http://supermapiserver:8090/iserver/manager/streaming.rjson

POST 请求

发布实时数据服务。

请求参数

请求体参数如下:

名称 类型 含义
serviceName String 【必填】实时数据服务的服务名称。
configJsonPath String 流模型配置文件路径。与 configJsonContent 必填一项
configJsonContent String 流模型配置信息,需传入JSON字符串。与configJsonPath 必填一项
token String 用于用户身份验证的Token(令牌)
dataFlowSericeName String 如果需要将实时分析处理后的结果通过数据流服务提供给客户端,需配置此参数。

响应结构

只发布实时数据服务时,返回参数如下:

字段 类型 说明
id String 发布的实时数据服务唯一标识符
setting JobSetting 实时服务配置信息
state JobState 服务运行状态

 

发布实时数据服务时,如果同时发布数据流服务,返回参数如下:

字段 类型 说明
serviceAddress String 发布的数据流服务地址
serviceType String 服务类型

示例1:只发布实时数据服务

对 streaming 资源:http://supermapiserver:8090/iserver/manager/streaming.rjson 执行POST 请求,通过配置流模型文件,参数如下 :

{"serviceName":"streaming123", "configJsonPath":"F:/data/test.streaming", token:"uQfBqTIPI6ozxsNTnr4D2cNngSkd_7jA_zDyfLQo6ZCAB6tfuAJIprzNM-EV_LFmPsTRAPwI4Vdod4ofmB7gWw.."}

操作成功时,返回 rjson 格式的操作结果表述如下:

{

    "id": "ad9c417a_1374_4488_abc7_b73e35cb8928",

    "setting": {

        "DEFAULT_MASTER_ADRESS": "local[*] ",

        "appName": "test",

        "args": ["E:\\data\\json.streaming"],

        "contextSetting": null,

        "mainClass": "com.supermap.bdt.streaming.StreamingRunner",

        "serviceInfo": null,

        "serviceRoot": null,

        "sparkLogFile": {

            "pathSeparator": ";",

            "pathSeparatorChar": ";",

            "separator": "\\",

            "separatorChar": "\\"

        }

    },

    "state": {

        "elapsedTime": 0,

        "endState": false,

        "endTime": 0,

        "errorMsg": null,

        "errorStackTrace": null,

        "publisherelapsedTime": 0,

        "runState": "RUNNING",

        "startTime": 1504593161019

    }

}

示例2:同时发布数据流服务

对 streaming 资源:http://supermapiserver:8090/iserver/manager/streaming.rjson 执行POST 请求,输入流模型配置信息,参数如下的 :

{"serviceName":"Streaming2", "configJsonContent":"{\"version\":9000,\"sparkParameter\": {\"checkPointDir\": \"tmp\",\"interval\": 5000},\"stream\": {\"nodeDic\": {\"Filter\": {\"filter\": \"[X] > [Y] && [X] > 20\", \"name\": \"Filter\",\"source\": \"\",\"description\": \"\",\"prevNodes\": [\"Xplus2\"],\"nextNodes\": [\"SendToES\"],\"className\": \" com.supermap.bdt.streaming.filter.FeatureFilter\"},\"SetalliteReceiver\": {\"url\": \"https://api.wheretheiss.at/v1/satellites/25544\",\"reader\": {\"className\": \" com.supermap.bdt.streaming.formatter.JsonFormatter\"},\"metadata\": {\"title\": \"\",\"epsg\": -1000,\"fieldInfos\": [{\"name\": \"X\",\"source\": \"longitude\",\"nType\": \"DOUBLE\"},{\"name\": \"Y\",\"source\": \"latitude\",\"nType\": \"DOUBLE\"}],\"featureType\": \"POINT\"},\"name\": \"SetalliteReceiver\",\"source\": \"\",\"description\": \"\",\"prevNodes\": [], \"nextNodes\": [ \"Xplus2\"],\"className\": \" com.supermap.bdt.streaming.receiver.HttpReceiver\"},\"SendToES\": {\"url\": \"192.168.12.122\",\"queueName\": \"streamingresult\", \"directoryPath\": \"IIS\", \"bitmap$0\": false,\"formatter\": {\"separator\": \",\",\"className\": \" com.supermap.bdt.streaming.formatter.CSVFormatter\"}, \"name\": \"SendToES\",\"source\": \"\", \"description\": \"\",\"prevNodes\": [ \"Filter\"], \"nextNodes\": [],\"className\": \" com.supermap.bdt.streaming.sender.EsAppendSender\"}, \"Xplus2\": {\"fieldName\": \"X\",\"expression\": \"[X] * 2\",\"name\": \"Xplus2\",\"source\": \"\",\"description\": \"\",\"prevNodes\": [\"SetalliteReceiver\"],\"nextNodes\": [\"Filter\"],\"className\": \" com.supermap.bdt.streaming.map.FeatureCalculateMapper\"}}}}", "token":"uQfBqTIPI6ozxsNTnr4D2cNngSkd_7jA_zDyfLQo6ZCAB6tfuAJIprzNM-EV_LFmPsTRAPwI4Vdod4ofmB7gWw..", "dataFlowSericeName":"dataflow2"}

操作成功时,返回 rjson 格式的操作结果表述如下:

[{

    "serviceAddress": "http://localhost:8090/iserver/services/dataflow2/dataflow",

    "serviceType": null

}]

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 streaming 资源是否存在,或者客户端是否有权限访问 streaming 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 streaming 资源是否支持<format>格式的表述。

请参见