问题标签 [thrift]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dll - 构建 thrift dll 以在 Windows Phone 7 应用程序中使用
非常直截了当的问题:如何构建用于 Windows Phone 7 应用程序的thrift dll?
cassandra - 通过 cassandra-cli 删除一行后,通过 thrift-client 插入 Cassandra 不起作用
我写了一个简单的测试来验证我自己对 Cassandra 节俭接口的理解。它只是在数据库中插入一行(使用 cassandra 安装预配置的键空间和列族),然后从数据库中读取它并比较结果。
该测试运行良好。当然,它会在数据库中留下一行。我可以通过取消注释上面的 client.remove 语句来删除测试结束时的行(这也可以正常工作)。但我尝试的是通过命令行界面删除该行:
之后测试失败。将行插入数据库似乎不再有效,因此行 assertEquals(1, result.size()) 失败:
我没有收到任何错误消息(无论是在客户端还是在服务器上),我不知道问题的原因可能是什么。
frameworks - 适用于 Windows Phone 7 的服务开发框架解决方案
我一直试图让 Thrift 与 WP7 一起工作,但初步搁置了它。
我现在正在寻找其他解决方案,并希望获得一些关于选择哪种解决方案的反馈(如果有的话)。
任何建议都非常感谢,所以不要犹豫:)
cassandra - 节俭安装错误
我正在尝试使用 cassandra 安装 thrift 超过 2 小时,但它甚至没有配置..当我使用命令 ./configure 进行配置时,它显示错误为:配置:错误:找不到 php-config。请使用 --with-php-config=PATH 配置:错误:./configure failed for lib/php/src/ext/thrift_protocol
我无法解决这个问题。谁能帮我。
apache - 对高度可扩展和模块化的分布式服务器端架构的思考
我的并不是一个真正的问题,它更多的是征求意见 - 也许这甚至不是发布它的正确位置。不过,这里的社区消息灵通,尝试一下也无妨……
我正在考虑如何创建一个高度可扩展的,尤其是高度模块化的后端架构。例如,一个大型站点的整个后端生态系统,它有可能在未来发展成一个大型站点。
这将需要非常高度的关注点分离,以至于不仅可以(例如)替换底层数据库(即从 Oracle 到 MySQL),而且可以替换实际类型的数据库(ed SQL 到 KV,或反之亦然)。
我设想每个子系统在后端生态系统中公开自己的 API 的情况。通过这种方式,API 可以保持不变,而实现可能会随着时间而改变(甚至是根本性的)。
系统必须是异构的,因为它不依赖于特定的语言。它必须能够容纳使用不同语言的模块或整个子系统。
然后我突然想到,我想象的只是网络本身的架构。
所以这是我的讨论点:除了使用(主要)基于文本的协议的开销之外,是否有任何压倒一切的原因不应该以我描述的方式实现复杂的后端架构,或者我是否有一些强有力的理由使用 Twisted、AMQP、Thrift 等通信协议时缺少 m?
更新:在@meagar 发表评论之后,我或许应该重新提出这个问题:使用非常简单、灵活且易于理解的架构(即所有功能公开为一系列 RESTful API)的明显优势是否足以弥补明显的性能损失在后端上下文中使用此架构时会发生什么?
maven - maven 无法在生成的源中添加文件以进行编译阶段
我使用Apache Thrift在target/generated-sources
.
Thrift 编译器生成一个名为的目录gen-java
,其中包含所有 Java 代码。当我执行mvn compile
时,代码在中正确生成target/generated-source/gen-java
,但在编译阶段,它抱怨找不到在中定义的类gen-java
。
据我了解,Maven 2 会自动添加生成的源代码,对吗?
如果我的测试代码也依赖于generated-sources
,我是否必须手动指定编译器包含的内容?
python - 如何使用 python/thrift 插入 SuperColumn?
使用 python/thrift 接口我试图插入一个 SuperColumn 就像WTF 中的 Comments 示例是一个 Supercolumn..
我已经创建了 SuperColumn 并发现我应该使用 batch_mutate 来插入它。但我不知道如何创建 Mutation 并设置密钥和 SuperColumn 类型
java - 实现 Thrift API 时出错
我正在用 Java 实现 Thrift 远程过程调用框架。我设置了 thrift 并生成了我的骨架代码,没有很多问题,但是现在我实际上正在使用 API 方法,我得到了奇怪的错误。
这是我得到的错误:
我认为我没有犯任何错误,但只是为了确保,这是导致错误的代码:
据说该错误是由client.registerClient()
调用生成的,但这是对 Thrift 生成的代码的调用,这让我觉得我在设置连接本身时做错了什么。
关于创建TProtocol
实例的部分包括我自己,很可能这就是问题所在。
我希望有人会对我做错了什么有更多的了解。
如果需要更多信息或澄清,请告诉我。
编辑:我从Cassandra WikiTProtocol
中找到了实例化语句
serialization - 协议缓冲区中的字典
有什么方法可以使用协议缓冲区序列化字典,或者如果需要,我将不得不使用 Thrift?
java - thrift 的线程安全性如何?回复:我似乎有要求互相干扰
编辑
显然,我希望做的事情超出了节俭的范围......如果我确保端口上的客户端永远不会超过一个,那么一切都很好。当然,这种方式违背了目的,因为我希望向服务器打开几个可重用的连接以改善响应时间并降低开销。
如果有人对实现此目的的替代方法有建议,将不胜感激(或者如果我的结论是错误的)
背景
我有一个多组件应用程序,主要通过节俭连接(主要是 java->php 连接)。
到目前为止,一切似乎都很好,但是引入了一个 Java->Java 连接,其中客户端是一个每秒可以启动数百个请求的 servlet。
被访问的方法有如下接口:
为了确保在服务端这不是什么奇怪的事情,我用一个简单的实现替换了实现:
错误/可能的原因?
只要连接不多,它就可以正常运行,但是一旦连接靠近,连接就会开始卡在阅读器中。
如果我在调试器中拉出其中一个,堆栈看起来像这样:
这似乎是由数据损坏触发的,因为我得到以下异常:
和
也许我离题了,但我很确定这些与客户端在没有发送任何内容时继续尝试阅读有关。
一些实现细节
服务器和客户端都使用 java 二进制协议。
我写了一个简单的客户端池类,它可以让我重用客户端,这些是主要功能:
客户端应用程序(即 tomcat servlet)通过以下方式访问它:
实际的节俭连接以下列方式增加
最后
已经坚持了一段时间了......很可能我错过了一些明显的东西。我真的很感激这方面的任何帮助。
如果需要任何其他信息,请告诉我。那里有一整口,所以我想尽量保持最(希望)相关的东西。