αž€αžΆαžšαž€αžŸαžΆαž„αž”αŸ’αž›αž»αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αŸ” αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αž‘αžΈαž–αžΈαžš

αžŸαŸαž…αž€αŸ’αžαžΈαž‡αžΌαž“αžŠαŸ†αžŽαžΉαž„

αžŸαž αžŸαŸαžœαž·αž€ αž“αŸ…αž–αžΆαž€αŸ‹αž€αžŽαŸ’αžαžΆαž›αžšαžŠαžΌαžœαž€αŸ’αžαŸ… αžαŸ’αž‰αž»αŸ†αž˜αžΆαž“αž‚αž˜αŸ’αžšαŸ„αž„αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž’αžαŸ’αžαž”αž‘αžŸαŸŠαŸαžšαžΈαž˜αž½αž™αž‘αŸ€αžαžŸαŸ’αžαžΈαž–αžΈαž€αžΆαžšαžšαž…αž“αžΆαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαž˜αŸ’αžšαž„αŸ‹αž‡αž½αžšαŸ– "αž€αžΆαžšαž–αž·αžŸαŸ„αž’αž“αŸ VTrade" αžŠαŸ‚αž›αž‡αžΆαž€αžΆαžšαž”αŸ‰αž»αž“αž”αŸ‰αž„αžŸαžšαžŸαŸαžšαž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜αŸ” αžŸαŸŠαŸαžšαžΈαž“αŸαŸ‡αž“αžΉαž„αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒαž€αžΆαžšαž€αžŸαžΆαž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž€αžΆαžšαžŠαŸαž‰αžαŸ’αž›αŸƒ αž“αž·αž„αž αžΆαž„αŸ” αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž’αžαŸ’αžαž”αž‘ αžαŸ’αž‰αž»αŸ†αžŸαžΌαž˜αž’αž‰αŸ’αž‡αžΎαž‰αž’αŸ’αž“αž€αž±αŸ’αž™αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαž›αžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαž”αŸ†αž•αž»αžαŸ”

αž€αžΆαžšαž€αžŸαžΆαž„αž”αŸ’αž›αž»αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αŸ” αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αž‘αžΈαž–αžΈαžš

αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž’αžαŸ’αžαž”αž‘αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸŠαŸαžšαžΈαžŸαŸ’αžαžΈαž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„ Erlang/Elixir αŸ” IN αž’αžαŸ’αžαž”αž‘αžŠαŸ†αž”αžΌαž„ αž’αŸ’αž“αž€αž’αžΆαž…αžšαž€αžƒαžΎαž‰αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‚αŸ’αžšαžΉαŸ‡αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αŸ” αž’αžαŸ’αžαž”αž‘αž‘αžΈαž–αžΈαžš αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž‚αŸ†αžšαžΌ αž“αž·αž„αž™αž“αŸ’αžαž€αžΆαžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ‚αž”αž“αŸαŸ‡αŸ”

αžαŸ’αž„αŸƒαž“αŸαŸ‡αž™αžΎαž„αž“αžΉαž„αž›αžΎαž€αž™αž€αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αžΌαžŠ αž“αž·αž„αž‚αž˜αŸ’αžšαŸ„αž„αž‘αžΌαž‘αŸ…αŸ”

αž’αž„αŸ’αž‚αž€αžΆαžšαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜

αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αžΈαžœαž·αžαž–αž·αž αž“αŸ…αž–αŸαž›αž”αž„αŸ’αž€αžΎαžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž½αž™ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαžαŸ‚αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž‚αŸ†αžšαžΌαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž…αŸ’αžšαžΎαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž˜αž½αž™αŸ” αž§αž‘αžΆαž αžšαžŽαŸ αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαŸ‚αž›αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αž˜αŸ’αžšαž„αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‚αž˜αŸ’αžšαŸ„αž„ αžαŸ’αžšαžΌαžœαžαŸ‚αž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαŸ†αžŽαžΎ req-resp αž“αž·αž„αžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž‘αž˜αŸ’αžšαž„αŸ‹αžαžΆαž˜αžšαž™αŸˆ pub-sub αŸ” αž€αžšαžŽαžΈαž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹αŸ– αž“αŸ…αž–αžΈαž€αŸ’αžšαŸ„αž™αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžš αž˜αžΆαž“αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αž“αž»αžœαžαŸ’αžαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αŸ”

αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αž“αž»αžœαžαŸ’αžαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αŸ‚αž€αž…αžΆαž™αžŠαŸ‚αž›αž’αžαŸ‹αž±αž“αž…αŸ†αž–αŸ„αŸ‡αž€αŸ†αž αž»αžŸαŸ” αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžšαž˜αŸƒαžαžΆαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαŸ–

  1. αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŸαŸαžœαžΆαž‚αž½αžšαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎαž“αŸ…αž›αžΎ 5 node cluster,
  2. αž’αžΆαž…αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž„αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™,
  3. αž αžΎαž™αž€αŸαž’αžΆαž…αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αž‰αŸ’αž‡αžΈαž‡αžΆαžœαž‡αžΆαž”αŸ’αžšαž…αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž‘αž˜αŸ’αžšαž„αŸ‹αž•αž„αžŠαŸ‚αžšαŸ”

αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αŸˆ αž™αžΎαž„αž˜αž·αž“αž‚αž·αžαž–αžΈαž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž‡αžΆαž”αŸ‹αž‚αŸ’αž“αžΆ αž“αž·αž„αž€αžΆαžšαž…αž˜αŸ’αž›αž„αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‘αŸαŸ” αž…αžΌαžšαžŸαž“αŸ’αž˜αžαžαžΆαž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αž»αž“αž“αŸαŸ‡ αž αžΎαž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž˜αžΆαž“αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž’αžΆαž…αž‘αž»αž€αž…αž·αžαŸ’αžαž”αžΆαž“ αž“αž·αž„αž’αžΆαž…αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžšαž½αž…αž αžΎαž™ αž αžΎαž™αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž˜αžΆαž“αž™αž“αŸ’αžαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αžœαžΆαŸ”

αž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆαž‡αžΆαž•αŸ’αž›αžΌαžœαž€αžΆαžšαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž€αžΆαž“αŸ‹αžαŸ‚αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αŸ” αžαžΆαž˜αž‘αžŸαŸ’αžŸαž“αŸˆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž˜αžΆαž“αžαž·αž…αžαž½αž…αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŸαžΆαžšαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž–αŸαž‰αžαŸ†αžšαžΌαžœαž€αžΆαžšαžŠαŸ†αž”αžΌαž„ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαž˜αžαž»αž›αŸ’αž™αž“αŸ…αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš req-resp αŸ”

αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž·αž…αŸ’αž…αž€αžΆαžšαž•αŸ’αž‘αŸƒαžαžΆαž„αž€αŸ’αžšαŸ„αž™αž€αžΎαžαž‘αžΎαž„αž‡αžΆαž‰αžΉαž€αž‰αžΆαž”αŸ‹αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžœαžΆαž’αžΆαž…αž‡αžΆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž―αž€αžŸαžΆαžšαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αž αž»αž–αŸαžαŸŒαž˜αžΆαž“αžŠαŸ‚αž›αž”αžΆαž“αž‘αžΆαž‰αž™αž€ αž¬αž’αŸ’αžœαžΎαžŸαž˜αž€αžΆαž›αž€αž˜αŸ’αž˜αž‘αž·αž“αŸ’αž“αž“αŸαž™αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αžŸαž–αŸ’αžœαž•αŸ’αžŸαžΆαž™αžŸαž„αŸ’αž‚αž˜αŸ” αž”αžŽαŸ’αžαžΆαž‰αŸ” αž—αžΆαžšαž€αž·αž…αŸ’αž…αž‘αžΆαŸ†αž„αž“αŸαŸ‡αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžαŸ’αžšαžΌαžœαž…αŸ‚αž€αž…αžΆαž™αžαžΆαž˜αžšαž”αŸ€αž”αžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜ αž“αž·αž„αžœαžŒαŸ’αžαž“αž—αžΆαž–αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™ αž™αžΎαž„αž˜αžΆαž“αž‡αž˜αŸ’αžšαžΎαžŸαžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž–αžΈαžšαŸ– αž‘αžΆαŸ†αž„αž”αŸ’αžšαžΎαž‚αŸ†αžšαžΌαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž—αžΆαžšαž€αž·αž…αŸ’αž…αž–αžΈαž’αžαŸ’αžαž”αž‘αž˜αž»αž“ αž¬αž”αŸ’αžšαžŸαž·αž“αž”αžΎαžœαžΆαž˜αž·αž“αžŸαž˜αžŸαŸ’αžšαž” αžŸαžΌαž˜αžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž—αžΆαžšαž€αž·αž…αŸ’αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŠαŸ‚αž›αž“αžΉαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž€αŸ’αžšαž»αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαžΆαž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ”

αž…αŸ†αžŽαž»αž…αž‘αžΈ 3 αž‘αžΆαž˜αž‘αžΆαžšαž•αŸ’αž“αŸ‚αž€αž”αž“αŸ’αžαŸ‚αž˜αž‘αž˜αŸ’αžšαž„αŸ‹ pub-sub αŸ” αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αž αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αž„αŸ’αž€αžΎαžαž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš pub-sub αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž…αŸ†αžŽαž»αž…αž“αŸαŸ‡αž”αž“αŸ’αžαŸ‚αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžœαžΆαžŠαžΌαž…αž‡αžΆαž™αžΎαž„αž€αŸ†αž–αž»αž„αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž‡αžΆαžœ αž“αž·αž„αž€αžΆαžšαžˆαž”αŸ‹αž‡αžΆαžœαž–αžΈαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž•αŸ’αž‰αžΎαžŸαžΆαžšαž‘αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αŸ”

αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž€αžΆαžšαžšαž›αžΆαž™αž“αŸƒαž”αž‰αŸ’αž αžΆαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αžαžΆ αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž–αŸαž‰αžαžΆαž˜αžαž˜αŸ’αžšαžΌαžœαž€αžΆαžš αž™αžΎαž„αžαŸ’αžšαžΌαžœαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž…αŸ†αž“αž½αž“ 5 αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆ αž“αž·αž„αž”αž„αŸ’αž€αžΎαžαž’αž„αŸ’αž‚αž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αž˜αž½αž™ - αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ pub-sub αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž‡αžΆαžœαŸ”
αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžš 5 handlers αž’αŸ’αž“αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž›αŸαžαž€αžΌαžŠαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αŸαŸ” αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αžαŸ‚αž˜αž½αž™αž‚αžαŸ‹αž‚αžΊαž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαž…αŸ’αž”αžΆαž”αŸ‹αžαž»αž›αŸ’αž™αž—αžΆαž–αž“αŸ…αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ‚αž›αž™αžΎαž„αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž”αž“αŸ’αžαž·αž…αž€αŸ’αžšαŸ„αž™αž˜αž€αŸ”
αžœαžΆαž€αŸαž˜αžΆαž“αž—αžΆαž–αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰αž”αž“αŸ’αžαŸ‚αž˜αž•αž„αžŠαŸ‚αžšαŸ– αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆ pub-sub αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž€αŸ†αžŽαžαŸ‹αž–αŸαž›αž—αžΆαžšαž€αž·αž…αŸ’αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžαŸ’αžšαžΌαžœαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ’αž“αž»αž„αž…αŸ’αž”αžΆαž”αŸ‹αž…αž˜αŸ’αž›αž„αžαŸ‚αž˜αž½αž™αŸ” αž‡αžΆβ€‹αžαŸ’αž˜αžΈβ€‹αž˜αŸ’αžαž„β€‹αž‘αŸ€αž αžŸαŸαžœαžΆβ€‹αž•αŸ’αž‰αžΎβ€‹αžŸαžΆαžšβ€‹αž‡αžΆβ€‹αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“β€‹αž˜αž½αž™β€‹αžαŸ’αžšαžΌαžœβ€‹αžαŸ‚β€‹αž•αŸ’αžαž›αŸ‹β€‹αž“αžΌαžœβ€‹αž™αž“αŸ’αžαž€αžΆαžšβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸβ€‹αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αŸ”

αž€αžΆαžšαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™ αž€αžΆαžšαž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαž˜αŸαžŠαžΉαž€αž“αžΆαŸ†αž‚αžΊαž‡αžΆαž“αžΈαžαž·αžœαž·αž’αžΈαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ‚αž„αžαžΆαŸ†αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ‚αž˜αž½αž™αžŠαŸ‚αž›αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž€αŸ’αž“αž»αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž€αžΆαž›αžœαž·αž—αžΆαž‚αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αž“αŸƒαž”αž“αŸ’αž‘αž»αž€αž˜αž½αž™αž…αŸ†αž“αž½αž“αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž˜αž·αž“αž„αžΆαž™αž“αžΉαž„αž’αŸ’αžœαžΎαž˜αž‡αŸ’αžˆαž·αž˜αž“αž·αž™αž˜ αž€αŸ’αž”αž½αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž›αžΎαž€αžΆαžšαž™αž›αŸ‹αžŸαŸ’αžšαž” αž“αž·αž„αžŸαž€αž› αžŠαžΌαž…αž‡αžΆ paxos ឬ raft αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαŸ”
αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž‚αžΊαž‡αžΆαžˆαŸ’αž˜αž½αž‰αž€αžŽαŸ’αžαžΆαž› αž“αž·αž„αž‡αžΆαž’αžΆαžαž»αž€αžŽαŸ’αžαžΆαž› αžœαžΆαžŠαžΉαž„αž’αŸ†αž–αžΈαž’αŸ’αž“αž€αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ - αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αž”αŸαž€αŸ’αžαž‡αž“αŸ” αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž’αžΆαž…αžαŸ‚αž„αžαžΆαŸ†αž„αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αžŠαŸ„αž™αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αž·αž„αž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αž‘αž½αž›αž”αžΆαž“αžŸαžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’ #'$leader'{exchange = ?EXCHANGE, pid = LeaderPid, servers = Servers}. αž”αŸ’αžšαžŸαž·αž“αž”αžΎ LeaderPid αžŸαŸ’αžšαž”αž–αŸαž›αž‡αžΆαž˜αž½αž™ pid αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ‚αž„αžαžΆαŸ†αž„αž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ† αž“αž·αž„αž”αž‰αŸ’αž‡αžΈ Servers αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αžαŸ’αž“αžΆαŸ†αž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžšαž”αžŸαŸ‹αžœαžΆαŸ”
αž“αŸ…αž–αŸαž›αž˜αž½αž™αžαŸ’αž˜αžΈαž›αŸαž…αž‘αžΎαž„ αž αžΎαž™αžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαžΆαž…αŸ‹ αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‘αž‘αž½αž›αž”αžΆαž“ #'$slave_up'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} ΠΈ #'$slave_down'{exchange = ?EXCHANGE, pid = SlavePid, options = SlaveOpts} αžšαŸ€αž„αž‚αŸ’αž“αžΆαŸ”

αžœαž·αž’αžΈαž“αŸαŸ‡ αžŸαž˜αžΆαžŸαž’αžΆαžαž»αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαžΉαž„αž–αžΈαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž αžΎαž™αž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αžΆαž“αžΆαžαžΆαž“αžΉαž„αž˜αžΆαž“αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αž˜αŸ’αž“αžΆαž€αŸ‹αž“αŸ…αž–αŸαž›αžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αŸ”

αž’αŸ’αž“αž€αžŸαŸ†αžšαž”αžŸαŸ†αžšαž½αž›

αžŠαžΎαž˜αŸ’αž”αžΈαž’αž“αž»αžœαžαŸ’αžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αž˜αž»αž‚αžŸαŸ’αž˜αžΆαž‰ αž€αŸαžŠαžΌαž…αž‡αžΆαž”αž‰αŸ’αž αžΆαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αžšαžΆαž”αŸ‹ αžœαžΆαž„αžΆαž™αžŸαŸ’αžšαž½αž›αž”αŸ’αžšαžΎαž’αž“αŸ’αžαžšαž€αžΆαžšαžΈαŸ”
αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž›αŸαžαž€αžΌαžŠαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™ αž§αž‘αžΆαž αžšαžŽαŸ αž”αž‰αŸ’αž αžΆαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœ αž¬αž€αžΆαžšαž…αžΌαž›αžŸαžΆαžš αž’αŸ’αž“αž€αž’αžΆαž…αž”αžΎαž€αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈ αž˜αž»αž“αž–αŸαž›αžŸαŸαžœαžΆ αžŠαŸ‚αž›αž“αžΉαž„αž”αŸ†αž–αŸαž‰αž€αžΆαžšαž„αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž§αž‘αžΆαž αžšαžŽαŸαž”αž»αžšαžΆαžŽαž“αŸƒαž€αžΆαžšαž”αž„αŸ’αž€αžΎαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž– pub-sub αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž…αŸ‚αž€αž…αžΆαž™αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ’αž“αžΌαž›αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αž„αŸ’αž€αžΎαžαž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž’αžΆαž”αŸ‹αžŠαŸαž αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαž˜αŸ’αž›αŸƒαž“αŸ…αž€αŸ’αž“αž»αž„αž‘αžΈαž•αŸ’αžŸαžΆαžš αž“αž·αž„αžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž…αžΌαž›αž”αŸ’αžšαžΎ - N servers αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹ websocket API αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ web clientsαŸ”
αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αžŸαž˜αŸ’αžšαŸαž…αž…αž·αžαŸ’αžαž”αž“αŸ’αž αž“αŸ„αŸ‡αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž’αžαž·αžαž·αž‡αž“αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

  • αž’αžαž·αžαž·αž‡αž“αž”αž„αŸ’αž€αžΎαžαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž‡αžΆαž˜αž½αž™αžœαŸαž‘αž·αž€αžΆαŸ” αž“αŸ…αž•αŸ’αž“αŸ‚αž€αž˜αŸ’αžαžΆαž„αž“αŸƒαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž”αž·αž‘αž…αžšαžΆαž…αžšαžŽαŸ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŠαžΎαž˜αŸ’αž”αžΈαž”αž˜αŸ’αžšαžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αž“αŸαŸ‡αŸ”
  • αž“αŸ…αž€αŸ’αž“αž»αž„αž”αžšαž·αž”αž‘αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž€αžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαž αž“αž·αž„αž€αžΆαžšαž‡αžΆαžœαžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αž—αžΆαž–αž€αžΎαžαž‘αžΎαž„αŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž αŸ…αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžšαž‡αžΆαžœαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž’αžΆαž“αž”αž‘αŸ”
  • αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž˜αž½αž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž“αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž› αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΌαž“αž‘αŸ…αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αŸ”

αžŸαžΌαž˜αžŸαŸ’αžšαž˜αŸƒαžαžΆαž™αžΎαž„αž˜αžΆαž“αž’αŸ’αž“αž€αž‡αžΆαžœ 50000 αž“αžΆαž€αŸ‹αž…αŸ†αž–αŸ„αŸ‡αž”αŸ’αžšαž’αžΆαž“αž”αž‘ "αž–αŸαžαŸŒαž˜αžΆαž“" αŸ” αž’αŸ’αž“αž€αž‡αžΆαžœαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αž˜αžΎαŸ—αž‚αŸ’αž“αžΆαž“αŸ…αž‘αžΌαž‘αžΆαŸ†αž„ 5 αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαŸ” αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αž€αžΆαžšαž’αžΆαž”αŸ‹αžŠαŸαžαž“αžΈαž˜αž½αž™αŸ—αžŠαŸ‚αž›αž˜αž€αžŠαž›αŸ‹αž…αŸ†αžŽαž»αž…αž”αŸ’αžαžΌαžšαž”αŸ’αžšαžΆαž€αŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αž˜αŸ’αž›αž„ 50000 αžŠαž„: 10000 αžŠαž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž“αžΈαž˜αž½αž™αŸ— αž™αŸ„αž„αž‘αŸ…αžαžΆαž˜αž…αŸ†αž“αž½αž“αž’αžαž·αžαž·αž‡αž“αž“αŸ…αž›αžΎαžœαžΆαŸ” αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαžŠαŸαž˜αžΆαž“αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–αž‘αŸαž˜αŸ‚αž“αž‘αŸ?
αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž²αŸ’αž™αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„ αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αžΉαž„αž…αŸ†αžŽαž»αž…αž”αŸ’αžαžΌαžšαž”αŸ’αžšαžΆαž€αŸ‹αŸ” αž’αŸ’αž“αž€αž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžŸαž€αž›αžαŸ’αžšαžΌαžœαžαŸ‚αž’αžΆαž…αžαŸ’αžšαž‘αž”αŸ‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αž·αžαž”αŸ†αž•αž»αžαžαžΆαž˜αžˆαŸ’αž˜αŸ„αŸ‡ αž“αŸαŸ‡αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αŸ”

αžŸαžΌαž˜αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž“αŸαŸ‡αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŸαŸ’αžšαž‘αžΆαž”αŸ‹αž…αžΌαž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš αž αžΎαž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž™αžΎαž„αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎ websocket api αž“αžΉαž„αž‡αžΆαžœαžœαžΆ αž αžΎαž™αž˜αž·αž“αž˜αŸ‚αž“αž‘αŸ…αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš pub-sub αžŠαžΎαž˜αž“αŸ…αž€αŸ’αž“αž»αž„αžαžΊαžŽαŸ‚αž›αž“αŸ„αŸ‡αž‘αŸαŸ” αž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž‡αžΆαžœαžŸαŸ’αž“αžΌαž›αžαŸ‚αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž“αŸƒαž€αžΆαžšαž‡αžΆαžœαžαŸ‚αž˜αž½αž™αž‚αžαŸ‹ αž“αž·αž„αž…αž˜αŸ’αž›αž„αžŸαžΆαžšαž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αž’αžαž·αžαž·αž‡αž“αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αžšαž”αžŸαŸ‹αžœαžΆαŸ”
αž‡αžΆαž›αž‘αŸ’αž’αž•αž› αžŸαžΆαžšαž…αŸ†αž“αž½αž“ 5 αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαžšαžœαžΆαž„αžαžΊαžŽαŸ‚αž› αž“αž·αž„αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ 50000αŸ”

αž€αžΆαžšαžαŸ†αžšαž„αŸ‹αž‘αž·αžŸ αž“αž·αž„αžαž»αž›αŸ’αž™αž—αžΆαž–

