您如何通过公司代理使用 Thrift 协议?
How do you use Thrift protocol via corporate Proxy?
我在 Internet 上进行了搜索,但似乎找不到任何关于如何从代理后面使用 Thrift 协议的直接说明。
为您提供一些背景知识 - 我们有一个 Zipkin 实例设置 (https://github.com/twitter/zipkin) that uses a Cassandra instance (http://cassandra.apache.org/) 来存储 Zipkin 跟踪。我们的目的是通过节俭协议与收集器协商,然后收集器负责将跟踪写入 Cassandra。
我们必须具备哪些条件才能通过我们的公司代理成功进行谈判?我们是否只需要在尝试协商时设置某些代理属性,或者我们是否必须设置其他东西来允许这种协商发生?
人们可以在这方面提供有关资源的任何帮助and/or,我们将不胜感激。
Apache Thrift TSocketTransport(几乎肯定是您正在使用的)在可配置端口上使用 TCP。 Cassandra 通常使用端口 9160 进行节俭。使用 Thrift/TCP 时不需要 HTTP 设置。只需打开 9160(以及您的自定义节俭服务器可能正在监听的任何其他端口)。
虽然您可以通过 HTTP 使用 Thrift,但 Thrift 是 RPC,而不是 REST,因此代理缓存会导致问题,客户端需要与服务器的直接通信通道。
如果您确实需要通过代理访问 thrift 服务,可以使用以下方法:
https://github.com/totally/thrift_goodies/blob/master/transport.py
如果不需要,可以取消 kerberos 的东西。
我在 Internet 上进行了搜索,但似乎找不到任何关于如何从代理后面使用 Thrift 协议的直接说明。
为您提供一些背景知识 - 我们有一个 Zipkin 实例设置 (https://github.com/twitter/zipkin) that uses a Cassandra instance (http://cassandra.apache.org/) 来存储 Zipkin 跟踪。我们的目的是通过节俭协议与收集器协商,然后收集器负责将跟踪写入 Cassandra。
我们必须具备哪些条件才能通过我们的公司代理成功进行谈判?我们是否只需要在尝试协商时设置某些代理属性,或者我们是否必须设置其他东西来允许这种协商发生?
人们可以在这方面提供有关资源的任何帮助and/or,我们将不胜感激。
Apache Thrift TSocketTransport(几乎肯定是您正在使用的)在可配置端口上使用 TCP。 Cassandra 通常使用端口 9160 进行节俭。使用 Thrift/TCP 时不需要 HTTP 设置。只需打开 9160(以及您的自定义节俭服务器可能正在监听的任何其他端口)。
虽然您可以通过 HTTP 使用 Thrift,但 Thrift 是 RPC,而不是 REST,因此代理缓存会导致问题,客户端需要与服务器的直接通信通道。
如果您确实需要通过代理访问 thrift 服务,可以使用以下方法:
https://github.com/totally/thrift_goodies/blob/master/transport.py
如果不需要,可以取消 kerberos 的东西。