背景:我們都看到了幾種配置分佈式應用程序的方式。出於我的目的,其中兩個脫穎而出:尋找配置DSL,允許稀疏規範和輸出JSON
有一個海量數據庫,所有節點都有權訪問。每個節點都知道自己的身份,因此可以對所述數據庫執行查詢以提取特定於自身的配置信息。
使用定製的(即特定於每個節點的)配置文件(例如JSON),使得節點根本不必接觸數據庫。他們只是讀取定製的配置文件,並做它說的。
每個人都有優點和缺點。對於我的目的,我想探索#2a更進一步,但我遇到的問題是,JSON文件可以變得相當大。我想知道是否有人知道非常適合生成這些JSON文件的DSL。
步驟一步的例子來說明我的意思:
想我做出了這個元語言,看起來像這樣:
bike.%[0..3](Vehicle)
這則輸出以下JSON:
{
"bike.0":
{
"type": "Vehicle"
},
"bike.1":
{
"type": "Vehicle"
},
"bike.2":
{
"type": "Vehicle"
},
"bike.3":
{
"type": "Vehicle"
}
}
這個想法是,我們剛剛創造了4輛自行車,每輛車都是Vehicle型。
進一步說:
bike[i=0..3](Vehicle)
label: "hello %i"
label.3: "last"
現在這樣做是命名索引變量「我」,使其可用於每個項目的配置信息。這將是輸出的JSON會是這樣的:
{
"bike.0":
{
"type": "Vehicle",
"cfg":
{
"label": "hello 0"
}
},
"bike.1":
{
"type": "Vehicle",
"cfg":
{
"label": "hello 1"
}
},
"bike.2":
{
"type": "Vehicle",
"cfg":
{
"label": "hello.2"
}
},
"bike.3":
{
"type": "Vehicle",
"cfg":
{
"label": "last"
}
}
}
你可以看到的最後一個標籤是如何被覆蓋,所以這是一個辦法稀疏指定的東西。有沒有什麼東西可以讓人做到這一點?
謝謝!