Azure Container Apps'te Spring için Eureka Server bileşeninin ayarlarını yapılandırma (önizleme)

Spring için Eureka Server, mikro hizmetler için merkezi hizmet bulma mekanizmasıdır. Spring için Eureka Server bileşeninizi yapılandırmayı ve yönetmeyi öğrenmek için aşağıdaki kılavuzu kullanın.

Göster

komutunu kullanarak show tek bir bileşenin ayrıntılarını ada göre görüntüleyebilirsiniz.

Aşağıdaki komutu çalıştırmadan önce, ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

az containerapp env java-component eureka-server-for-spring show \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME>

Liste

komutunu kullanarak list tüm kayıtlı Java bileşenlerini listeleyebilirsiniz.

Aşağıdaki komutu çalıştırmadan önce, ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

az containerapp env java-component list \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP>

Bağlantıyı kes

Kapsayıcı uygulamasından bağlamayı kaldırmak için seçeneğini kullanın --unbind .

Aşağıdaki komutu çalıştırmadan önce, ile çevrelenen <> yer tutucuları değerlerinizle değiştirin.

az containerapp update \
  --name <APP_NAME> \
  --unbind <JAVA_COMPONENT_NAME> \
  --resource-group <RESOURCE_GROUP>

Spring için Eureka Sunucunuz için izin verilen yapılandırma listesi

Aşağıdaki listede desteklenen yapılandırmaların ayrıntıları yer alır. Spring Cloud Eureka Server'da daha fazla ayrıntı bulabilirsiniz.

Not

Lütfen yeni özellik istekleri için destek biletleri gönderin.

Yapılandırma seçenekleri

komutu, az containerapp update Spring için Eureka Sunucusunun nasıl yapılandırıldığını denetlemek için parametresini kullanır --configuration . Bir boşlukla ayrıldığı sürece aynı anda birden çok parametre kullanabilirsiniz. Spring Cloud Eureka Server belgelerinde daha fazla ayrıntı bulabilirsiniz.

Yapılandırma özelliğinde eureka.server aşağıdaki yapılandırma ayarları kullanılabilir.

Veri Akışı Adı Veri Akışı Açıklaması Default value
eureka.server.enable-self-preservation Etkinleştirildiğinde, sunucu sunucudan alması gereken yenileme sayısını izler. Her zaman yenileme sayısı eureka.server.renewal-percent-threshold tarafından tanımlanan eşik yüzdesinin altına düşer. Varsayılan değer özgün Eureka sunucusunda olarak true ayarlanır, ancak Eureka Server Java bileşeninde varsayılan değer olarak falseayarlanır. Bkz . Spring Java bileşeni için Eureka Server sınırlamaları yanlış
eureka.server.renewal-percent-threshold eureka.server.renewal-threshold-update-interval-ms tarafından belirtilen dönemde istemcilerden beklenen en düşük yenileme yüzdesi. Yenilemeler eşiğin altına düşerse, eureka.server.enable-self-preservation etkinse süre sonu devre dışı bırakılır. 0.85
eureka.server.renewal-threshold-update-interval-ms eureka.server.renewal-percent-threshold içinde belirtilen eşiğin güncelleştirilmesi gereken aralık. 0
eureka.server.expected-client-renewal-interval-seconds İstemcilerin sinyallerini göndermesi beklenen aralık. Varsayılan değer 30 saniyedir. İstemciler her 15 saniyede bir farklı sıklıkta sinyal gönderirse, bu parametre buna göre ayarlanmalıdır, aksi takdirde kendini koruma beklendiği gibi çalışmaz. 30
eureka.server.response-cache-auto-expiration-in-seconds Değişiklik olayları tarafından geçersiz kılınmamışsa, kayıt defteri yükünün önbellekte tutulması gereken zamanı alır. 180
eureka.server.response-cache-update-interval-ms İstemcinin yük önbelleğinin güncelleştirilmesi gereken zaman aralığını alır. 0
eureka.server.use-read-only-response-cache com.netflix.eureka.registry.ResponseCache şu anda yanıtlar için iki düzeyli bir önbelleğe alma stratejisi kullanmaktadır. Süre sonu ilkesine sahip readWrite önbelleği ve süresi dolmadan önbelleğe alınan salt okunur önbellek. true
eureka.server.disable-delta Delta bilgilerinin istemciye sunulup sunulmadığını denetler. yanlış
eureka.server.retention-time-in-m-s-in-delta-queue İstemcilerin değeri kaçırmadan alması için delta bilgilerinin önbelleğe alınması gereken zamanı alın. 0
eureka.server.delta-retention-timer-interval-in-ms Temizleme görevinin uyandığı zaman aralığını alın ve süresi dolan delta bilgilerini denetleyin. 0
eureka.server.eviction-interval-timer-in-ms Süresi dolan görevin örneklerinin uyanıp çalışması gereken zaman aralığını alın. 60000
eureka.server.sync-when-timestamp-differs Zaman damgası farklılık gösterdiğinde örneklerin eşitlenip eşitlenmeyeceğini denetler. true
eureka.server.rate-limiter-enabled Hız sınırlayıcının etkin mi yoksa devre dışı mı olması gerektiğini gösterir. yanlış
eureka.server.rate-limiter-burst-size Hız sınırlayıcı, belirteç demet algoritması özelliği. 10
eureka.server.rate-limiter-registry-fetch-average-rate Hız sınırlayıcı, belirteç demet algoritması özelliği. Zorlanan ortalama istek oranını belirtir. 500
eureka.server.rate-limiter-privileged-clients Sertifikalı istemcilerin listesi. Bu, standart eureka Java istemcilerine ek olarak sağlanır. Yok
eureka.server.rate-limiter-throttle-standard-clients Hız sınırının standart istemciler olup olmadığını belirtin. False olarak ayarlanırsa, yalnızca standart olmayan istemciler hız sınırına sahiptir. yanlış
eureka.server.rate-limiter-full-fetch-average-rate Hız sınırlayıcı, belirteç demet algoritması özelliği. Zorlanan ortalama istek oranını belirtir. 100

