package Ġcom . ir rl ab . kotlin . ns q Ċ Ċ import Ġcom . github . brain lag . ns q . NS Q Consumer Ċ import Ġcom . github . brain lag . ns q . NS Q Producer Ċ import Ġcom . github . brain lag . ns q . lookup . Default NS QL ook up Ċ import Ġcom . google . gson . Gson Ċ import Ġspark . Request Ċ import Ġspark . Response Ċ import Ġspark . Response Transformer Ċ import Ġspark . Route Ċ import Ġspark . Spark . get Ċ import Ġkotlin . concurrent . thread ĊĊ Ċ class ĠJson Transformer Ġ: ĠResponse Transformer Ġ{ ĊĠĠĠ Ġprivate Ġval Ġgson Ġ= ĠGson () ĊĠĠĠ Ġoverride Ġfun Ġrender ( model : ĠAny ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgson . toJson ( model ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRouter () Ġ{ ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġget ("/ test ", Ġobject Ġ: ĠRoute Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle ( request : ĠRequest , Ġresponse : ĠResponse ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . type (" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map Of ( 2 0 0 Ġto Ġ" Test ĠOK !"); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, ĠJson Transformer ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* Ċ curl Ġ- i Ġ- H Ġ" Content - Type : application / json " Ġ- X ĠPOST Ġ- d Ġ"{ ' id ':' 2 0 0 ',' token ':' ab 2 c def 3 4 3 4 bfc 3 ssd hh f ' }" Ġ' http :// 1 2 7 . 0 . 0 . 1 : 4 1 5 1 / put ? topic = topic ' Ċ Ġ*/ Ċ Ċ fun Ġmain ( args Ġ: ĠArray < String >) Ġ{ ĊĠĠĠ Ġthread () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlookup Ġ= ĠDefault NS QL ook up () ĊĠĠĠĠĠĠĠ Ġlookup . add Lookup Address (" 1 2 7 . 0 . 0 . 1 ", Ġ 4 1 6 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġconsumer Ġ= ĠNS Q Consumer ( lookup , Ġ" topic ", Ġ" channel ", Ġ{ Ġmessage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" received : Ġ" Ġ+ ĠString ( message . message )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage . finished () ĊĠĠĠĠĠĠĠ Ġ}). set Lookup Period ( 5 0 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġconsumer . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfigs Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 0 , Ġ" 1 2 7 . 0 . 0 . 1 " Ġto Ġ 4 1 5 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( 1 , Ġ" 1 2 7 . 0 . 0 . 1 " Ġto Ġ 5 1 5 0 )) ĊĠĠĠĠĠĠĠ Ġval Ġpro ducers Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNS Q Producer (). add Address ( configs [ 0 ] !!. first , Ġconfigs [ 0 ] !!. second ). start (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNS Q Producer (). add Address ( configs [ 1 ] !!. first , Ġconfigs [ 1 ] !!. second ). start () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠ Ġfor Ġ( n Ġin Ġ 1 .. 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map Of ( n Ġto Ġ" message Ġ$ n Ġsent Ġto Ġ${ configs [ n Ġ% Ġ 2 ]} ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro ducers [ n Ġ% Ġ 2 ]. produce (" topic ", Ġgson . toJson ( map ). toByteArray ()); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ ĠRouter (). main ( args ) Ċ } ĊĊ