Java-buildpack: Mendukung penonaktifan konfigurasi ulang otomatis

Dibuat pada 4 Agu 2014  ·  10Komentar  ·  Sumber: cloudfoundry/java-buildpack

Saya tidak ingin CF mengonfigurasi ulang aplikasi Java untuk saya, tetapi opsi autoconfigure: false tampaknya tidak dihormati dalam manifes, dan plugin Maven tidak memiliki opsi untuk menonaktifkannya. Opsi ini tersedia di buildpack untuk bahasa lain (mis., Ruby).

Komentar yang paling membantu

Hai, ya ini sekarang mungkin.
Konfigurasi apa pun sekarang dapat diatur melalui variabel lingkungan alih-alih mem-forking buildpack untuk mengubah file konfigurasi secara langsung. Misalnya, untuk menonaktifkan konfigurasi ulang otomatis Anda harus mengatur variabel lingkungan seperti ini.

cf set-env myapp JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'

Informasi lebih lanjut ada di dokumentasi https://github.com/cloudfoundry/Java-buildpack#configuration -and-extension

Semua 10 komentar

Konfigurasi ulang apa yang Anda coba hindari? Dalam praktiknya, JAR konfigurasi ulang otomatis Spring diletakkan di jalur kelas, tetapi mungkin tidak benar-benar melakukan konfigurasi ulang otomatis. Konfigurasi ulang otomatis hanya terjadi ketika _keduanya_ layanan yang merupakan kandidat untuk konfigurasi ulang _dan_ kacang yang merupakan kandidat untuk konfigurasi ulang ada. Oleh karena itu, Anda dapat menghindari konfigurasi ulang otomatis dengan tidak mengikat layanan yang tidak ingin Anda konfigurasi ulang secara otomatis. Selain itu, konfigurasi ulang otomatis dihindari sepenuhnya jika ada kacang spring-cloud ditentukan.

Saya ingin menghindari sihir apa pun yang belum saya minta secara khusus. Saya tidak punya cara untuk men-debug apa yang mungkin dilakukan oleh konfigurasi ulang otomatis di sisi server, termasuk apakah itu menganalisis layanan yang disediakan pengguna secara akurat, dan saya lebih suka mengosongkan memori tetesan untuk sedikit lebih banyak cache atau apa pun daripada kode tambahan yang saya tidak 'tidak perlu dan tidak ingin. Selain itu, konfigurasi ulang otomatis hampir sepenuhnya tidak terdokumentasi (setidaknya saya dapat menemukannya) dan karena itu tidak dapat diprediksi sebagai masalah praktis.

@chrylis Poin terakhir @nebhale yang disebutkan tentang konfigurasi ulang otomatis mati sendiri ketika melihat kacang berbasis spring-cloud (atau bahkan vcap-java) harus menangani situasi di mana aplikasi ingin mengonfigurasi layanan dengan sangat spesifik. Dengan asumsi Anda menggunakan spring-cloud, konfigurasi ulang otomatis tidak akan pernah mengganggu aplikasi Anda. Saya juga tidak berpikir konfigurasi ulang otomatis akan menghabiskan jumlah memori yang nyata.