Ortak yapılandırmalar

  • ilgili yapılandırmaları günlüğe kaydetme
    • logging.level.*
    • logging.group.*
    • logging.* ad alanı altındaki diğer tüm yapılandırmalar yasak olmalıdır, örneğin kullanarak günlük dosyaları logging.file yazmak yasak olmalıdır.

Uygulamalar arasında arama

Bu örnekte, Spring için Eureka Server bileşenine kayıtlı uygulamalar arasında çağrı yapmak için Java kodu yazma işlemi gösterilmektedir. Kapsayıcı uygulamaları Eureka ile ilişkili olduğunda, Eureka sunucusu aracılığıyla birbirleriyle iletişim kurarlar.

Örnek, çağıran ve çağıran olmak üzere iki uygulama oluşturur. Her iki uygulama da Spring için Eureka Server bileşenini kullanarak birbirleriyle iletişim kurar. Çağıran uygulaması, çağıran uygulama tarafından çağrılan bir uç noktayı kullanıma sunar.

  1. Çağıran uygulamasını oluşturun. Ana sınıfınıza ek açıklama ekleyerek Spring Boot uygulamanızda Eureka istemcisini @EnableDiscoveryClient etkinleştirin.

    @SpringBootApplication
    @EnableDiscoveryClient
    public class CalleeApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CalleeApplication.class, args);
    	}
    }
    
  2. Çağıran uygulamasında çağıran uygulaması tarafından çağrılan bir uç nokta oluşturun.

    @RestController
    public class CalleeController {
    
        @GetMapping("/call")
        public String calledByCaller() {
            return "Hello from Application callee!";
        }
    }
    
  3. Çağrılan uygulamanın adını uygulama yapılandırma dosyasında ayarlayın. Örneğin, application.yml.

    spring.application.name=callee
    
  4. Çağıran uygulamasını oluşturun.

    @EnableDiscoveryClient Eureka istemci işlevselliğini etkinleştirmek için ek açıklamayı ekleyin. Ayrıca, diğer hizmetlere yük dengeli çağrılar gerçekleştirmek için ek açıklamayla @LoadBalanced bir WebClient.Builder fasulye oluşturun.

    @SpringBootApplication
    @EnableDiscoveryClient
    public class CallerApplication {
    	public static void main(String[] args) {
    		SpringApplication.run(CallerApplication.class, args);
    	}
    
    	@Bean
    	@LoadBalanced
    	public WebClient.Builder loadBalancedWebClientBuilder() {
    		return WebClient.builder();
    	}
    }
    
  5. Çağıran uygulamasında çağıran uygulamasını çağıran adlı uygulama adını kullanarak çağırmak için öğesini kullanan WebClient.Builder bir denetleyici oluşturun.

    @RestController
    public class CallerController { 
        @Autowired
        private WebClient.Builder webClientBuilder;
    
        @GetMapping("/call-callee")
        public Mono<String> callCallee() {
            return webClientBuilder.build()
                .get()
                .uri("http://callee/call")
                .retrieve()
                .bodyToMono(String.class);
        }
    }
    

Artık Spring Java bileşenleri için Eureka Server'ı kullanarak birbirleriyle iletişim kuran bir çağıran ve çağıran uygulamanız var. Çağıran uygulamasında uç noktayı test etmeden önce her iki uygulamanın da çalıştığından /call-callee emin olun ve Eureka sunucusuna bağlanın.

Sınırlamalar

  • Eureka Server Java bileşeni, eureka.server.enable-self-preservationolarak ayarlanmış falsevarsayılan bir yapılandırmayla birlikte gelir. Bu varsayılan yapılandırma, kendini koruma etkinleştirildikten sonra örneklerin silinmediği zamanları önlemeye yardımcı olur. Örnekler çok erken silinirse, bazı istekler var olmayan örneklere yönlendirilebilir. Bu ayarı olarak truedeğiştirmek istiyorsanız, Java bileşeninde kendi yapılandırmalarınızı ayarlayarak bu ayarın üzerine yazabilirsiniz.

  • Eureka sunucusunun tek bir çoğaltması vardır ve ölçeklendirmeyi desteklemez ve eş Eureka sunucu özelliğini kullanılamaz hale getirir.

  • Eureka panosu kullanılamıyor.

Sonraki adımlar