jersey—一个独立的服务器,在ApacheeSos主服务器和客户端之间进行通信

6ljaweal  于 2021-06-26  发布在  Mesos
关注(0)|答案(1)|浏览(500)

全部:
我在一个独立的服务器上工作,它应该能够通过httppost请求与mesos主&客户机进行通信。
我设置了一个jersey rest服务器。我最初的计划是使用json/xml来Map实体,因为它被广泛使用。
但是,我发现一些通信兼容性问题,
我从*.proto文件生成java类。我试图通过rest(使用json)调用创建event.offers对象,但在反序列化数据流时出现了一些错误。我认为这是因为生成的类的结构很复杂。它们不是pojo的,例如,它们没有公共构造函数。
“src/cli/execute.cpp”将“contenttype”设置为“protobuf”。
我认为在大多数情况下,mesos在内部使用“protobuf”,而不是json。
鉴于以上问题,
我应该用protocolbuffer实现我的服务器吗,这是更好的方法吗?我认为这将是完全兼容mesos。。。或者我应该尝试在mesos中将protobuf转换成json吗?
有谁能给点建议吗?我对这一点感到困惑。
非常感谢

r7xajy2e

r7xajy2e1#

你应该使用protobuf。
protobuf只是mesos定义其api的一种方式。mesos可以处理二进制序列化protobuf请求或json。mesos在版本2中使用protobuf(将升级到版本3),并且没有从protobufv2到json的标准序列化,mesos不完全支持v3jsonMap,请参阅mesos-5995。理论上,您可以手动创建json,但使用protobuf可以保证您将使用正确版本的api并为您处理序列化。
在文档中,有一些示例说明了通信是如何进行的。如果没有合适的标题,mesos将拒绝请求。
类似于 调度程序 和 遗嘱执行人 http API,操作员端点仅接受http post请求。请求主体应该用json编码( Content-Type: application/json )或protobuf( Content-Type: application/x-protobuf ).
在这里,您可以找到不同用例中与mesos通信的示例库:调度器、执行器、操作符。
在这里你可以找到我的教育目的调度器,它使用jsons。它是用go编写的,试图将所有内容都保存在一个地方,并且只对protobuf有一个依赖关系。

相关问题