Ortam (Environment), bir kuruluştaki API Proxy'leri (API Proxy) için bir çalışma zamanı yürütme bağlamıdır (Runtime Execution Context).

Bu bölümde, ortam oluşturma ve ilgili işlemler anlatılmaktadır.

Sistem Genel Ayarlar ekranı üzerinden, Kubernetes Namespace ve Resource'ları Apinizer ile yönetilsin seçeneği Aktif olarak işaretlendiğinde gelmektedir. 

Ortam Oluşturma

Ortam oluştururken genel tanım bilgilerini içeren görsellere aşağıda yer verilmiştir:


Ortam genel bilgilerini içeren alanlar aşağıdaki tabloda görülmektedir.

Alan

Açıklama

Tür

(Type)

Lisans'a ve kullanılan ortama uygun bir değer seçilmesi gerekmektedir. Test veya Üretim (Production) seçilebilir.

İletişim Protokolü Türü

(Communication Protocol Type)

HTTP, gRPC, HTTP+Websocket iletişim protokollerinden birisi seçilebilir. 

API Proxylerin hangi ortama deploy edilebileceğini burada seçilen tür belirler. REST ve SOAP API Proxyler HTTP tipindeki ortama, gRPC API Proxyleri gRPC tipindeki ortama ve Websocket API Proxyler HTTP+Websocket tipindeki ortama deploy edilebilir.

Ad

(Name)

Ortamın adı. Kubernetes'teki namespace'e karşılık gelmektedir.

Anahtar

(Key)

Oluşturulan ortam için kullanılan ve ortama özgü kısaltılmış bir anahtardır.

Node Listesi

(Node List)

Oluşturulan ortamın hangi kubernetes sunucularında çalışacağı seçilir.

Proje

(Project)

Ortamın kullanılabileceği projeleri buradan seçebilir ya da tüm projelerde kullanılabilmesi için seçimi boş bırakılabilir. Eğer bir veya birden çok proje seçimi yapılırsa, yeni oluşturulan projelerde de kullanılmak için onların da eklenmesi gerekmektedir. Varsayılan değer olarak seçimsiz gelir. Proje seçilmesi durumunda sadece o proje içerisinde yer alan API Proxyler'in bu ortama deploy edilebileceği anlamına gelir.

Erişim URL Adresi

()

Ortam içinde çalışan API Proxy'lerin dış erişim adresidir. Bir önceki bölümde Ortam Erişim Adresi başlığında detaylı olarak açıklanmıştır.

Açıklama

(Description)

Yönetim kolaylığı ve önemli notlar için kullanılabilir.

Gateway Sunucusu Erişim URL'si

(Gateway Server Access URL)

Apinizer Yönetim konsolunda yapılan konfigürasyonların Gateway Pod'larına yüklenebilmesi için gerekli olan nodeport veya ingress tipindeki servis erişim adresi buraya girilir.

Örnek: http://worker-http-service.prod.svc.cluster.local:8091


Eğer HTTPS Etkin (HTTPS Enabled) seçeneği seçilirse buradaki adrese de dikkat edilmelidir

Örnek: https://worker-https-service.prod.svc.cluster.local:8443

Cache Sunucusu Erişim URL'si

(Cache Server Access URL)

Apinizer Yönetim konsolunda yapılan konfigürasyonların Cache Pod'larına yüklenebilmesi için veya Gateway Pod'larının cache podlarına erişebilmesi için gerekli olan nodeport veya ingress tipindeki servis erişim adresi buraya girilir.

Örnek: http://cache-http-service.prod.svc.cluster.local:8090


API Proxy Trafik Log Konnektörleri

Ortamdaki tüm API Proxy Trafiğinin ve uzantılarının loglanacağı log konnektörleri buradan tanımlanır.

API Proxy Trafik Log Konnektörü tanımlamalarını içeren görsele aşağıda yer verilmiştir:

Ortama konnektör ekleme hakkında daha fazla bilgi için lütfen bu sayfaya bakın.

Gateway Engine ve Cache Sunucu Ayarları

Gateway engine ve Cache sunucusu, Kubernetes ortamındaki pod'lara karşılık gelmektedir.

Gateway engine'in Apinizer Platformu'ndaki adı apinizer-worker'dır. Apinizer Platforum'un çekirdek (core) modülüdür, tüm API isteklerinin BackendAPI'ye yönlendirilmesinden sorumludur ve Policy Enforcement Point olarak çalışır. 

Cache sunucusu Apinizer Platformu'ndaki adı apinizer-cache'dir. Apinizer'da gerek duyulan Cache değerlerinin tutulduğu ortamdır.

Gateway engine ve Cache sunucu tanımlamalarını içeren görsellere aşağıda yer verilmiştir:

Gateway engine bölümündeki konfigürasyon için kullanılan alanlar aşağıdaki tabloda görülmektedir.

Alan

Açıklama

Sayısı

(Count)

Gateway engine sayısı, Kubernetes deployment'taki "replicas" değerine karşılık gelmektedir.  Oluşturulacak Kubernetes Cluster'da oluşacak Pod sayısını belirtir.

CPU

Pod'un kullanacağı maksimum CPU core sayısı bilgisidir.

Bellek

(Memory)

Pod'un kullanacağı maksimum bellek değeridir.

Önerilen değerler aşağıdaki şekildedir:

CPUBellek Boyutu
12GB
24GB
46GB
810GB

Bellek Birimi

(Memory Unit)

Bellek için gerekli olan değerin birimi seçilir; MB, GB. 

Servis Erişim Bilgileri

(Service Access Information)

HTTP Etkin (HTTP Enabled) seçeneği varsayılan olarak seçili olarak gelir.

Eğer HTTPS kullanılmak istenirse HTTPS Etkin (HTTPS Enabled) seçeneği de seçilir, bu durumda şifreleme için gerekli dosyalar yüklenmelidir.

mTLS ayarı HTTPS protokolü üzerinde çalıştığından sadece HTTPS ayarı açıkken seçilebilir ve sunucunun istemciden kimlik doğrulamasını istemesine olanak tanır, ancak bağlantıyı kurmak için bunu kesin bir gereklilik olarak zorlamaz. Eğer mTLS yetkilendirmesinin yapılması zorunlu olarak istenecekse mTLS politikası kullanılmalıdır. 

Keystore

(Keystore)

HTTPS protokülü seçildiğinde, keystore dosyaları JKS veya PFX formatında yüklenebilir.

Truststore

(Truststore)

HTTPS protokülü seçildiğinde, truststore dosyaları JKS veya PFX formatında yüklenebilir.

Keystore Şifresi

(Keystore Password)

Keystore dosyasına ait şifre girilir.

Truststore Şifresi

(Truststore Password)

Truststore dosyasına ait şifre girilir.

Gateway Erişimi İçin Güvenli Servis Portu Oluştur

(Create Secure Service For Gateway Service Access)

30080-32767 aralığında bir servisin portu girilir. Servis Kubernetes'te NodePort olarak oluşacaktır.

Gateway Erişimi İçin Servis Portu Oluştur

(Create Service For Gateway Service Access)

30080-32767 aralığında bir servisin portu girilir. Servis Kubernetes'te NodePort olarak oluşacaktır.

İletişim Protokolü gRPC Seçilirse

Eğer Gateway Management API, gateway pod'ları ile HTTPS üzerinden iletişim kuracaksa, Ağ Geçidi Yönetimi API erişimi için HTTPS hizmeti oluşturun (Create HTTPS service for Gateway Management API access) seçeneği seçilir. keystore ve truststore dosyaları JKS veya PFX formatında yüklenebilir. Apinizer Yönetim konsolunda yapılan konfigürasyonların gateway pod'larına yüklenebilmesi için gerekli olan servis erişim adresi Gateway Sunucusu Erişim URL'si (Gateway Management API Access URL) aşağıdaki gibi girilir.

Örnek: https://worker-http-service.prod.svc.cluster.local:8443

Service Port alanında, iletişimini dış dünyaya açacak port belirtilir. İletişimi dış dünyadan güvenli olarak sağlanacaksa Ağ Geçidi Hizmeti erişimi için güvenli hizmet oluşturun (Create secure service for Gateway Service access) seçeneği seçilir. Güvenlik ayarlarının yapılandırılması için keystore ve truststore dosyaları JKS veya PFX formatında yüklenebilir.

Ek Değişkenler (Additional Variables)

Pod içinde çalıştırılacak varsayılan ve opsiyonel değişkenler ve değerleri tanımlanır.

Varsayılan değişkenler silinemez, sadece değerleri düzenlenebilir ya da yenileri eklenebilir.

Ortam tipine bağlı olarak kullanımları değişkenlik gösterir. 

Değişken AdıHedef Ortam TipiAçıklaması
JAVA_OPTSHepsi

-XX: MaxRAMPercentage: JVM Heap değerlerini konteyner içinde çalıştığından konteynere verilen belleğin %75'ini kullanacak şekilde ayarlar

