Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Important
Lakebase Otomatik Ölçeklendirme, otomatik ölçeklendirme işlemi, sıfıra ölçeklendirme, dallanma ve anında geri yükleme ile Lakebase'in en son sürümüdür. Desteklenen bölgeler için bkz . Bölge kullanılabilirliği. Lakebase Tedarik Edilmiş bir kullanıcıysanız, bkz. Lakebase Tedarik Edilmiş.
Lakebase, bir sunucu bağlantıları havuzu tutan ve bunları birçok istemci bağlantısında paylaşan yerleşik bir PgBouncer bağlantı havuzu oluşturucu içerir. Havuz oluşturucu 10.000'e kadar eşzamanlı bağlantıyı desteklediğinden sunucusuz işlevler, web API'leri ve birçok kısa süreli bağlantı açan diğer uygulamalar için uygun hale gelir.
Bağlantı havuzu, yerel Postgres şifre ile kimlik doğrulamasını gerektirir. OAuth veya Azure Databricks kimlik rolleri için kullanılamaz.
Bağlantı havuzu nasıl çalışır?
Postgres her istemci için ayrı bir işlem oluşturduğundan her Postgres bağlantısı sunucu kaynaklarını kullanır. Web API'leri ve sunucusuz işlevler gibi birçok kısa süreli bağlantı açan uygulamalar, sunucunun bağlantı sınırını hızla tüketebilir.
Bağlantı havuzu oluşturucu, uygulamanızla Postgres arasında yer alır. İstemciler havuza bağlanır ve havuz oluşturucu sorguları gerçek sunucu bağlantılarının daha küçük bir havuzuna iletir. İşlem tamamlandığında, havuz oluşturucu havuza sunucu bağlantısını döndürerek sonraki istemcinin kullanımına sunar.
Lakebase, PgBouncer'ı işlem modunda çalıştırır. İşlem modunda, tek bir işlem süresi boyunca bir sunucu bağlantısı tutulur ve havuza döndürülür. Bu, birçok istemcinin küçük bir sunucu bağlantısı havuzunu paylaşmasına olanak tanır.
İşlem modu bağlantı verimliliğini artırır ancak kalıcı sunucu bağlantısı gerektiren bazı Postgres özelliklerini kısıtlar. Bkz. İşlem modu sınırlamaları.
Bağlantı havuzları
PgBouncer, her veritabanı ve kullanıcı bileşimi için ayrı bir havuz oluşturur. Aynı veritabanına bağlanan iki kullanıcı bağımsız havuzlar alır. Her havuzun boyutu, işlem doğrudan bağlantı sınırının yaklaşık% 90'dır.
Havuzdaki tüm bağlantılar kullanımda olduğunda, yeni istemci istekleri kuyrukta bekler. Sunucu bağlantısı 2 dakika içinde kullanılabilir duruma gelmezse istemci bir zaman aşımı hatası alır.
Bağlantı sınırları
Bağlantı havuzunu idare eden üç sınır:
| Sınır | Değer | Neleri denetler? |
|---|---|---|
İstemci bağlantıları (max_client_conn) |
10.000 | Uygulamanızdan PgBouncer'a en fazla bağlantı |
Havuz boyutu (default_pool_size) |
Yaklaşık %90 max_connections |
(kullanıcı, veritabanı) çifti başına etkin sunucu bağlantıları |
Doğrudan bağlantılar (max_connections) |
İşlem boyutuna göre değişir | En fazla doğrudan Postgres bağlantısı |
Doğrudan bağlantı sınırı, işlem boyutunuza bağlıdır. Örneğin, 8 CU işlem 1.678 doğrudan bağlantıyı ve 16 CU işlem 3.357'yi destekler. Tam liste için bkz . İşlem belirtimleri.
Bağlantı havuzu, uygulamanızın tek başına doğrudan bağlantı sınırından çok daha fazla eşzamanlı kullanıcıyı desteklemesine olanak tanır.
Prerequisites
- Lakebase Otomatik Ölçeklendirme projeniz etkin olmalıdır.
- Projede yerel bir Postgres parola rolünüz olmalıdır. Yönergeler için bkz. Yerel Postgres parola rolü oluşturma.
- Salt okunur pooler'ı kullanmak için salt okunur işlem örneklerine erişimi etkin durumda olan bir yüksek erişilebilirlik uç noktasına sahip olmalısınız. Bkz. Yüksek kullanılabilirlik.
Bağlantı havuzunu etkinleştirme
- Lakebase Uygulamasında projenize gidin ve Bağlan'a tıklayın.
- Bağlanmak istediğiniz şubeyi ve bilgisayarı seçin.
- Rol açılan listesinden yerel bir Postgres parola rolü seçin. Bağlantı havuzu anahtarı yalnızca bir parola rolü seçildiğinde görünür. OAuth ve Azure Databricks kimlik rolleri için gizlenir.
- Bağlantı havuzu özelliğini açın.
- bağlantı dizesi kopyalayın ve uygulamanızda kullanın.
Bağlantı dizesi biçimleri
Havuz bağlantı dizeleri, doğrudan veritabanı bağlantılarından farklı bir ana bilgisayar adı kullanır.
| Türü | Ana bilgisayar adı biçimi | Ne zaman kullanılır? |
|---|---|---|
| Okuma-yazma havuzu oluşturucu | <endpoint-id>-pooler.<region>.<cloud>.databricks.com |
Havuza yönlendirilen tüm yazma ve okuma trafiği |
| Salt okunur havuz oluşturucu | <endpoint-id>-ro-pooler.<region>.<cloud>.databricks.com |
Trafiği yalnızca oku. Okuma erişimi etkinleştirilmiş yüksek kullanılabilirlik uç noktası gerektirir. |
Her iki havuz oluşturucu türü de 5432 numaralı bağlantı noktasını kullanır.
Note
Uç noktanız, bölgeniz ve bulutunuz için doğru ana bilgisayar adını almak amacıyla pooler bağlantı dizesi'ini Lakebase Uygulamasındaki Connect iletişim kutusundan doğrudan kopyalayın.
İşlem modu sınırlamaları
Bağlantı havuzu oluşturucu kullanılırken aşağıdaki Postgres özellikleri kullanılamaz:
SQL düzeyinde hazırlanmış deyimler:
PREPAREveDEALLOCATEdeyimleri işlem modunda desteklenmez. Sürücü düzeyinde hazırlanmış deyimler (psycopg2, node-postgres, JDBC ve benzeri kitaplıklar tarafından dahili olarak kullanılır), PgBouncer'ın protokol seviyesi desteği sayesinde doğru şekilde çalışır. JDBC için, hazırlanan deyimlerle ilgili hatalar görürseniz, adlandırılmış sunucu tarafı hazırlanmış deyimlerin önbelleğe alınmasını devre dışı bırakmak içinprepareThreshold=0ayarlayın.Oturum düzeyi ayarları:
SETher işlem farklı bir sunucu bağlantısı kullanabileceğinden komutlar işlemler arasında kalıcı olmaz. Örneğin:BEGIN; SET search_path TO myschema; SELECT * FROM mytable; -- works in this transaction COMMIT; -- connection returns to pool after COMMIT SELECT * FROM mytable; -- ERROR: relation "mytable" does not existBir ayarı kalıcı olarak uygulamak için şunu kullanın
ALTER ROLE:ALTER ROLE myrole SET search_path TO myschema, public;Oturumda tutulan geçici tablolar: İşlemler arasında kalıcı olan geçici tablolar kullanılamaz. Havuza döndürülen bir bağlantı, sonraki işlemde farklı bir istemciye atanabilir.
WITH HOLDimleçler: ileWITH HOLDbildirilen imleçler kalıcı bir bağlantı gerektirir ve desteklenmez.Danışmanlık kilitleri: PgBouncer danışmanlık kilitlerini desteklemez. Danışman kilitler, işlem modunda mevcut olmayan kalıcı bir sunucu bağlantısı gerektirir.
LISTEN/NOTIFY: Desteklenmez. Pub/sub mesajlaşması gerektiren uygulamalar için doğrudan bir bağlantı kullanın.pg_dumpve şema geçişleri: Şema geçişleri, oturum düzeyi durumunu kullanan diğer araçlar vepg_dumpiçin doğrudan bağlantı kullanın.
Note
Oturum düzeyinde Postgres özelliklerine ihtiyaç duyan uygulamalar için, Connect iletişim kutusundan doğrudan bağlantı dizesini kullanın ve Bağlantı havuzu seçeneğini etkinleştirmeyin.
Sonraki Adımlar
- Bağlantı dizeleri: Doğrudan bağlantılar için bağlantı dizesi biçimi başvurusu. Bkz. Bağlantı dizeleri.
- Postgres rolleri oluşturma: Bağlantı havuzu için gereken yerel Postgres parola rolleri oluşturma. Bkz. Postgres rolleri oluşturma.
- Kimlik doğrulaması hakkında: OAuth ve parola kimlik doğrulama yöntemlerinin karşılaştırması. Bkz. Kimlik doğrulaması hakkında.