Hem G/Ç ağır hem de CPU ağır görevleri için doğru bir web teknolojisi seçmeye çalışıyorum. NodeJs büyük yükü taşımak için mükemmeldir ve aynı zamanda ölçeklendirilebilir. Ancak, cpu ağır kısmı ile sıkışmış. Başka bir teknolojiyi (ör. Java) düğüme entegre etmek mümkün, böylece algoritmalarımı diğer iş parçacıklarında çalıştırmam ve sonra sonuçları düğümde tekrar kullanabileceğim. Mevcut bir çözüm var mı? Diğer öneriler çok iyi olacak.Java ağır CPU görevleri ile çalışmak için nodejs ile nasıl entegre edilir?
cevap
NodeJS'i Java ile node-java kullanarak iç içe geçebilirsiniz.
Çok teşekkürler, bunu da deneyeceğim. –
Önceki bir yanıtta belirtildiği gibi, Java ile konuşabilen bir npm modülü olan node-java'yı kullanabilirsiniz. Ayrıca, Java kütüphanesi olarak Node.js'yi saran ve Java'da bir Node.js API'si sağlayan J2V8'u da kullanabilirsiniz.
Cevabınız için teşekkürler. Soru 3 yıl önce sorulmuştur. Güncel Sonuç: (dağıtılmış bir çözüm olarak) tavşan mq ya kafka gibi mesaj simsarlarının aslında entegrasyonlar bu tür yapıyor önlemek için yardımcı olabilir. Ayrıca, hesaplama ağır işler, apache kıvılcımı gibi özel modüllere verilebilir. Genelde, bu aşamada, lambda mimarisi inandığım sorunun cevabıdır. –
Yanıt, lambda architecture.
NodeJs kendi başına faydalıdır - hızlı sorguları hafif bir şekilde ele alır, verilerde ekstra hesaplamalar yapmaz.
İşlemcinin ağır görevleri, JVM'ye dayanan özel bileşenlere kolayca aktarılabilir (en iyi olanlar JVM üzerindedir). Bu mesaj brokerleri ve microservices kullanarak güzel uygulanmaktadır.
Düğümlerin Cassandra ya da Mongodb gibi veritabanlarına bağlanabileceği ve Apache Spark gibi küme hesaplama çerçevelerine bağlanabilecek olay temelli bir mimari (zorunlu olsa da, sorunun kaynağı da buna bağlı olarak). sistemi. Ve hafif kaplar, içinde yaşamak için bileşenlerin her biri için güzel izole edilmiş çalışma zamanı ortamları sağlayarak pastayı kremaya ekler. Bu soruya şu ana kadarki sonuç şu: Bu soruyla ilgili şu ana kadarki sonucum var. Yukarıdaki önerilerin, cpu-ağır görevler için java veya başka bir JVM tabanlı çözüm altında düğümü sarma gereksinimini ortadan kaldırdığını düşünüyorum.
- 1. Eslint jenkins ile nasıl entegre edilir?
- 2. NSURLConnection, UIProgressView ile nasıl entegre edilir?
- 3. Amazon Cognito, Android için Google Plus ile nasıl entegre edilir?
- 4. Nasıl elde edilir rangeSelector HighCharts ile çalışmak için
- 5. Nasıl pygtk ile çalışmak için
- 6. NGINX yapılandırması ile çalışmak için Socket.IO
- 7. Web kamerası çalışmak için OpenCV 2.3 ile çalışmak Cygwin ile
- 8. Elasticsearch, "Elasticsearch" gemini kullanarak raylı uygulama ile nasıl entegre edilir?
- 9. CanCan çoklu model modelleri ile nasıl entegre edilir?
- 10. Jira ile GitLab CE nasıl entegre edilir? Biz
- 11. Webstorm'da "akış" nasıl entegre edilir?
- 12. Bir ön uç JavaScript kitaplığı nasıl test edilir ve Travis ile entegre edilir?
- 13. Yükleme sonrasında WinMerge ile TortoiseSvn nasıl entegre edilir?
- 14. Projemde facebook butonu ile giriş nasıl entegre edilir
- 15. Neden Celery ile zamanlanmış görevleri çalıştırmak crontab üzerinde tercih edilir?
- 16. XDebug ile çalışmak için __debugInfo nasıl edinilir?
- 17. SIP Android'e nasıl entegre edilir?
- 18. Delphi ile Wifi ile çalışmak istiyorum. Nasıl?
- 19. Can node.js php ile entegre edilebilir mi?
- 20. Birden çok nodejs projesi için gulp görevleri nasıl yeniden kullanılır
- 21. Python ile Brython'u Javascript ile derlemek (nodejs ile çalıştırmak için)?
- 22. JSON Jackson ile greenDAO nasıl entegre edilir ve birçok ilişki eşleştirmesiyle nasıl baş edilir
- 23. Raylarda datetime ile çalışmak
- 24. AsMock, AsUnit 4'e nasıl entegre edilir?
- 25. Arduino ile çalışmak için Xcode'u ayarlama
- 26. Komisyon görevleri ile çalışabilir mi?
- 27. Android uygulamasında Paypal nasıl entegre edilir?
- 28. ggvis ile çalışmak için etkileşimli yakınlaştırma alamıyorum
- 29. nodejs içinde CPU bağlı görevlerini uygulama yolları
- 30. Angular2 içinde Linkedin Nasıl Entegre Edilir
Yapılması en kolay şey test etmek ve çeşitli teknolojilerin gereksinimlerinize göre nasıl performans gösterdiğini görmek. Ayrıca, altyapının 10 yıl önce olduğu kadar pahalı olmadığını da unutmayın. Yüklemeyi desteklemek için yeni sunucu örneklerini spinnning, bu günlerde önemsiz. –
Neden cpu ağır JS kodunu başka bir iş parçacığıyla dışarıdan yükleyebildiğiniz için başka bir teknoloji seçmelisiniz? Konulara göz atın-a-gogo https://github.com/xk/node-threads-a-gogo ve diğer nodejs threading tools :) – randunel
Çok teşekkürler, nodejs threading araçları aradığım şey gibi görünüyor. Bunu kesinlikle deneyeceğim. :) –