http.maxConnections: Bu ortamdan açılabilecek maksimum http bağlantı sayısını ayarlar.

tuneWorkerThreadsHttp Worker, HTTP+Websocket Worker, Management API

Sunucunun minumum kaç adet Worker thread ile çalışacağını belirtir. Önerilen değerleri şu şekildedir:

CPUThread Sayısı
1512
21024
42048
84096
tuneWorkerMaxThreadsHttp Worker, HTTP+Websocket Worker, Management API

Sunucunun maksimum kaç adet Worker thread ile çalışacağını belirtir. Önerilen değerleri şu şekildedir:

CPUThread Sayısı
11024
22048
44096
88192
tuneBufferSizeHttp Worker, HTTP+Websocket Worker, Management APIByte cinsinden bir threadin yazma işlemi için kullanacağı buffer alan büyüklüğüdür.
tuneIoThreadsHttp Worker, HTTP+Websocket Worker, Management APIIO Thread sayısıdır. Önerilen değerleri işlemci sayısı ile paralel olmasıdır. 
tuneBacklogHttp Worker, HTTP+Websocket Worker, Management APISunucunun bağlantıları kabul etmeye hazır olması durumunda bekleyen maksimum bağlantı kuyruğu boyutunu belirtir.
tuneRoutingConnectionPoolMaxConnectionPerHostHttp Worker, HTTP+Websocket Worker, Management APIAPI Proxylerin backend bağlantılarında bir host başına kullanılabilecek maksimum bağlantı havuzu değeridir.
tuneRoutingConnectionPoolMaxConnectionTotalHttp Worker, HTTP+Websocket Worker, Management API

API Proxylerin backend bağlantıları için kullanılacak maksimum bağlantı havuzu değeridir.  Önerilen değerleri şu şekildedir:

CPUBağlantısı Sayısı
11024
22048
44096
88192
tuneApiCallConnectionPoolMaxConnectionPerHostHttp Worker,HTTP+Websocket Worker, Management API

API Proxy'lerden backend API'ye yapılan çağrımlar dışında kalan tüm HTTP(s) bağlantılarında (API Call Politikası gibi) bir host başına kullanılabilecek maksimum bağlantı havuzu değeridir. Örnek değerler şu şekilde olabilir:

CPUBağlantısı Sayısı
116
232
464
8128
tuneCacheConnectionPoolMaxConnectionTotalHttp Worker,HTTP+Websocket Worker, Management API

API Proxy'lerden yapılan Cache bağlantıları için kullanılacak maksimum bağlantı havuzu değeridir.  Throttling, Quota ve Response Cache gibi özellikler yoğun kullanılıyorsa CPU'da göz önünde bulundurularak değerleri yüksek verilmelidir. Örnek değerler şu şekilde olabilir:

CPUBağlantısı Sayısı
1128
2256
4512
81024
tuneApiCallConnectionPoolMaxConnectionTotalHttp Worker,HTTP+Websocket Worker, Management API

API Proxy'lerden backend API'ye yapılan çağrımlar dışında kalan tüm HTTP(s) bağlantılarında kullanılacak maksimum bağlantı havuzu değeridir.  Önerilen değerleri şu şekildedir:

CPUBağlantısı Sayısı
11024
22048
44096
88192

API çağrımları ve Cache bağlantıları için kullanılacak olan toplam bağlantı sayısı API çağrımları için kullanılabilecek maksimum bağlantı sayısını geçemez: tuneApiCallConnectionPoolMaxConnectionPerHost + tuneCacheConnectionPoolMaxConnectionTotal <= tuneApiCallConnectionPoolMaxConnectionTotal

defaultCharsetHttp Worker,HTTP+Websocket Worker, Management API

Bu alan eklenmediğinde varsayılan olarak UTF-8 karakter seti kullanılır; bu alan, request ve response işlemlerinde kullanılan karakter setini belirtir.

logLevelHepsi

Ortamların başlarken uygulama loglarının bu parametre ile öntanımlı olarak başlatılmasını sağlar. ERROR, WARNING, INFO, DEBUG, TRACE ve OFF değerlerini alabilir. 

multi-part / Dosya Yükleme ParametreleriHttp Worker,HTTP+Websocket Worker, Management API

Dosya yüklemeleri için multi-part HTTP isteklerine ait ayarları konfigüre etmek için aşağıdaki anahtar parametreler kullanılmalıdır;


ParametreAçıklamaÖrnek Değer (byte)
multipartConfigMaxFileSizeDosya yüklemek için izin verilen maksimum boyuttur104857600
multipartConfigMaxRequestSizemulti-part/form-data isteği için izin verilen maksimum boyuttur104857600
multipartConfigFileSizeThresholdDosyanın diske yazılacağı boyut eşiğidir104857600

Tüm anahtar kavramların boyut değeri byte cinsindendir, yani 1024*1024*100, 100 MB'dir.

Token Servisi CORS ParametreleriHttp Worker,HTTP+Websocket Worker, Management API

Apinizer üzerinden JWT veya OAuth2 Token almak için bir javascript uygulaması bağlandığında, Apinizer token servisinden CORS değerlerinin dönmesi ihtiyacı duyulur.

JWT veya OAuth2 Token ayarları;

  • API Proxy üzerinden yönetilecekse, API proxy üzerindeki CORS ayarı token için de aktif olur.
  • Credential üzerinden yönetilecekse, worker sunucusuna verilen aşağıdaki parametreler kullanılır.
CORS ParametresiÖrnek Değer
tokenCorsAccessControlAllowOrigin*
tokenCorsAccessControlAllowCredentialstrue
tokenCorsAccessControlAllowMethodsGET, POST, PUT, DELETE, OPTIONS
tokenCorsAccessControlAllowHeaders

Authorization, Content-Type, Cache-Control

tokenCorsAccessControlOrigin

*

tokenCorsAccessControlRequestMethod

GET, POST, PUT, DELETE, OPTIONS

tokenCorsAccessControlRequestHeaders

Authorization, Content-Type, Cache-Control

tokenCorsAccessControlExposeHeaders

Authorization, X-Requested-With

tokenCorsAccessControlMaxAge

3600

Token Servisi X-Forwarded-For ParametreleriHttp Worker,HTTP+Websocket Worker, Management API

Apinizer üzerinden JWT veya OAuth2 Token almak için bir istek yapıldığında istemcinin IP'sinin alınması gereklidir.

JWT veya OAuth2 Token ayarları;

  • API Proxy üzerinden yönetilecekse, API proxy üzerindeki XFF ayarı token için de aktif olur.
  • Credential üzerinden yönetilecekse, worker sunucusuna verilen aşağıdaki parametreler kullanılır.
XFF ParametresiÖrnek Değer
tokenXForwardedForIpHeader

X-Forwarded-For

tokenXForwardedForIpOrder

first

tuneGrpcKeepAliveTime

Grpc Worker

İstemci ile sunucu arasındaki bağlantının canlı tutulması için gönderilen ping mesajları arasındaki süre (saniye cinsinden)

tuneGrpcKeepAliveTimeout

Grpc Worker

Bir keep-alive ping'inin yanıtı için beklenecek maksimum süre (saniye cinsinden) 

tuneGrpcMaxMessageSize

Grpc Worker

 İşlenebilecek maksimum mesaj boyutu (byte cinsinden)

tuneGrpcMaxHeaderListSize

Grpc Worker

İzin verilen maksimum HTTP başlık listesi boyutu (byte cinsinden)

tuneGrpcMaxConnectionAge

Grpc Worker

Bir bağlantının yaşayabileceği maksimum süre (saniye cinsinden)

tuneGrpcMaxConnectionAgeGrace

Grpc Worker

Zorla kapatılmadan önce yaşlı bağlantılara verilen ek süre (saniye cinsinden)

tuneGrpcMaxConnectionIdle

Grpc Worker

Bir bağlantının boşta kalabileceği maksimum süre (saniye cinsinden)

tuneGrpcMaxInboundMessageSize

Grpc Worker

Alınabilecek maksimum gelen mesaj boyutu (byte cinsinden) 

tuneGrpcMaxInboundMetadataSize

Grpc Worker

İşlenebilecek maksimum gelen metadata boyutu (byte cinsinden)

tuneGrpcHandshakeTimeout

Grpc Worker

El sıkışma işlemi için maksimum bekleme süresi (saniye cinsinden) 

tuneGrpcPermitKeepAliveTime

Grpc Worker

İzin verilen minimum keep-alive zaman aralığı (saniye cinsinden)

tuneGrpcThreadPoolSize

Grpc Worker

gRPC sunucusu için ayrılan iş parçacığı havuzu boyutu 

METRICS_ENABLED

Http Worker,HTTP+Websocket Worker, Grpc Worker

Metrik toplama özelliğinin açık olup olmadığı

