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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
İ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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
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.
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();
}