Dengan semua yang dikatakan, kami memang menawarkan konfigurasi ulang otomatis untuk dimatikan di v1 (lihat https://spring.io/blog/2011/11/04/using-cloud-foundry-services-with-spring-part-2 -konfigurasi ulang otomatis). Sekarang hari, ada palu besar forking buildpack dan memodifikasinya agar sesuai dengan kebutuhan apa pun. Jadi apakah peralihan seperti itu masih diperlukan di java buildpack itu sendiri, saya akan membiarkan @nebhale melakukan panggilan.

Saat ini, saya percaya bahwa konfigurasi ulang otomatis berperilaku tepat dengan hanya bertindak dalam serangkaian keadaan yang sangat dapat diprediksi. Saya mendasarkan ini pada fakta bahwa ini adalah masalah pertama yang meminta cara untuk menonaktifkannya. Namun saya terbuka untuk mempertimbangkan kembali posisi ini jika kami berakhir dengan sejumlah permintaan yang serupa dengan yang ini. Sampai kita melihat situasi yang dapat direproduksi di mana konfigurasi ulang otomatis berperilaku tidak semestinya dan tidak dapat dimodifikasi agar berfungsi dengan baik, saya cenderung untuk menjaga segala sesuatunya sebagaimana adanya.

Seperti semua komponen, konfigurasi ulang otomatis dapat dinonaktifkan dengan menghapus entrinya dari daftar komponen. Lokasi terbaik untuk dokumentasi tentang konfigurasi ulang otomatis ada di repositori GitHub dan di halaman dokumentasi framework .

Jika ada peningkatan khusus pada perilaku konfigurasi ulang otomatis atau dokumentasi di sekitarnya, beri tahu kami dan kami akan dengan senang hati melakukannya.

Selain itu, konfigurasi ulang otomatis dihindari sepenuhnya jika ada kacang spring-cloud yang ditentukan.

Dalam pengalaman saya, ada masalah waktu dalam perilaku itu. Jika kacang spring-cloud didefinisikan dalam suatu profil, maka kacang tersebut dapat diidentifikasi setelah kacang yang dinyatakan "sebelumnya" (yaitu, kacang yang ditentukan di luar profil tertentu) telah di-munged oleh konfigurasi ulang otomatis.

Misalnya, diberikan konfigurasi yang mendefinisikan dua kacang DataSource : sumber data tersemat dan sumber data eksternal yang dapat bervariasi berdasarkan lingkungan/profil. Referensi ke sumber data yang disematkan akan dikonfigurasi ulang untuk mengarah ke sumber data eksternal kecuali Anda mengubah konfigurasi untuk sebaris dengan definisi kacang sumber data yang disematkan.

Saya juga ingin menonaktifkan konfigurasi ulang otomatis, untuk alasan yang sama seperti poster aslinya: Saya tidak ingin terjadi keajaiban yang tidak saya mengerti.
Apakah itu berubah? Apakah mungkin untuk menonaktifkannya dengan cara lain selain mem-forking buildpack?

Hai, ya ini sekarang mungkin.
Konfigurasi apa pun sekarang dapat diatur melalui variabel lingkungan alih-alih mem-forking buildpack untuk mengubah file konfigurasi secara langsung. Misalnya, untuk menonaktifkan konfigurasi ulang otomatis Anda harus mengatur variabel lingkungan seperti ini.

cf set-env myapp JBP_CONFIG_SPRING_AUTO_RECONFIGURATION '[enabled: false]'

Informasi lebih lanjut ada di dokumentasi https://github.com/cloudfoundry/Java-buildpack#configuration -and-extension

Saya sudah menggunakan teknik ini untuk pengaturan kalkulator memori. Saya kira saya sebaiknya memeriksa semua file konfigurasi dan melihat apa yang ada di dalamnya sebelum saya mengajukan pertanyaan lagi.
Terima kasih.

Untuk melakukan ini dalam file manifes, diperlukan format yang berbeda.

Coba ini,

JBP_CONFIG_SPRING_AUTO_RECONFIGURATION: '[enabled: false]'

Perhatikan tambahan :

Apakah ada rencana untuk pustaka konfigurasi ulang otomatis ini untuk mendukung penonaktifan sebagian koneksi layanan? Secara khusus, dalam kasus penggunaan kami, kami memerlukan RedisConnectionFactory yang disesuaikan (karena kami menggunakan koneksi SSL ke layanan Azure Redis), namun, kami ingin lib konfigurasi ulang otomatis ini mengonfigurasi ulang RabbitMQ kami (karena kami menggunakan layanan RabbitMQ yang disediakan PCF).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

edeandrea picture edeandrea  ·  4Komentar

vijayantony picture vijayantony  ·  27Komentar

aknobloch picture aknobloch  ·  8Komentar

mkuratczyk picture mkuratczyk  ·  10Komentar

pxie picture pxie  ·  20Komentar