Req-Resp

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“ αž˜αžΆαž“αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαž…αŸ‚αž€αž…αžΆαž™αžŸαŸ†αžŽαžΎαž…αŸ†αž“αž½αž“ 7αŸ–

  • default. αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  • round-robin. αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž…αžΌαž› αž“αž·αž„αž…αŸ‚αž€αž…αžΆαž™αž‡αžΆαžšαž„αŸ’αžœαž„αŸ‹αžšαžœαžΆαž„αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαŸ”
  • consensus. αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžŠαŸ‚αž›αž”αž˜αŸ’αžšαžΎαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ‚αž„αž…αŸ‚αž€αž‘αŸ…αž‡αžΆαž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αž“αž·αž„αž‘αžΆαžŸαž€αžšαŸ” αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ†αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αŸ”
  • consensus & round-robin. αž€αŸ’αžšαž»αž˜αž“αŸαŸ‡αž˜αžΆαž“αž’αŸ’αž“αž€αžŠαžΉαž€αž“αžΆαŸ† αž”αŸ‰αž»αž“αŸ’αžαŸ‚αžŸαŸ†αžŽαžΎαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αžŸαž˜αžΆαž‡αž·αž€αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”
  • sticky. αž˜αž»αžαž„αžΆαžš hash αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αžŽαž“αžΆ αž“αž·αž„β€‹αž•αŸ’αžαž›αŸ‹β€‹αž±αŸ’αž™β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αŸ” αžŸαŸ†αžŽαžΎαž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž αžαŸ’αžαž›αŸαžαžΆαž“αŸαŸ‡αž‘αŸ…αž€αžΆαž“αŸ‹αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”
  • sticky-fun. αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž˜αž»αžαž„αžΆαžšαž‚αžŽαž“αžΆαžŸαž‰αŸ’αž‰αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹ sticky αžαž»αž›αŸ’αž™αž—αžΆαž–αŸ”
  • fun. αžŸαŸ’αžšαžŠαŸ€αž„β€‹αž“αžΉαž„β€‹αž—αžΆαž–β€‹αžŸαž”αŸ’αž”αžΆαž™β€‹αžšαžΈαž€αžšαžΆαž™ αž˜αžΆαž“β€‹αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ€αžβ€‹αž’αžΆαž…β€‹αž”αŸ’αžŠαžΌαžšβ€‹αž‘αž·αžŸ αž”αžŠαž·αžŸαŸαž’ αž¬β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžœαžΆβ€‹αž‡αžΆβ€‹αž˜αž»αž“β€‹αž”αžΆαž“αŸ”

αž™αž»αž‘αŸ’αž’αžŸαžΆαžŸαŸ’αžαŸ’αžšαž…αŸ‚αž€αž…αžΆαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αŸ”

αž”αž“αŸ’αžαŸ‚αž˜αž–αžΈαž›αžΎαžαž»αž›αŸ’αž™αž—αžΆαž– αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžŠαžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€αž’αž„αŸ’αž‚αž—αžΆαž–αŸ” αžαŸ„αŸ‡αž˜αžΎαž›αž”αŸ’αžšαž—αŸαž‘αžŸαŸ’αž›αžΆαž€αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ–

  • αžŸαŸ’αž›αžΆαž€αž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž™αž›αŸ‹αžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžαž—αŸ’αž‡αžΆαž”αŸ‹αžŠαŸ‚αž›αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαž”αžΆαž“αž˜αž€αŸ” αž”αŸ’αžšαžΎαž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹αž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαž—αŸ’αž‡αžΆαž”αŸ‹αž‘αŸ…αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαžΌαž…αž‚αŸ’αž“αžΆ αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αŸ’αžšαžΆαž”αŸ‹αž…αž»αž…αž•αŸ’αž›αžΌαžœαž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαŸ”
  • αžŸαŸ’αž›αžΆαž€αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž§αž”αž€αžšαžŽαŸαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αŸ…αž‡αžΆαž€αŸ’αžšαž»αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž½αž™ αž“αž·αž„αž–αž„αŸ’αžšαžΈαž€αžŸαž˜αžαŸ’αžαž—αžΆαž–αž•αŸ’αž›αžΌαžœ αž“αž·αž„αžαž»αž›αŸ’αž™αž—αžΆαž–αŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž›αŸ†αž“αžΆαŸ† req-resp αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž•αŸ’αž›αžΌαžœαž‚αžΊαž›αžΈαž“αŸαž’αŸŠαŸ‚αžšαŸ” αž™αžΎαž„αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαž‘αŸ…αž…αŸ†αžŽαž»αž…αž”αŸ’αžαžΌαžšαž”αŸ’αžšαžΆαž€αŸ‹ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αžœαžΆαž”αž‰αŸ’αž‡αžΌαž“αžœαžΆαž‘αŸ…αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αž’αŸ’αž“αž€αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž‘αŸ…αž‡αžΆαž€αŸ’αžšαž»αž˜αž‘αžΌαž‡αžΈαžαž› αž“αŸ„αŸ‡αž€αžΆαžšαž”αŸ†αž”αŸ‚αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžŠαŸ„αž™αž”αŸ’αžšαžΎαžŸαŸ’αž›αžΆαž€αŸ” αž“αŸ…αž–αŸαž›αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžŸαŸ’αž›αžΆαž€ αžŸαŸ†αžŽαžΎαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αž€αŸ’αžšαž»αž˜αž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™αž“αŸƒαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαŸ”
  • αžŸαŸ’αž“αžΎαžŸαž»αŸ†αžŸαŸ’αž›αžΆαž€αŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž”αŸ‚αž„αž…αŸ‚αž€αžšαžœαžΆαž„αž…αž˜αŸ’αž›αžΎαž™αŸ” αžŠαŸ„αž™αžŸαžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž”αžŸαŸ‹αž™αžΎαž„αž˜αžΆαž“αž—αžΆαž–αž’αžŸαž˜αž€αžΆαž› αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž’αžΆαž…αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ RequestTag αž“αŸ…αž–αŸαž›αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎαŸ” αž–αžΈαžœαžΆαž™αžΎαž„αž“αžΉαž„αž’αžΆαž…αž™αž›αŸ‹αž–αžΈαž…αž˜αŸ’αž›αžΎαž™αž…αŸ†αž–αŸ„αŸ‡αžŸαŸ†αžŽαžΎαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž”αžΆαž“αž˜αž€αžšαž€αž™αžΎαž„αŸ”

