Öğretici: Yerel Service Fabric kümesinde dağıtılan bir Java uygulamasının hatasını ayıklama
Bu öğretici, bir dizinin ikinci bölümüdür. Eclipse for the Service Fabric uygulaması kullanılarak uzak bir hata ayıklayıcının nasıl ekleneceğini öğreneceksiniz. Ayrıca çalıştırılan uygulamalardaki günlüklerin geliştirici için uygun bir konuma nasıl yeniden yönlendirileceğini de öğreneceksiniz.
Bu öğretici dizisinde şunların nasıl yapıldığını öğrenirsiniz:
- Java Service Fabric Güvenilir Hizmetler uygulaması derleme
- Yerel kümede uygulamayı dağıtma ve uygulamanın hatasını ayıklama
- Azure kümesine uygulama dağıtma
- Uygulama için izleme ve tanılamayı ayarlama
- CI/CD ayarlama
Serinin ikinci bölümünde şunları öğrenirsiniz:
- Eclipse kullanarak Java uygulamasının hatasını ayıklama
- Günlükleri yapılandırılabilir bir konuma yeniden yönlendirme
Önkoşullar
Bu öğreticiye başlamadan önce:
- Mac veya Linux için geliştirme ortamınızı ayarlayın. Eclipse eklentisini, Gradle’ı, Service Fabric SDK’yı ve Service Fabric CLI’yı (sfctl) yükleme yönergelerini izleyin.
Voting örnek uygulamasını indirme
Bu öğretici serisinin birinci kısmında Voting örnek uygulamasını oluşturmadıysanız, indirebilirsiniz. Komut penceresinde, örnek uygulama deposunu yerel makinenize kopyalamak için aşağıdaki komutu çalıştırın.
git clone https://github.com/Azure-Samples/service-fabric-java-quickstart
Uygulamayı derleyin ve yerel geliştirme kümesine dağıtın .
Eclipse kullanarak Java uygulamasının hatasını ayıklama
Makinenizde Eclipse IDE'yi açın ve Dosya -> İçeri Aktar... seçeneğine tıklayın.
Açılan pencerede Genel -> Çalışma Alanına Var Olan Projeler seçeneğini belirleyin ve İleri'ye basın.
Projeleri İçeri Aktar penceresinde Kök dizini seçin seçeneğini belirleyin ve Oylama dizinini seçin. Birinci öğretici serisini izlediyseniz Oylama dizini, Eclipse çalışma alanı dizinindedir.
Hatasını ayıklamak istediğiniz hizmetin entryPoint.sh öğesini güncelleştirin; böylece hizmet, uzaktan hata ayıklama parametreleriyle Java işlemini başlatır. Bu öğreticide durum bilgisi olmayan ön uç kullanılır: Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh. Bu örnekte hata ayıklama için 8001 numaralı bağlantı noktası ayarlanmıştır.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
Hatası ayıklanmakta olan hizmet için çoğaltma sayısını veya örnek sayısını ayarlayarak Uygulama Bildirimini güncelleştirin. Bu ayar, hata ayıklama için kullanılan bağlantı noktası için çakışmaları önler. Örneğin, şu işlemleri izleyerek durum bilgisi olmayan hizmetler için
InstanceCount="1"
ayarını yapın ve durum bilgisi olan hizmetler için hedefi ve en az çoğaltma kümesi boyutlarını 1 olarak ayarlayın:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.Eclipse IDE'de Çalıştır -> Hata Ayıklama Yapılandırmaları -> Uzak Java Uygulaması'nı seçin, Yeni düğmesine basın, özellikleri aşağıdaki gibi ayarlayın ve Uygula'ya tıklayın.
Name: Voting Project: Voting Connection Type: Standard Host: localhost Port: 8001
Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java dosyasının 109. satırına bir kesme noktası ekleyin.
Paket Gezgini'nde Oylama projesine sağ tıklayın ve Service Fabric -> Uygulamayı Yayımla ... öğesine tıklayın.
Uygulama Yayımla penceresinde açılan listeden Local.json seçeneğini belirleyin ve Yayımla’ya tıklayın.
Eclipse IDE'de Çalıştır -> Hata Ayıklama Yapılandırmaları -> Uzak Java Uygulaması'nı seçin, oluşturduğunuz Oylama yapılandırmasına tıklayın ve Hata Ayıkla'ya tıklayın.
Web tarayıcınıza gidin ve localhost:8080 adresine erişin. Bu, kesme noktasına otomatik olarak isabet eder ve Eclipse Hata Ayıklama perspektifine girer.
Artık Eclipse'te herhangi bir Service Fabric uygulamasında hata ayıklamak için aynı adımları uygulayabilirsiniz.
Uygulama günlüklerini özel konuma yeniden yönlendirme
Aşağıdaki adımlarda, varsayılan /var/log/syslog konumundaki uygulama günlüklerinin özel bir konuma nasıl yeniden yönlendirileceği gösterilmektedir.
Şu anda Service Fabric Linux kümelerinde çalışan uygulamalar yalnızca tek bir günlük dosyasının alınıp alınmadığını desteklemektedir. Günlüklerin her zaman /tmp/mysfapp0.0.log'a gitmesi için bir uygulama ayarlamak için aşağıdaki Voting/VotingApplication/VotingWebPkg/Code/logging.properties konumunda logging.properties adlı bir dosya oluşturun ve aşağıdaki içeriği ekleyin.
handlers = java.util.logging.FileHandler java.util.logging.FileHandler.level = ALL java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # This value specifies your custom location. # You will have to ensure this path has read and write access by the process running the SF Application java.util.logging.FileHandler.pattern = /tmp/mysfapp0.0.log
Java yürütme komutu için Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh konumuna aşağıdaki parametreyi ekleyin:
-Djava.util.logging.config.file=logging.properties
Aşağıdaki örnekte, önceki bölümdeki yürütmeye benzer şekilde hata ayıklayıcı eklenmiş bir örnek yürütme gösterilmektedir.
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -Djava.util.logging.config.file=logging.properties -jar VotingWeb.jar
Bu aşamada, Service Fabric Java uygulamalarınızı geliştirirken nasıl hata ayıklaması yapacağınızı ve uygulama günlüklerinize erişeceğinizi öğrendiniz.
Sonraki adımlar
Öğreticinin bu bölümünde, şunların nasıl yapıldığını öğrendiniz:
- Eclipse kullanarak Java uygulamasının hatasını ayıklama
- Günlükleri yapılandırılabilir bir konuma yeniden yönlendirme
Sonraki öğreticiye ilerleyin: