Tüm Ürünler
Search
Belge Merkezi

Tablestore:Initialize TunnelClient

Son Güncelleme:Oct 02, 2026

Tablestore SDK for Java, tünelleri yönetmek ve veri tüketimini başlatmak için özel bir istemci kullanır. İstemciyi bir örnek adı, uç nokta ve erişim kimlik bilgileriyle başlatın.

Ön Koşullar

Tablestore SDK for Java öğesini yükleyin ve erişim kimlik bilgilerini yapılandırın. Örnek V4 imzalama kullanır ve 5.17.5 veya sonraki bir sürüm gerektirir.

Özellik Açıklaması

TunnelClient, Tunnel Service için ayrılmış istemcidir. Tünel yönetim işlemleri ve veri tüketimi çalışanları bu istemciyi hizmeti erişmek için kullanır. Bir işlem içinde bir istemci örneğini yeniden kullanın ve tüm tünel işlemleri tamamlandıktan sonra shutdown yöntemini çağırın.

Aşağıdaki kurucu TunnelClient örneğini başlatır:

public TunnelClient(
    String endpoint,
    CredentialsProvider credsProvider,
    String instanceName,
    ClientConfiguration config,
    ResourceManager resourceManager
)

Aşağıdaki örnek, varsayılan istemci yapılandırmasını ve özel bir kaynak yöneticisini kullanarak TunnelClient örneğini başlatır. Ardından uç noktayı, erişim kimlik bilgilerini ve ağ bağlantısını doğrulamak için mevcut bir tablo için salt okunur bir listTunnel isteği gönderir. Örneği çalıştırmadan önce, örnek bilgilerinize göre region, instanceName ve endpoint değerlerini ayarlayın. Bağlantı doğrulaması için tableName değerini Wide Column modelindeki mevcut bir veri tablosunun adına ayarlayın.

import com.alicloud.openservices.tablestore.TunnelClient;
import com.alicloud.openservices.tablestore.core.auth.CredentialsProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentialProvider;
import com.alicloud.openservices.tablestore.core.auth.DefaultCredentials;
import com.alicloud.openservices.tablestore.core.auth.V4Credentials;
import com.alicloud.openservices.tablestore.model.tunnel.ListTunnelRequest;
import com.alicloud.openservices.tablestore.model.tunnel.ListTunnelResponse;

public class InitTunnelClient {

    public static void main(String[] args) {
        String accessKeyId = System.getenv("TABLESTORE_ACCESS_KEY_ID");
        String accessKeySecret = System.getenv("TABLESTORE_ACCESS_KEY_SECRET");
        String region = "<region-id>";
        String instanceName = "<instance-name>";
        String endpoint = "<instance-endpoint>";
        String tableName = "<table-name>";

        TunnelClient tunnelClient = null;
        try {
            DefaultCredentials credentials = new DefaultCredentials(accessKeyId, accessKeySecret);
            V4Credentials credentialsV4 = V4Credentials.createByServiceCredentials(credentials, region);
            CredentialsProvider provider = new DefaultCredentialProvider(credentialsV4);

            tunnelClient = new TunnelClient(
                endpoint,
                provider,
                instanceName,
                null,
                null
            );

            ListTunnelResponse response = tunnelClient.listTunnel(new ListTunnelRequest(tableName));
            System.out.println("TunnelClient initialized. Tunnels: " + response.getTunnelInfos().size());
            System.out.println("RequestId: " + response.getRequestId());
        } finally {
            if (tunnelClient != null) {
                tunnelClient.shutdown();
            }
        }
    }
}

Parametreler

İstemci

TunnelClient kurucusu aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


endpoint (gerekli)


String


Tablestore örneğinin uç noktası. İstemci ağıyla eşleşen bir genel, VPC veya klasik ağ uç noktası kullanın.


credsProvider (gerekli)


CredentialsProvider


Kimlik bilgisi sağlayıcısı. Örnek, V4 kimlik bilgileri oluşturmak için bir AccessKey ID, bir AccessKey secret ve örnek bölge kimliğini kullanır.


instanceName (gerekli)


String


Tablestore örneğinin adı.


config (isteğe bağlı)


ClientConfiguration


İstemci yapılandırması. Bu parametreyi null olarak ayarlarsanız varsayılan yapılandırma kullanılır. Bağlantı, zaman aşımı veya yeniden deneme ayarlarını değiştirmek için özel bir yapılandırma belirtin.


resourceManager (isteğe bağlı)


ResourceManager


İstemci bağlantıları ve iş parçacıkları için kaynak yöneticisi. Bu parametreyi null olarak ayarlarsanız geçerli istemci kaynak yöneticisini oluşturur ve serbest bırakır. Birden çok istemcinin temel kaynakları paylaşması gerektiğinde paylaşılan bir kaynak yöneticisi belirtin.

İstemci Yapılandırması

config parametresi ClientConfiguration türündedir. Bağlantı, zaman aşımı ve yeniden deneme ayarlarını yapılandırmak için ilgili setXxx yöntemlerini kullanın. Özel ayarlara ihtiyacınız yoksa config değerini null olarak ayarlayın. Aşağıdaki tabloda yaygın ayarlar açıklanmaktadır.


