簡體   English   中英

將應用程序推送到erlang從節點

[英]Pushing applications to erlang slave nodes

分布式系統中,有一個主服務器,它使用slave:start啟動一堆從服務器。 它使用更大的日志記錄主服務器上的消息,客戶端將日志消息發送到主服務器,然后主服務器記錄它們。

問題在於這些消息的數量和大小可能會增加並增加網絡使用率。 相反,除非日志消息的“級別”高於某個級別(例如,錯誤或警報但不警告),否則我希望將從節點上的日志寫到本地,而不是推送到主節點。

我嘗試在從屬節點上啟動一個獨立的Lager應用程序,但是它抱怨找不到適合它的應用程序文件:錯誤,{“沒有這樣的文件或目錄”,“ goldrush.app”}}(goldrush是對lager的依賴)。

這些應用程序應如何分配給從站?

應用程序最好作為Erlang版本的一部分進行分發。 這意味着使用Rebar創建發行版。 通過這樣的過程,您將確保始終擁有所需的應用程序(如果您的應用程序正確地依賴於其他應用程序,例如Lager)。

另一種選擇是在啟動應用程序之前確保該應用程序(及其依賴項)存在於目標系統上。 這是一種更手動的方法,但是例如可以拉出源存儲庫並在其他命令中運行rebar3 compile以正確構建系統。 一旦下載並構建了所有依賴項,就可以啟動系統。

無法通過Erlang本身將Erlang應用程序推送到另一個節點。 通過欺騙可以通過線路將單個Erlang模塊作為二進制文件發送。 對於應用程序,這是不可取的 ,因為它們可能還取決於其他許多條件(例如應用程序文件和私有數據)。

底線:您需要通過自己的部署過程來確保應用程序及其依賴關系本身就存在於目標服務器上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM