对于每个 thrift API 调用(在 Erlang 中使用 HBase Thrift),API 返回一个 thrift 连接:
二郎示例:
% creating the initial connection
{ok, TFactory} = thrift_socket_transport:new_transport_factory( "localhost", 9090, []),
{ok, PFactory} = thrift_binary_protocol:new_protocol_factory(TFactory, []),
{ok, Protocol} = PFactory(),
{ok, ThiftConnection1} = thrift_client:new(Protocol, hbase_thrift),
%calling a row mutation
{ThriftConnection2, Result} = thrift_client:call( ThriftConnection1, mutateRow, ["MYTABLE", Row1Id, MutationList1, dict:new()]),
{ThriftConnection3, Result} = thrift_client:call( ThriftConnection2, mutateRow, ["MYTABLE", Row2Id, MutationList2, dict:new()]),
这引发了以下相关查询:
- 我应该总是使用返回的连接还是只使用第一个?
- 这些连接是否相同?
- 这种传递连接方法会导致连接泄漏吗?
- 有没有办法关闭这些连接,或者它们对于使用它们的每种 API 调用都有自己的生命周期?