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.
Bu öğreticide, hatalar ve yüksek talep karşısında çalışır durumda kalmak üzere tasarlanmış bir Eureka hizmeti oluşturmayı öğreneceksiniz. Yüksek oranda kullanılabilir bir Eureka hizmeti oluşturmak, Azure Container Apps için kullandığınız hizmet kayıt defterinin talep ne olursa olsun istemciler tarafından her zaman kullanılabilir olmasını sağlamaya yardımcı olur.
Eureka için yüksek kullanılabilirlik durumu elde etmek, birden çok Eureka sunucu örneğinin bir küme oluşturması için birbirine bağlanmayı içerir. Küme, bir Eureka sunucusu başarısız olursa diğer hizmetlerin istekler için kullanılabilir durumda kalması için kaynaklar sağlar.
Bu öğreticide şunları yaptınız:
- Spring bileşenleri için Eureka sunucuları oluşturun.
- Spring bileşenleri için iki Eureka sunucusunu bir kümeye bağlayın.
- Yüksek oranda kullanılabilir hizmet bulma için bir kapsayıcı uygulamasını her iki Eureka sunucusuna da bağlayın.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Henüz bir hesabınız yoksa ücretsiz olarak oluşturabilirsiniz.
- Azure CLI.
Dikkat edilmesi gereken noktalar
Container Apps'te yönetilen Java bileşenlerini çalıştırdığınızda aşağıdaki ayrıntılara dikkat edin:
| Kalem | Açıklama |
|---|---|
| Kapsam | Bileşenler, bağlı kapsayıcı uygulamasıyla aynı ortamda çalışır. |
| Ölçeklendirme | Bileşenler ölçeklendirilemiyor. Ölçeklendirme özellikleri minReplicas ve maxReplicas her ikisi de olarak 1ayarlanır. |
| Kaynaklar | Bileşenler için kapsayıcı kaynak ayırması düzeltildi. CPU çekirdeği sayısı 0,5, bellek boyutu ise 1 GB'tır. |
| Fiyatlandırma | Bileşen faturalaması tüketime dayalı fiyatlandırmanın altındadır. Yönetilen bileşenler tarafından kullanılan kaynaklar, kaynak kullanımına bağlı olarak etkin veya boşta kalma fiyatlarına göre faturalandırılır. Faturalamayı durdurmak için artık kullanımda olmayan bileşenleri silebilirsiniz. |
| Bağlama | Kapsayıcı uygulamaları bağlama yoluyla bir bileşene bağlanır. Bağlamalar, yapılandırmaları kapsayıcı uygulaması ortam değişkenlerine ekler. Bağlama oluşturulduktan sonra kapsayıcı uygulaması ortam değişkenlerinden yapılandırma değerlerini okuyabilir ve bileşene bağlanabilir. |
İlk kaynakları ayarlama
Eureka hizmet kümeniz için ihtiyacınız olan bazı kaynakları oluşturmak için aşağıdaki adımları kullanın.
Uygulama yapılandırma değerlerini barındıran değişkenler oluşturun.
export LOCATION=eastus export RESOURCE_GROUP=my-services-resource-group export ENVIRONMENT=my-environment export EUREKA_COMPONENT_FIRST=eureka01 export EUREKA_COMPONENT_SECOND=eureka02 export APP_NAME=sample-service-eureka-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-service-eureka-client:latest"Azure'da oturum açmak için Azure CLI'yi kullanın.
az loginKaynak grubu oluşturun.
az group create --name $RESOURCE_GROUP --location $LOCATIONContainer Apps ortamınızı oluşturun.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Küme için sunucu oluşturma
Spring bileşenleri için iki Eureka Sunucusu oluşturun.
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST
az containerapp env java-component eureka-server-for-spring create \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_SECOND
Küme oluşturmak için bileşenleri birbirine bağlama
Eureka sunucularının yüksek kullanılabilirlik yapılandırmasında çalışması için küme olarak birbirine bağlanması gerekir.
İlk Eureka sunucusunu ikinciye bağlayın.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_FIRST \ --bind $EUREKA_COMPONENT_SECONDİkinci Eureka sunucusunu birinci sunucuya bağlayın.
az containerapp env java-component eureka-server-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_COMPONENT_SECOND \ --bind $EUREKA_COMPONENT_FIRST
Uygulamayı dağıtma ve bağlama
Sunucu bileşenleri birbirine bağlı olduğunda kapsayıcı uygulamasını oluşturabilir ve iki Eureka bileşenine bağlayabilirsiniz.
Kapsayıcı uygulamasını oluşturun.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080Kapsayıcı uygulamasını ilk Eureka sunucu bileşenine bağlayın.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_FIRSTKapsayıcı uygulamasını ikinci Eureka sunucu bileşenine bağlayın.
az containerapp update \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --bind $EUREKA_COMPONENT_SECOND
Panoyu görüntüleme
Önemli
Spring dashboard'ını görüntülemek için Eureka Sunucusu'nun, Çevre Uygulamaları kaynağı için hesabınıza Microsoft.App/managedEnvironments/write, Owner veya Contributor rolünün atanmış olması gerekir.
- Bu rollerden birine zaten sahipseniz, URL'yi almak ve panoyu görüntülemek için Pano URL'sini alma bölümüne atlayın.
- Özel bir rol tanımı oluşturmak ve bunu hesabınıza atamak istiyorsanız, aşağıdaki özel rol oluşturma ve atama bölümündeki adımları izleyin.
- Hesabınıza kaynağın
OwnerveyaContributorrolünü atamak istiyorsanız, bu atamayı yapın ve pano URL'sini alma bölümüne atlayın.
Özel rol oluşturma ve atama
Özel rol tanımını oluşturun. Bu komutu çalıştırmadan önce,
AssignableScopesiçindeki yer tutucuyu abonelik kimliğiniz ile değiştirin.az role definition create --role-definition '{ "Name": "Java Component Dashboard Access", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Container Apps ortamının kaynak kimliğini alın.
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Container Apps ortam kaynağı için hesabınıza özel rolü atayın. Bu komutu çalıştırmadan önce, değerdeki yer tutucuyu
assigneekullanıcı nesne kimliğiniz veya hizmet sorumlusu kimliğiniz ile değiştirin.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "Java Component Dashboard Access" \ --scope $ENVIRONMENT_ID
Pano URL'sini alma
Spring için Eureka Server panosunun URL'sini alın.
az containerapp env java-component eureka-server-for-spring show \
--environment $ENVIRONMENT \
--resource-group $RESOURCE_GROUP \
--name $EUREKA_COMPONENT_FIRST \
--query properties.ingress.fqdn \
--output tsv
Bu komut, Spring için Eureka Server panosuna erişmek için kullanabileceğiniz URL'yi döndürür. Pano aracılığıyla Eureka sunucu kurulumunun iki çoğaltmadan oluştuğunu doğrulayabilirsiniz.
Kaynakları temizleme
Bu öğreticide oluşturulan kaynaklar Azure faturanızı etkiler. Bu hizmetleri uzun vadede kullanmayacaksanız, bu öğreticide oluşturulan her şeyi kaldırmak için aşağıdaki komutu çalıştırın.
az group delete --resource-group $RESOURCE_GROUP