tuneWebsocketIdleTimeout

HTTP+Websocket Worker

WebSocket bağlantısının ne kadar süre boyunca veri alışverişi olmayan bir şekilde kalabileceğini belirtir.

tuneWebsocketBufferSize

HTTP+Websocket Worker

WebSocket bağlantısı üzerinden gönderilen veya alınan veriler için kullanılan dahili arabellek boyutunu belirler.

tuneWebsocketTcpNoDelay

HTTP+Websocket Worker

TCP'nin Nagle algoritmasının WebSocket bağlantısı için etkinleştirilip etkinleştirilmeyeceğini kontrol eder.

deploymentTimeout

Management API

Deployment yapıldığında istek ortam içinde yer alan bir Pod'a düşer. Bu pod ortamda (namespace içinde) yer alan diğer Pod'ları bulur ve bunlara da aynı konfigürasyonu senkron bir şekilde gönderir. Bu parametre ile Pod'lar arasındaki işlemler için zaman aşım süresini ayarlanır. Ön tanımlı değeri 120 saniyedir.  

http2Enabled

HTTP+Websocket Worker

HTTP/2 bağlantılarına izin verilip verilmeyeceğini belirler.

Ek Değişkenler ile güvenlik yapılandırması 

ParametreAçıklamaVarsayılan DeğerOlası DeğerlerTarget Java Property
jdkTLSVersionsDesteklenecek TLS protokol versiyonlarını belirlerTLSv1, TLSv1.1, TLSv1.2, TLSv1.3SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2, TLSv1.3

https.protocols

jdk.tls.client.protocols

jdk.tls.server.protocols

jdkTLSDisabledAlgorithmsGüvenlik nedeniyle devre dışı bırakılacak TLS algoritmalarını belirlerRC4, DES, MD5withRSA, DH keySize < 768, EC keySize < 224, 3DES_EDE_CBC, anon, NULLRC4, DES, MD5withRSA, DH keySize < 768, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, SSLv3, TLSv1, TLSv1.1jdk.tls.disabledAlgorithms
jdkCertPathDisabledAlgorithmsSertifika doğrulama sürecinde kullanılmayacak algoritmaları belirlerJDK varsayılan değeri kullanılırMD2, MD5, SHA1, RSA keySize değerleri, DSA keySize değerleri, EC keySize değerlerijdk.certpath.disabledAlgorithms
jdkCipherSuitesKullanılacak şifreleme takımlarını belirlerJDK varsayılan değeri kullanılır

TLS 1.3 için: TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256

TLS 1.2 için: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

Legacy için: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA

https.cipherSuites
jdkAllowUnsafeProtocolsGüvenli olmayan protokollerin kullanımına izin verilip verilmeyeceğini belirlerfalsetrue, falsehttps.protocols.allow_unsafe, jdk.tls.client.protocols.allow_unsafe

Önemli Notlar:

  1. Ek değişkenler ayarlanmadığında:
    • TLS Versions için "TLSv1, TLSv1.1, TLSv1.2, TLSv1.3" kullanılır
    • TLS Disabled Algorithms için "RC4, DES, MD5withRSA, DH keySize < 768, EC keySize < 224, 3DES_EDE_CBC, anon, NULL" kullanılır
    • Diğer parametreler için JDK'nın varsayılan değerleri kullanılır
  2. Güvenlik Önerileri:
    • TLSv1.2 ve üstü versiyonların kullanılması önerilir
    • GCM modlu şifreleme takımları tercih edilmelidir
    • Zayıf algoritmalar (RC4, DES, 3DES) devre dışı bırakılmalıdır
    • Anahtar boyutları yeterli güvenlik seviyesinde olmalıdır (RSA için en az 2048 bit, EC için en az 224 bit)
  3. Performans Etkisi:
    • Şifreleme takımlarının sıralaması performansı etkileyebilir
    • Çok fazla şifreleme takımının devre dışı bırakılması eski sistemlerle uyumluluk sorunlarına neden olabilir

Cache Server ayarları:

Cache sunucu konfigürasyonu için kullanılan alanlar aşağıdaki tabloda görülmektedir.

Alan

Açıklama

Cache Sayısı

Cache sayısı, Kubernetes Cluster'daki replicaSet ile eş değerdir.

CPU

Pod'un kullanacağı maksimum CPU core sayısı bilgisidir.

Bellek

(Memory)

Pod'un kullanacağı maksimum bellek değeridir.

Önerilen değerler aşağıdaki şekildedir:

