如何为Google BigTable建立连接池

时间:2019-04-09 14:27:10

标签: java java-8 hbase bigtable google-cloud-bigtable

如何为Google BigTable或HBase进行连接池。

是否存在任何内置库,或者是否需要实现自定义库?

我试图在这里检查一下,但不确定如何从这里前进:

Big table connection pool

我尝试了下面的代码,但不确定如何从这里进行:

import com.google.cloud.bigtable.config.BigtableOptions;
import com.google.cloud.bigtable.config.CredentialOptions;
import com.google.cloud.bigtable.grpc.BigtableSession;
import com.google.cloud.bigtable.grpc.io.ChannelPool;
import com.mahindra.digisense.config.AppConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.GeneralSecurityException;

@Component
public class BigTableConnectionPoolingExample {

    @Autowired
    private AppConfig.BigTableConfig bigTableConfig;

    private void bigTableConnectionPooling() throws IOException, GeneralSecurityException {
        CredentialOptions credentialOptions = CredentialOptions.jsonCredentials(new FileInputStream(new File(bigTableConfig.getCredentialsJson())));
        BigtableOptions.Builder builder = new BigtableOptions.Builder();
        builder.setCredentialOptions(credentialOptions);
        ChannelPool.ChannelFactory channelFactory = (ChannelPool.ChannelFactory) BigtableSession.createChannelPool(bigTableConfig.getInstanceId(), builder.build());
        ChannelPool channelPool = new ChannelPool(channelFactory,3);
    }
}

这是stackoverflow中的另一个查询,但没有任何答案:

Google Cloud Bigtable Client Connection Pooling

1 个答案:

答案 0 :(得分:0)

正如所罗门·杜斯基斯(Solomon Duskis)所指出的那样,我们鼓励新人们开始使用google-cloud-java中惯用的Bigtable客户。客户端适合生产使用,但是我们尚未最终确定客户端API,因此我们可能会进行向后不兼容的更改。

如果您正在使用Cloud Bigtable Client存储库中的HBase客户端,则可以使用一些选项来调整下面使用的数据通道的数量以及每个通道的运行中RPC的数量。但是我们建议您首先对应用程序进行概要分析,因为您应该能够获得良好的性能并使群集饱和,而无需手动将这些参数从其默认值调整。