Pub-sub

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ pub-sub αž’αŸ’αžœαžΈαž‚αŸ’αžšαž”αŸ‹αž™αŸ‰αžΆαž„αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αž‡αžΆαž„αž”αž“αŸ’αžαž·αž…αŸ” αž™αžΎαž„β€‹αž˜αžΆαž“β€‹αž…αŸ†αžŽαž»αž…β€‹αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšβ€‹αž˜αž½αž™β€‹αžŠαŸ‚αž›β€‹αžŸαžΆαžšβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž‚αŸβ€‹αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αŸ” αž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αŸ‚αž€αž…αžΆαž™αžŸαžΆαžšαž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž’αžαž·αžαž·αž‡αž“αžŠαŸ‚αž›αž”αžΆαž“αž‡αžΆαžœ routing keys αžŠαŸ‚αž›αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž€αžΆαžš (αž™αžΎαž„αž’αžΆαž…αž“αž·αž™αžΆαž™αž”αžΆαž“αžαžΆαžœαžΆαžŸαŸ’αžšαžŠαŸ€αž„αž‘αŸ…αž“αžΉαž„αž”αŸ’αžšαž’αžΆαž“αž”αž‘)αŸ”

αž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“ αž“αž·αž„αž—αžΆαž–αž’αžαŸ‹αž’αŸ’αž˜αžαŸ‹αž“αŸƒαž€αŸ†αž αž»αžŸ

αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‚αžΊαž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž€αž˜αŸ’αžšαž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸƒαžŸαŸ’αžšαž‘αžΆαž”αŸ‹ αž“αž·αž„αž’αžΆαžαž»αž•αŸ’αžŸαŸ†αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ–

  • αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜β€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“β€‹αžŠαŸ„αž™β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αžαŸ’αž“αžΆαŸ†αž„β€‹αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž…αž„αŸ’αž€αŸ„αž˜β€‹αž‡αžΆαž˜αž½αž™β€‹αž’αŸ’αž“αž€β€‹αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™β€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜β€‹αž“αŸαŸ‡αŸ” αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž‚αŸ„αž›αž€αžΆαžšαžŽαŸαžŸαž˜αžαž»αž›αŸ’αž™αžŠαŸαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžšαŸ”
  • αžŸαŸαžœαžΆαž•αŸ’αž‰αžΎαžŸαžΆαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αžœαžΆαž•αŸ’αž‘αžΆαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž‡αžΆαž‘αžΌαž‘αŸ…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžŠαŸ„αž™αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž…αŸ†αžŽαž»αž…αž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€αž‡αžΆαž–αž·αžŸαŸαžŸαž‘αŸ…αž€αžΆαž“αŸ‹αžαŸ’αž“αžΆαŸ†αž„αž…αž„αŸ’αž€αŸ„αž˜αžŠαžΆαž…αŸ‹αžŠαŸ„αž™αž‘αŸ‚αž€ αž¬αžŠαŸ„αž™αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαžΌαž€αžŸαŸŠαžΈαž‘αŸ…αžαŸ†αž”αž“αŸ‹αž•αŸ’αž‘αž»αž€αž‡αžΆαž–αž·αžŸαŸαžŸαž“αŸƒαž…αž„αŸ’αž€αŸ„αž˜αŸ”
  • αž›αž‘αŸ’αž’αž—αžΆαž–αž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‘αžΆαŸ†αž„αž˜αžΌαž›αž‡αžΆαž›αž€αŸ’αžαžŽαŸˆαž’αžΆαžŸαŸ’αžšαŸαž™αž‘αŸ…αž›αžΎαž—αžΆαž–αž”αžαŸ‹αž”αŸ‚αž“αž“αŸƒαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜ αž“αž·αž„αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž“αžΌαžœαž…αž„αŸ’αž€αŸ„αž˜αž“αžΈαž˜αž½αž™αŸ—αž‘αŸ…αž‡αžΆαž’αžΆαžαž»αž‘αžΌαž‡αžΈαžαž›αž‘αžΌαž‘αŸ…αž˜αž½αž™αŸ”

αž—αžΆαž–αž‡αŸ„αž‚αž‡αŸαž™αž“αŸƒαž‚αž˜αŸ’αžšαŸ„αž„αž‡αžΆαžšαžΏαž™αŸ—αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž›αŸ’αž”αžΏαž“αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αŸ” αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αžšαž”αžŸαŸ‹αžœαžΆαžšαžΈαž€αž…αž˜αŸ’αžšαžΎαž“αžšαž½αž˜αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž‘αŸ„αŸ‡αž”αžΈαž‡αžΆαž™αžΎαž„αžαŸ’αžœαŸ‡αž…αž„αŸ’αž€αŸ„αž˜αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“ 50-60 αž€αŸαžŠαŸ„αž™ αž™αžΎαž„αž’αžΆαž…αž„αžΆαž€αž‘αŸ…αžšαž€αžŸαž αž–αŸαž“αŸ’αž’αŸ” αž‡αžΆαž’αž€αž»αžŸαž› αž”αŸ’αžšαž’αžΆαž“αž”αž‘αž“αŸƒαžŸαž αž–αŸαž“αŸ’αž’αž‚αžΊαž αž½αžŸαž–αžΈαžœαž·αžŸαžΆαž›αž—αžΆαž–αž“αŸƒαž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”

αž€αžΆαžšαž€αž€αŸ‹αž‘αž»αž€