CPUBellek Boyutu
12GB + Tahmini Cache Büyüklüğü
24GB + Tahmini Cache Büyüklüğü
46GB + Tahmini Cache Büyüklüğü
810GB + Tahmini Cache Büyüklüğü

-Xss256k veya -Xss128k gibi değerler kullanarak thread başına bellek ihtiyacını azaltabilirsiniz.

Bellek Birimi

(Memory Unit)

Bellek için gerekli olan değerin birimi seçilir; MB, GB. 

Cache Server için Ek Değişkenler (Additional Variables)

Pod içinde çalıştırılacak varsayılan ve opsiyonel değişkenler ve değerleri tanımlanır. Bu değerler kullanılan CPU'ya göre iyileştirilmelidir.

ParametreAçıklamaVarsayılan DeğerOlası DeğerlerCPU'ya Göre Önerilen Değerler
1 vCPU2 vCPU4 vCPU8 vCPU
SERVER_TOMCAT_MAX_THREADSTomcat'in işleyebileceği maksimum eşzamanlı istek sayısı1024
256102420484096
SERVER_TOMCAT_MIN_SPARE_THREADSTomcat'in her zaman hazır tutacağı minimum thread sayısı512
1282565121024
SERVER_TOMCAT_ACCEPT_COUNTTüm threadler meşgulken kabul edilebilecek bağlantı sayısı512
1282565121024
SERVER_TOMCAT_MAX_CONNECTIONSTomcat'in aynı anda kabul edebileceği maksimum bağlantı sayısı8192
20484096819216384
SERVER_TOMCAT_CONNECTION_TIMEOUTBağlantının zaman aşımına uğramadan önceki süre (milisaniye)20000
20000200002000020000
SERVER_TOMCAT_KEEPALIVE_TIMEOUTKeep-alive bağlantılarının açık kalma süresi (milisaniye)60000
30000450006000060000
SERVER_TOMCAT_MAX_KEEPALIVE_REQUESTSBir keep-alive bağlantısı üzerinden işlenebilecek maksimum istek sayısı10000
500075001000015000
SERVER_TOMCAT_PROCESSOR_CACHEİşlemci önbelleğinde saklanabilecek maksimum işlemci sayısı512
1282565121024
HAZELCAST_IO_WRITE_THROUGHHazelcast'in write-through modunun etkin olup olmadığını belirlerfalse
falsefalsefalsefalse
HAZELCAST_MAP_LOAD_CHUNK_SIZEHazelcast map yüklemesi sırasında kullanılacak yığın (chunk) boyutu10000
500075001000015000
HAZELCAST_MAP_LOAD_BATCH_SIZEHazelcast map yüklemesi sırasında kullanılacak batch boyutu10000
500075001000015000
HAZELCAST_CLIENT_SMARTHazelcast client'ının akıllı yönlendirme kullanıp kullanmayacağıtrue
truetruetruetrue
HAZELCAST_MAPCONFIG_BACKUPCOUNTHazelcast map verisinin kaç yedek kopyasının saklanacağı1
1111
HAZELCAST_MAPCONFIG_READBACKUPDATAYedek kopyalardan veri okunup okunmayacağıtrue
truetruetruetrue
HAZELCAST_MAPCONFIG_ASYNCBACKUPCOUNTAsenkron olarak tutulacak yedek kopya sayısı0
0000
HAZELCAST_OPERATION_RESPONSEQUEUE_IDLESTRATEGY

Hazelcast yanıt kuyruğu için boşta kalma stratejisi

HAZELCAT IDLESTRATEGY

Eğer HAZELCAST_OPERATION_RESPONSEQUEUE_IDLESTRATEGY parametresini "backoff" ayarlarsanız: Pod'un CPU limitinin %90-100'ünü sürekli kullanacaktır. Bu durum %5-10 performans artışı sağlayabilir ancak Cache pod'unun CPU kaynaklarının limitini tüketir.

backoffblock, backoff, busyspinblockblockbackoffbusyspin
HAZELCAST_MAP_WRITE_DELAY_SECONDSMap write-behind özelliği için gecikme süresi (saniye)5
3455
HAZELCAST_MAP_WRITE_BATCH_SIZEMap write-behind özelliği için kullanılan batch boyutu100
5075100150
HAZELCAST_MAP_WRITE_COALESCINGWrite-behind işlemlerinde birleştirme yapılıp yapılmayacağıtruetrue,falsetruetruetruetrue
HAZELCAST_MAP_WRITE_BEHIND_QUEUE_CAPACITYWrite-behind kuyruğunun maksimum kapasitesi100000
5000075000100000150000
HAZELCAST_OPERATION_THREAD_COUNTHazelcast operasyon thread sayısıCPU core sayısı
1248
HAZELCAST_OPERATION_GENERIC_THREAD_COUNTHazelcast genel operasyon thread sayısıCPU core sayısının yarısı
1124
HAZELCAST_SERIALIZATION_USE_NATIVE_BYTE_ORDERHazelcast serialization için native byte order kullanımıtruetrue,falsetruetruetruetrue
HAZELCAST_PARTITION_COUNTHazelcast partition sayısı271
271271271271
HAZELCAST_MAX_NO_HEARTBEAT_SECONDSHazelcast maksimum heartbeat yokluğu süresi (saniye)60
60606060
HAZELCAST_HEARTBEAT_INTERVAL_SECONDSHazelcast heartbeat gönderim aralığı (saniye)5
5555
HAZELCAST_MASTER_CONFIRMATION_INTERVAL_SECONDSHazelcast master confirmation aralığı (saniye)30
30303030
HAZELCAST_SOCKET_KEEP_ALIVETCP socket keep-alive özelliğitrue
truetruetruetrue
HAZELCAST_SOCKET_NO_DELAYTCP socket Nagle algoritması devre dışı bırakmatrue
truetruetruetrue
HAZELCAST_OPERATION_CALL_TIMEOUT_MILLISHazelcast operasyon çağrı timeout'u (milisaniye)60000
60000600006000060000
HAZELCAST_OPERATION_BACKUP_TIMEOUT_MILLISHazelcast backup operasyon timeout'u (milisaniye)5000
5000500050005000
HAZELCAST_SPLITBRAIN_PROTECTION_ENABLEDSplit-brain protection açık/kapalı durumuHAZELCAST_SOCKET_KEEP_ALIVEfalsetrue,falsefalsefalsefalsefalse
HAZELCAST_SPLITBRAIN_QUORUM_SIZESplit-brain protection için minimum quorum boyutu2
2222
HAZELCAST_CP_MEMBER_COUNTCP Subsystem member sayısı (0 = devre dışı)0
0000
HAZELCAST_CP_GROUP_SIZECP Subsystem group boyutu3
3333
HAZELCAST_CP_SESSION_TTL_SECONDSCP Subsystem session TTL (saniye)300
300300300300
HAZELCAST_CP_SESSION_HEARTBEAT_SECONDSCP Subsystem session heartbeat aralığı (saniye)5
5555
HAZELCAST_MERGE_BATCH_SIZEMerge policy batch boyutu100
100100100100
CACHE_SERVICE_NAMECache'in kubernetes üzerinden diğer cache pod'larına erişebilmesi için gerekli servis adıdırcache-hz-service




CACHE_QUOTA_TIMEZONE

Cache'de günlük kota bilgileri de tutulmaktadır. Günlük kota bilgileri UTC timezone'a göre sıfırlanır.

Eğer günlük değişen kotanın başlangıç zamanını kendi yerel saatinize göre sıfırlanmasını istiyorsanız ek değişkenlere CACHE_QUOTA_TIMEZONE değerini ekleyebilirsiniz. Buraya eklenen değerin "+03:00" şeklinde yazılması gereklidir.

00:00+03:00



CACHE_LAZY_MODE

Cache podlarının ilk açılışta veritabanındaki değerleri tek seferde yüklemeye çalışması istenmiyorsa CACHE_LAZY_MODE değeri lazy olarak eklenebilir. Bu durumda öncelik pod'un açılmasına verilir ve değerler pod açıldıktan sonra da yüklenmeye devam edebilir. Veritabanında yüksek miktarda kayıt varsa bu değerin girilmesi önerilir.eagereager,lazy



METRICS_ENABLEDMetrik toplama özelliğinin açık olup olmadığıfalsetrue,false



Ek değişkenler alanındaki Java Options ayarını yapılandırırken aşağıdaki uyarı dikkate alınmalıdır;

-Xmx ve -Xms ayarlarının otomatik yığın (heap) boyutlandırmasını devre dışı bıraktığını lütfen unutmayınız.

Apinizer, JVM Yığın (Heap) değerlerini konteyner içinde çalıştığından konteynere verilen belleğin %75'ini kullanacak şekilde ayarlar.

UseContainerSupport varsayılan olarak aktif gelmektedir.

Eski bayraklar (flag) -XX: {Min | Max} RAMFraction artık kullanımdan kaldırıldı. 0.0 ve 100.0 arasında bir değer alan ve varsayılan olarak 25.0 olan yeni bir -XX: MaxRAMPercentage bayrağı (flag) vardır. Bu nedenle, 1 GB bellek sınırı varsa, JVM yığını (heap) varsayılan olarak ~ 250 MB ile sınırlıdır.

Detaylı bilgi için tıklayınız.

Host Takma Adlarını Ayarlama

Host Takma Adı (Host Alias) nedir? Neden ihtiyaç duyulur?

Ağda bulunan IP adresleri bazen host isimleri arkasına konulabilir, bunlar eğer nameserver ya da host dosyasına tanımlanmamışsa ya da bir şekilde Apinizer'ın bunları çözmesi sağlanamamışsa, worker podların bu isimleri çözmesi için Host Alias tanımı yapılmalıdır.

Burada yapılan değişikliklerin etkinleşmesi için republish işlemi gerekmektedir. Versiyon güncellemesine nazaran bu işlemde bir kaç dakikalık kesinti olacağına dikkat edilmelidir.


Kubernetes üzerinde host adları ya da bunlara karşılık gelen IP adreslerine, takma host isimleri verilebilir. Bu ayar, deployment.yaml dosyası içinde tanımlanır.

Host takma adı ayarlarını içeren görsele aşağıda yer verilmiştir:

Ortamı Yayımlama 

Bir ortamı yayımlamak için Yayınlanmamış (Unpublished) butonuna tıklanır.

Gelen pencereden işlemi onaylamak için Yayınla (Publish) butonuna tıklanır ve ortam kubernetes sunucusuna dağıtılır (deploy).

Ortamı Yeniden Yayınlama

Yayımlanmış durumda olan bir ortamın üzerine gelerek Yayınlanmış (Published) butonuna tıklanır.

Gelen pencereden işlemi onaylamak için Yeniden Yayınla (Republish) butonuna tıklanır.

Ortamı Yeniden Yayınla işleminden sonra, Pod'lar da yeniden başlatılır (restart).

JWT Token Doğrulama Anahtarı

Ortam kayıt edilmiş ise JWT Token Doğrulama Anahtarı üretilmiştir. Bu token, kimlik doğrulama politikaları için Apinizer Token Servisi üzerinden token üretmede yer alan private key'in değeridir.  Eğer kullanıcı kendi token'ını üretmek isterse buradaki private key'den faydalanmalıdır.

Bu bilgilere erişmek için JWT Token Doğrulama Anahtarı (JWT Token Validation Keys) tabına gidilir. 

Redeploy tuşuna tıklayarak mevcut anahtarın değişiklik yapılmadan sunuculara tekrar yüklenmesi sağlanabilir.

Regenerate & Deploy tuşuna tıklayarak yeni anahtar üretilip sunuculara yüklenmesi sağlanabilir.

Upload & Deploy tuşuna tıklayarak PEM Encoded Private Key dosyası yüklenebilir ve bu anahtara göre yeni anahtar üretilmesi ve kullanılması sağlanabilir.

Ortam (Environment) Silme

Ortamı seçerek, en altta bulunan Ortamı Sil (Remove Environment) tabından Ortamı Sil (Remove Environment) diyerek ortam ile ilgili bilgileri veritabanından silinmiş olur.

Silme işlemi tamamlandığında bu ortamda kayıtlı tüm API Proxylerin yüklemesi de silinir ve bu ortama daha önceden yüklenmiş olan API Proxy'lere bu ortam üzerinden artık erişilemez.

Önbellek Monitörü

API Proxy ekranının Genel Bilgi sekmesinde Cache bölümündeki ayarlar ile istek, önbelleğe alınarak, Backend API'ye gitmeden yanıtlanabilir. Aynı zamanda kota ve darboğaz (quota ve throttle) politikaları da cache pod'u üzerinden yönetilmektedir.

Ortam bazlı olarak önbellek işlemlerini izlemek, detaylarını görmek ve silmek için ortamın Önbellek (Cache) linkinden bu sayfaya gidilir.


Önbellek Monitörünü içeren görsele aşağıda yer verilmiştir:


Metrik Monitörü

Kubernetes üzerindeki Worker ve Cache podların durumunu izlemek için ortam listesinden ilgili ortamın Podlar (Pods)  linkine tıklanır. 

Podlar ekranını içeren görsele aşağıda yer verilmiştir:


Eğer tüm ortamların metriklerine erişmek isterseniz buraya tıklayınız.