Ad


Tür


Açıklama


maxConnections (isteğe bağlı)


int


Açık HTTP bağlantılarının maksimum sayısı. Varsayılan değer: 300.


ioThreadCount (isteğe bağlı)


int


Zaman uyumsuz HTTP istemcisi için G/Ç iş parçacığı sayısı. Varsayılan değer, çalışma zamanının kullanabileceği işlemci sayısına eşittir.


connectionTimeoutInMillisecond (isteğe bağlı)


int


Bir bağlantı kurmak için zaman aşımı süresi. Birim: milisaniye. Varsayılan değer: 30000.


socketTimeoutInMillisecond (isteğe bağlı)


int


Kurulmuş bir bağlantı üzerinden veri iletmek için zaman aşımı süresi. Birim: milisaniye. Varsayılan değer: 30000.


connectionRequestTimeoutInMillisecond (isteğe bağlı)


int


Bağlantı havuzundan bir bağlantı elde etmek için zaman aşımı süresi. Birim: milisaniye. Varsayılan değer: -1. Bu değer, ayrı bir zaman aşımı süresi yapılandırılmadığını belirtir.


retryThreadCount (isteğe bağlı)


int


Hata yeniden denemeleri için kullanılan iş parçacığı sayısı. Varsayılan değer: 1.


retryStrategy (isteğe bağlı)


RetryStrategy


İstek yeniden deneme stratejisi. Varsayılan değer: DefaultRetryStrategy.

Proxy, sıkıştırma, DNS önbelleği, istek izleme ve SSL oturum ayarları gibi diğer istemci ayarları da ClientConfiguration öğesinin ilgili yöntemleri kullanılarak yapılandırılır.

Kaynak Yöneticisi

resourceManager parametresi ResourceManager türündedir. Bağımsız olarak kullanılan bir TunnelClient için bu parametreyi null olarak ayarlayın. İstemci, config temelinde bir kaynak yöneticisi oluşturur ve shutdown yöntemini çağırdığınızda kaynaklarını serbest bırakır.

Kaynakları özelleştirmek veya paylaşmak için sahipli bir ResourceManager oluşturmak üzere ResourceManager(ClientConfiguration configuration, ExecutorService callbackExecutor) yapıcısını kullanın. Yapıcı aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


configuration (isteğe bağlı)


ClientConfiguration


HTTP bağlantıları ve yeniden deneme iş parçacıkları oluşturmak için kullanılan istemci yapılandırması. Bu parametreyi null olarak ayarlarsanız varsayılan yapılandırma kullanılır.


callbackExecutor (isteğe bağlı)


ExecutorService


Zaman uyumsuz geri aramaları çalıştırmak için kullanılan iş parçacığı havuzu. Bu parametreyi null olarak ayarlarsanız SDK varsayılan iş parçacığı havuzunu oluşturur. Sahipli ResourceManager kapatıldığında iş parçacığı havuzu da kapatılır.

Senaryo Örnekleri

İstemci Yapılandırmasını Özelleştirme

Varsayılan bağlantı, zaman aşımı veya yeniden deneme ayarlarını değiştirmek için temel örnekte ClientConfiguration öğesini içe aktarın ve istemci başlatma kodunu aşağıdaki kodla değiştirin:

ClientConfiguration config = new ClientConfiguration();
config.setMaxConnections(200);
config.setConnectionTimeoutInMillisecond(10000);
config.setSocketTimeoutInMillisecond(30000);
config.setRetryThreadCount(2);

tunnelClient = new TunnelClient(
    endpoint,
    provider,
    instanceName,
    config,
    null
);

İstemci Kaynaklarını Paylaşma

Birden çok istemcinin HTTP bağlantılarını, yeniden deneme iş parçacıklarını ve geri arama iş parçacıklarını paylaşması gerekiyorsa sahipli bir ResourceManager oluşturun ve sharedResourceManager() yöntemi tarafından döndürülen paylaşılan örneği her istemciye iletin. Tüm istemcileri kapattıktan sonra sahipli ResourceManager öğesini kapatın.

Önemli

Sahipli bir ResourceManager doğrudan birden çok istemciye iletmeyin. Aksi takdirde, herhangi bir istemci shutdown yöntemini çağırdığında paylaşılan kaynaklar serbest bırakılır.

Aşağıdaki kod, temel örnekten değişkenleri ve kimlik bilgisi sağlayıcısını yeniden kullanır. Kodu çalıştırmadan önce ClientConfiguration ve ResourceManager öğelerini içe aktarın.

ClientConfiguration config = new ClientConfiguration();
ResourceManager owner = new ResourceManager(config);
TunnelClient tunnelClientA = new TunnelClient(
    endpoint, provider, instanceName, config, owner.sharedResourceManager());
TunnelClient tunnelClientB = new TunnelClient(
    endpoint, provider, instanceName, config, owner.sharedResourceManager());

try {
    tunnelClientA.listTunnel(new ListTunnelRequest(tableName));
    tunnelClientB.listTunnel(new ListTunnelRequest(tableName));
} finally {
    tunnelClientA.shutdown();
    tunnelClientB.shutdown();
    owner.shutdown();
}