αž“αŸ…αž–αŸαž›αžœαž·αž—αžΆαž‚αžŸαž˜αžαž»αž›αŸ’αž™αž”αž“αŸ’αž‘αž»αž€ αž™αžΎαž„αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαžšαž½αž…αž αžΎαž™αž’αŸ†αž–αžΈαž—αžΆαž–αž˜αž·αž“αžŠαžΌαž…αž‚αŸ’αž“αžΆαž“αŸƒαž§αž”αž€αžšαžŽαŸαž”αž‰αŸ’αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž€αŸαžαŸ’αžšαžΌαžœαžαŸ‚αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž•αž„αžŠαŸ‚αžšαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž˜αžΆαž“αžαŸ’αž“αžΆαŸ†αž„ αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž‚αžΆαŸ†αž„ αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž‚αž½αžšαžαŸ‚αž„αžΎαž”αž‘αžΎαž„αžœαž·αž‰αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αž αžΎαž™αž€αŸ’αž“αž»αž„αžšαž™αŸˆαž–αŸαž›αžŠαŸαžαŸ’αž›αžΈαž”αŸ†αž•αž»αžαŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ† αžαŸ’αž‰αž»αŸ†αž”αŸ’αžšαžΎαžαŸ’αž“αžΆαŸ†αž„αž”αž“αŸ’αžαŸ‚αž˜αžŠαŸ‚αž›αž™αž€αž”αž“αŸ’αž‘αž»αž€αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž˜αžΆαž“αž€αžΆαžšαž’αŸ’αž›αžΆαž€αŸ‹αž…αž»αŸ‡αŸ” Erlang αž˜αžΆαž“αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžšαž”αŸ€αž”αž…αŸ‚αž€αž…αžΆαž™αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ OTP αŸ” αžšαž”αŸ€αž”αž…αŸ‚αž€αž…αžΆαž™αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž„αžΎαž”αž‘αžΎαž„αžœαž·αž‰αž€αŸ’αž“αž»αž„αž€αžšαžŽαžΈαž”αžšαžΆαž‡αŸαž™αžŠαŸ„αž™αž€αžΆαžšαž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αž“αŸ…αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž–αžΈαž˜αž»αž“αž˜αž½αž™αž‘αŸ€αžαŸ” αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸαŸ‡αž˜αžΆαž“αžαž˜αŸ’αž›αžΆαž—αžΆαž– αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž”αžšαžΆαž‡αŸαž™ αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΉαž„αž•αŸ’αž›αžΆαžŸαŸ‹αž‘αžΈαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž‘αŸ…αžαŸ’αž“αžΆαŸ†αž„αžŠαŸ‚αž›αž”αžšαžΆαž‡αŸαž™αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž’αŸ†αž–αžΈαž˜αž»αžαž„αžΆαžšαž“αŸαŸ‡αŸ” αž“αŸ…αž‘αžΈαž“αŸαŸ‡.

αž•αž›αž·αžαž—αžΆαž–

αžŸαžΌαž˜αž–αŸ’αž™αžΆαž™αžΆαž˜αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžšαž”αžŸαŸ‹ rabbitmq αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžšαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”
αžαŸ’αž‰αž»αŸ†β€‹αž”αžΆαž“β€‹αžšαž€β€‹αžƒαžΎαž‰ αž›αž‘αŸ’αž’αž•αž›αž•αŸ’αž›αžΌαžœαž€αžΆαžš αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž rabbitmq αž–αžΈαž€αŸ’αžšαž»αž˜ openstack αŸ”

αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžαžΆαžαžŽαŸ’αžŒ 6.14.1.2.1.2.2 αŸ” αž―αž€αžŸαžΆαžšαžŠαžΎαž˜αž”αž„αŸ’αž αžΆαž‰αž–αžΈαž›αž‘αŸ’αž’αž•αž›αž“αŸƒ RPC CASTαŸ–
αž€αžΆαžšαž€αžŸαžΆαž„αž”αŸ’αž›αž»αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž…αŸ‚αž€αž…αžΆαž™αŸ” αž€αžΆαžšαž”αŸ‰αžΆαž“αŸ‹αžŸαŸ’αž˜αžΆαž“αž‘αžΈαž–αžΈαžš

αž™αžΎαž„αž“αžΉαž„αž˜αž·αž“αž’αŸ’αžœαžΎαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž›αžΎαžαžΊαžŽαŸ‚αž› OS ឬ erlang VM αž‡αžΆαž˜αž»αž“αž‘αŸαŸ” αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ–

  • erl opts: +A1 +sbtu αŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαŸ†αž„ erlang αžαŸ‚αž˜αž½αž™αž‚αžΊαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžŠαŸ‚αž›αž˜αžΆαž“ i7 αž…αžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž…αž›αŸαžαŸ”
  • αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž…αž„αŸ’αž€αŸ„αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž˜αžΆαž“αž”αžŽαŸ’αžαžΆαž‰ 10G αŸ”
  • αž€αžΌαžŠαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž’αž»αž„ docker αŸ” αž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž€αŸ’αž“αž»αž„αžšαž”αŸ€αž” NAT αŸ”

αž›αŸαžαž€αžΌαžŠαžŸαžΆαž€αž›αŸ’αž”αž„αŸ–

req_resp_bench(_) ->
  W = perftest:comprehensive(10000,
    fun() ->
      messaging:request(?EXCHANGE, default, ping, self()),
      receive
        #'$msg'{message = pong} -> ok
      after 5000 ->
        throw(timeout)
      end
    end
  ),
  true = lists:any(fun(E) -> E >= 30000 end, W),
  ok.

αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌ αŸ’αŸ– αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž€αž»αŸ†αž–αŸ’αž™αžΌαž‘αŸαžšαž™αž½αžšαžŠαŸƒαžŠαŸ‚αž›αž˜αžΆαž“αž€αŸ†αžŽαŸ‚αž…αž›αŸαž i7 αž…αžΆαžŸαŸ‹αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαžΆαžš αž“αž·αž„αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž›αžΎαžαŸ’αž“αžΆαŸ†αž„αž˜αž½αž™αž€αŸ’αž“αž»αž„αž’αž»αž„ Docker αž˜αž½αž™αŸ–

Sequential 10000 cycles in ~0 seconds (26987 cycles/s)
Sequential 20000 cycles in ~1 seconds (26915 cycles/s)
Sequential 100000 cycles in ~4 seconds (26957 cycles/s)
Parallel 2 100000 cycles in ~2 seconds (44240 cycles/s)
Parallel 4 100000 cycles in ~2 seconds (53459 cycles/s)
Parallel 10 100000 cycles in ~2 seconds (52283 cycles/s)
Parallel 100 100000 cycles in ~3 seconds (49317 cycles/s)

αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌ αŸ‘αŸ– αžαŸ’αž“αžΆαŸ†αž„ 3 αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž•αŸ’αžŸαŸαž„αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αžšαŸ„αž˜ docker (NAT)αŸ”

Sequential 10000 cycles in ~1 seconds (8684 cycles/s)
Sequential 20000 cycles in ~2 seconds (8424 cycles/s)
Sequential 100000 cycles in ~12 seconds (8655 cycles/s)
Parallel 2 100000 cycles in ~7 seconds (15160 cycles/s)
Parallel 4 100000 cycles in ~5 seconds (19133 cycles/s)
Parallel 10 100000 cycles in ~4 seconds (24399 cycles/s)
Parallel 100 100000 cycles in ~3 seconds (34517 cycles/s)

αž€αŸ’αž“αž»αž„αž‚αŸ’αžšαž”αŸ‹αž€αžšαžŽαžΈαž‘αžΆαŸ†αž„αž’αžŸαŸ‹ αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ CPU αž˜αž·αž“αž›αžΎαžŸαž–αžΈ 250%

αž›αž‘αŸ’αž’αž•αž›

αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžœαžŠαŸ’αžŠαž“αŸαŸ‡αž˜αž·αž“αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž‡αžΆαž€αžΆαžšαž…αŸ„αž›αž‚αŸ†αž“αž·αžαž‘αŸ αž αžΎαž™αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž˜αžΆαž“αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž™αŸ‰αžΆαž„αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž…αŸ†αž–αŸ„αŸ‡αž’αŸ’αž“αž€αžŸαŸ’αžšαžΆαžœαž‡αŸ’αžšαžΆαžœαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž…αŸ‚αž€αž…αžΆαž™ αž“αž·αž„αž’αŸ’αž“αž€αž’αž“αž»αžœαžαŸ’αžαžŠαŸ‚αž›αž“αŸ…αžŠαžΎαž˜αžŠαŸ†αž”αžΌαž„αž“αŸƒαž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž…αŸ‚αž€αž…αžΆαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž’αžΆαž‡αžΈαžœαž€αž˜αŸ’αž˜αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž αžΎαž™αž€αŸ†αž–αž»αž„αžŸαž˜αŸ’αž›αžΉαž„αž˜αžΎαž› Erlang/Elixir αžŠαŸ„αž™αž…αŸ†αžŽαžΆαž”αŸ‹αž’αžΆαžšαž˜αŸ’αž˜αžŽαŸαŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž˜αžΆαž“αž€αžΆαžšαžŸαž„αŸ’αžŸαŸαž™αžαžΆαžαžΎαžœαžΆαž˜αžΆαž“αžαž˜αŸ’αž›αŸƒ ...

αžšαžΌαž”αžαž @chuttersnap

αž˜αžΆαž“αžαŸ‚αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡αžŠαŸ‚αž›αž’αžΆαž…αž…αžΌαž›αžšαž½αž˜αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαŸ’αž‘αž„αŸ‹αž˜αžαž·αž“αŸαŸ‡αŸ” αž…αžΌαž›αžŸαžΌαž˜αŸ”

αžαžΎαž”αŸ’αžšαž’αžΆαž“αž”αž‘αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž‚αž½αžšαžšαŸ€αž”αžšαžΆαž”αŸ‹αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαžŸαŸŠαŸαžšαžΈ VTrade Experiment?

  • αž‘αŸ’αžšαžΉαžŸαŸ’αžαžΈαŸ– αž‘αžΈαž•αŸ’αžŸαžΆαžš αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž‘αž·αž‰ αž“αž·αž„αž–αŸαž›αžœαŸαž›αžΆαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ– DAY, GTD, GTC, IOC, FOK, MOO, MOC, LOO, LOC

  • αžŸαŸ€αžœαž—αŸ…αž”αž‰αŸ’αž‡αžΆαŸ” αž‘αŸ’αžšαžΉαžŸαŸ’αžŠαžΈ αž“αž·αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸ€αžœαž—αŸ…αžŠαŸ„αž™αžŠαžΆαž€αŸ‹αž‡αžΆαž€αŸ’αžšαž»αž˜

  • αž€αžΆαžšαž˜αžΎαž›αžƒαžΎαž‰αž“αŸƒαž€αžΆαžšαž‡αž½αž‰αžŠαžΌαžš: αž’αžΈαž€, αžšαž”αžΆαžš, αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αŸ” αžšαž”αŸ€αž”αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž“αž·αž„αžšαž”αŸ€αž”αž€αžΆαžœαž”αž·αž‘

  • αž€αžΆαžšαž·αž™αžΆαž›αŸαž™αžαžΆαž„αž€αŸ’αžšαŸ„αž™αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαž•αŸ‚αž“αž€αžΆαžš αž“αž·αž„αž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ” αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αž»αž‚αŸ’αž‚αž›αž·αž€ αž“αž·αž„αž€αžΆαžšαžŸαŸŠαžΎαž”αž’αž„αŸ’αž€αŸαžαž§αž”αŸ’αž”αžαŸ’αžαž·αž αŸαžαž»

  • API αž…αžΌαžšαž™αžΎαž„αžŸαŸ’αžœαŸ‚αž„αž™αž›αŸ‹αžαžΆαžαžΎαž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž’αŸ’αžœαžΈαžαŸ’αž›αŸ‡αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš αž“αž·αž„αžšαž”αŸ€αž”αž’αž“αž»αžœαžαŸ’αžαž–αž½αž€αžœαžΆ

  • αž€αžΆαžšαž•αŸ’αž‘αž»αž€αž–αŸαžαŸŒαž˜αžΆαž“αŸ– PostgreSQL, Timescale, Tarantool αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž–αžΆαžŽαž·αž‡αŸ’αž‡αž€αž˜αŸ’αž˜

  • αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‡αž½αž‰αžŠαžΌαžš

  • αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αžαž·αž™αŸ„αž”αž›αŸ‹

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ 6 αž“αžΆαž€αŸ‹αž”αžΆαž“αž”αŸ„αŸ‡αž†αŸ’αž“αŸ„αžαŸ” αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ ៦៣ αž“αžΆαž€αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹αŸ”

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