ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ืื™ืŸ ื“ืขืจ ืคืึทืจื’ืึทื ื’ืขื ื”ื™ื™ื˜ ืึทืจื˜ื™ืงืœ ืžื™ืจ ื™ื’ื–ืึทืžืึทื ื“ ื“ื™ ื˜ืขืึธืจืขื˜ื™ืฉ ื™ืกื•ื“ื•ืช ืคื•ืŸ ืจื™ืึทืงื˜ื™ื•ื• ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืขืก ืื™ื– ืฆื™ื™ื˜ ืฆื• ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืึทื˜ืŸ ืคืœืึธื•ื–, ื•ื•ืขื’ืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืจื™ืึทืงื˜ื™ื•ื• ืขืจืœืึทื ื’ / ืขืœื™ืงืกื™ืจ ืกื™ืกื˜ืขืžืขืŸ ืื•ืŸ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืคึผืึทื˜ืขืจื ื– ืื™ืŸ ื–ื™ื™:

  • ื‘ืขื˜ืŸ-ืขื ื˜ืคืขืจ
  • ื‘ืขื˜ืŸ-ื˜ืฉื•ื ืงืขื“ ืขื ื˜ืคืขืจ
  • ืขื ื˜ืคืขืจ ืžื™ื˜ ื‘ืงืฉื”
  • ืึทืจื•ื™ืกื’ืขื‘ืŸ-ืึทื‘ืึธื ื™ืจืŸ
  • ื™ื ื•ื•ืขืจื˜ื™ื“ ืึทืจื•ื™ืกื’ืขื‘ืŸ-ืึทื‘ืึธื ื™ืจืŸ
  • ืึทืจื‘ืขื˜ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’

SOA, MSA ืื•ืŸ ืžืขืกื™ื“ื–ืฉื™ื ื’

SOA, MSA ื–ืขื ืขืŸ ืกื™ืกื˜ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจื– ื•ื•ืึธืก ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ื›ึผืœืœื™ื ืคึฟืึทืจ ื‘ื ื™ืŸ ืกื™ืกื˜ืขืžืขืŸ, ื‘ืฉืขืช ืžืขืกื™ื“ื–ืฉื™ื ื’ ื’ื™ื˜ ืคึผืจื™ืžื™ื˜ื™ื•ื•ื– ืคึฟืึทืจ ื–ื™ื™ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ.

ืื™ืš ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื”ืขื›ืขืจืŸ ื“ืขื ืึธื“ืขืจ ืึทื– ืกื™ืกื˜ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ. ืื™ืš ื‘ื™ืŸ ืคึฟืึทืจ ื ื™ืฆืŸ ื“ื™ ืžืขืจืกื˜ ืขืคืขืงื˜ื™ื•ื• ืื•ืŸ ื ื•ืฆื™ืง ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ื’ืขืฉืขืคื˜. ื•ื•ืขืœื›ืขืจ ืคึผืึทืจืึทื“ื™ื’ื ืžื™ืจ ืงืœื™ื™ึทื‘ืŸ, ืขืก ืื™ื– ื‘ืขืกืขืจ ืฆื• ืฉืึทืคึฟืŸ ืกื™ืกื˜ืขื ื‘ืœืึทืงืก ืžื™ื˜ ืึทืŸ ืื•ื™ื’ ืื•ื™ืฃ ื“ื™ ื™ื•ื ื™ืงืก-ื•ื•ืขื’: ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ืงืึทื ืขืงื˜ื™ื•ื•ื™ื˜ื™, ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื™ื—ื™ื“ ืขื ื˜ื™ื˜ื™ื–. ืึทืคึผื™ ืžืขื˜ื”ืึธื“ืก ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืžืขื’ืœืขืš ืึทืงืฉืึทื ื– ืžื™ื˜ ืขื ื˜ื™ื˜ื™ื–.

ืžืขืกื™ื“ื–ืฉื™ื ื’ ืื™ื–, ื•ื•ื™ ื“ืขืจ ื ืึธืžืขืŸ ืกืึทื’ื“ื–ืฉืขืก, ืึท ืึธื ื–ืึธื’ ืžืขืงืœืขืจ. ื“ืขืจ ื”ื•ื™ืคึผื˜ ืฆื™ืœ ืื™ื– ืฆื• ื‘ืึทืงื•ืžืขืŸ ืื•ืŸ ืฉื™ืงืŸ ืึทืจื˜ื™ืงืœืขืŸ. ืขืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื“ื™ ื™ื ื˜ืขืจืคื™ื™ืกื™ื– ืคึฟืึทืจ ืฉื™ืงื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข, ื“ื™ ืคืึธืจืžื™ืจื•ื ื’ ืคื•ืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ื˜ืฉืึทื ืึทืœื– ืคึฟืึทืจ ื˜ืจืึทื ืกืžื™ื˜ื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื, ืจื•ื˜ื™ื ื’ ืื•ืŸ ื‘ืึทืœืึทื ืกื™ื ื’, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืฉื•ืœื“ ื”ืึทื ื“ืœื™ื ื’ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื ืžื“ืจื’ื”.
ื“ื™ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืžื™ืจ ื–ืขื ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ืื™ื– ื ื™ืฉื˜ ื˜ืจื™ื™ื ื’ ืฆื• ืงืึธื ืงื•ืจื™ืจืŸ ืžื™ื˜ ืึธื“ืขืจ ืคืึทืจื‘ื™ื™ึทื˜ืŸ rabbitmq. ื–ื™ื™ึทืŸ ื”ื•ื™ืคึผื˜ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ:

  • ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’.
    ื•ื•ืขืงืกืœ ืคื•ื ืงื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืฉืืคืŸ ืื•ื™ืฃ ืึทืœืข ืงื ื•ื™ืœ ื ืึธื•ื“ื–, ื•ื•ื™ ื ืึธืขื ื˜ ื•ื•ื™ ืžืขื’ืœืขืš ืฆื• ื“ื™ ืงืึธื“ ื•ื•ืึธืก ื ื™ืฆื˜ ื–ื™ื™.
  • ืคึผืึทืฉื˜ืขืก.
    ืคืึธืงื•ืก ืื•ื™ืฃ ืžื™ื ืึทืžื™ื™ื–ื™ื ื’ ื‘ืึธื™ืœืขืจืคึผืœืึทื˜ืข ืงืึธื“ ืื•ืŸ ื™ื– ืคื•ืŸ ื ื•ืฆืŸ.
  • ื‘ืขืกืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’.
    ืžื™ืจ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื˜ืจื™ื™ื ื’ ืฆื• ืื™ื‘ืขืจื—ื–ืจืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคื•ืŸ rabbitmq, ืึธื‘ืขืจ ื”ื•ื™ื›ืคึผื•ื ืงื˜ ื‘ืœื•ื™ื– ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืฉื™ื›ื˜ืข, ื•ื•ืึธืก ืžื™ืจ ืคึผืึทืกื™ืง ืื™ืŸ ื“ื™ ืึธื˜ืคึผ ื•ื•ื™ ืคึผืฉื•ื˜ ื•ื•ื™ ืžืขื’ืœืขืš, ืžื™ื ืึทืžื™ื™ื–ื™ื ื’ ืงืึธืก.
  • ื‘ื™ื™ื’ื™ืงื™ื™ื˜.
    ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ืงืขื ืขืŸ ืคืึทืจื‘ื™ื ื“ืŸ ืคื™ืœืข ื•ื•ืขืงืกืœ ื˜ืขืžืคึผืœืึทื˜ืขืก.
  • ืจื™ื–ื™ืœื™ืึทื ืก ื“ื•ืจืš ืคึผืœืึทืŸ.
  • ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™.
    ืžืขืกื™ื“ื–ืฉื™ื ื’ ื•ื•ืืงืกื˜ ืžื™ื˜ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ื•ื•ื™ ื“ื™ ืžืึทืกืข ื™ื ืงืจื™ืกื™ื–, ืื™ืจ ืงืขื ืขืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ื•ื•ืขืงืกืœ ื•ื•ื™ื™ื–ื˜ ืฆื• ื™ื—ื™ื“ ืžืืฉื™ื ืขืŸ.

ื‘ืึทืžืขืจืงื•ื ื’. ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ืงืึธื“ ืึธืจื’ืึทื ื™ื–ืึทืฆื™ืข, ืžืขื˜ืึท-ืคึผืจืึทื“ื–ืฉืขืงืก ื–ืขื ืขืŸ ื’ืขื–ื•ื ื˜ ืคึผืึทืกื™ืง ืคึฟืึทืจ ืงืึธืžืคึผืœืขืงืก ืขืจืœืึทื ื’ / ืขืœื™ืงืกื™ืจ ืกื™ืกื˜ืขืžืขืŸ. ืึทืœืข ืคึผืจื•ื™ืขืงื˜ ืงืึธื“ ืื™ื– ืœื™ื’ืŸ ืื™ืŸ ืื™ื™ืŸ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ - ืึท ืฉื™ืจืขื ืคึผืจื•ื™ืขืงื˜. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืžื™ืงืจืึธ ืกืขืจื•ื•ื™ืกืขืก ื–ืขื ืขืŸ ืžืึทืงืกื™ืžืึทืœื™ ืืคื’ืขื–ื•ื ื“ืขืจื˜ ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืคึผืฉื•ื˜ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืขื ื˜ื™ื˜ื™. ืžื™ื˜ ื“ืขื ืฆื•ื’ืึทื ื’, ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ื˜ื™ื™ึทื ืขืŸ ื“ื™ ืึทืคึผื™ ืคื•ืŸ ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื, ืขืก ืื™ื– ื’ืจื™ื ื’ ืฆื• ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืขืก ืื™ื– ื‘ืึทืงื•ื•ืขื ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืคึผืึทืจืึทื˜ ืื•ืŸ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื˜ืขืกืฅ.

ื“ื™ ืกื™ืกื˜ืขื ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื™ื ื˜ืขืจืึทืงื˜ ื’ืœื™ื™ึทืš ืึธื“ืขืจ ื“ื•ืจืš ืึท ืžืขืงืœืขืจ. ืคึฟื•ืŸ ืึท ืžืขืกื™ื“ื–ืฉื™ื ื’ ืคึผืขืจืกืคึผืขืงื˜ื™ื•ื•, ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ื”ืื˜ ืขื˜ืœืขื›ืข ืœืขื‘ืŸ ืคื™ื™ื–ืึทื–:

  • ืกืขืจื•ื•ื™ืก ื™ื ื™ื˜ื™ืึทืœื™ื–ืึทื˜ื™ืึธืŸ.
    ืื™ืŸ ื“ืขื ื‘ื™ื ืข, ื“ืขืจ ืคึผืจืึธืฆืขืก ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ื“ื™ ื“ื™ื ืกื˜ ืื•ืŸ ื–ื™ื™ึทืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ื–ืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจื“ ืื•ืŸ ืœืึธื ื˜ืฉื˜.
  • ืฉืืคืŸ ืึท ื•ื•ืขืงืกืœ ืคื•ื ื˜.
    ื“ื™ ื“ื™ื ืกื˜ ืงืขื ืขืŸ ื ื•ืฆืŸ ืึท ืกื˜ืึทื˜ื™ืง ื•ื•ืขืงืกืœ ืคื•ื ื˜ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ื ืึธื“ืข ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืึธื“ืขืจ ืžืึทื›ืŸ ื•ื•ืขืงืกืœ ื•ื•ื™ื™ื–ื˜ ื“ื™ื ืึทืžื™ืงืึทืœืœื™.
  • ืกืขืจื•ื•ื™ืก ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข.
    ื›ึผื“ื™ ื“ื™ ืกืขืจื•ื•ื™ืก ื–ืึธืœ ื“ื™ื ืขืŸ ืจื™ืงื•ื•ืขืก, ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืจืขื’ื™ืกื˜ืจื™ืจื˜ ืื™ืŸ ื“ืขืจ ื•ื•ืขืงืกืœ ืคื•ื ื˜.
  • ื ืึธืจืžืึทืœ ืคืึทื ื’ืงืฉืึทื ื™ื ื’.
    ื“ื™ ื“ื™ื ืกื˜ ื˜ืจืื’ื˜ ื ื•ืฆื™ืง ืึทืจื‘ืขื˜.
  • ืฉืึทื˜ื“ืึทื•ืŸ.
    ืขืก ื–ืขื ืขืŸ 2 ื˜ื™ื™ืคึผืก ืคื•ืŸ ืฉืึทื˜ื“ืึทื•ืŸ ืžืขื’ืœืขืš: ื ืึธืจืžืึทืœ ืื•ืŸ ื ื•ื™ื˜ืคืึทืœ. ื‘ืขืฉืึทืก ื ืึธืจืžืึทืœ ืึธืคึผืขืจืึทืฆื™ืข, ื“ื™ ื“ื™ื ืกื˜ ืื™ื– ื“ื™ืกืงืึทื ืขืงื˜ื™ื“ ืคื•ืŸ ื“ื™ ื•ื•ืขืงืกืœ ืคื•ื ื˜ ืื•ืŸ ืกื˜ืึทืคึผืก. ืื™ืŸ ื ื•ื™ื˜ืคืึทืœ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก, ืžืขืกื™ื“ื–ืฉื™ื ื’ ืขืงืกืึทืงื™ื•ืฅ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคื™ื™ืœืึธื•ื•ืขืจ ืกืงืจื™ืคึผืก.

ืขืก ืงื•ืงื˜ ื’ืึทื ืฅ ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ืึธื‘ืขืจ ื“ื™ ืงืึธื“ ืื™ื– ื ื™ืฉื˜ ืึทื–ื•ื™ ืกืงืขืจื™. ืงืึธื“ืขืงืก ื‘ื™ื™ืฉืคื™ืœืŸ ืžื™ื˜ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื’ืขื‘ืŸ ืื™ืŸ ื“ื™ ืึทื ืึทืœื™ืกื™ืก ืคื•ืŸ ื˜ืขืžืคึผืœืึทื˜ืขืก ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ื™ืงืกื˜ืฉื™ื™ื ื“ื–ืฉื™ื–

ืขืงืกื˜ืฉืึทื ื’ืข ืคื•ื ื˜ ืื™ื– ืึท ืžืขืกื™ื“ื–ืฉื™ื ื’ ืคึผืจืึธืฆืขืก ื•ื•ืึธืก ื™ืžืคึผืœืึทืžืึทื ืฅ ื“ื™ ืœืึธื’ื™ืง ืคื•ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืื™ืŸ ื“ื™ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืžื•ืกื˜ืขืจ. ืื™ืŸ ืึทืœืข ื“ื™ ื‘ื™ื™ืฉืคื™ืœืŸ ื“ืขืจืœืื ื’ื˜ ืื•ื ื˜ืŸ, ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื™ื ื˜ืขืจืึทืงื˜ ื“ื•ืจืš ื•ื•ืขืงืกืœ ื•ื•ื™ื™ื–ื˜, ื“ื™ ืงืึธืžื‘ื™ื ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื•ื•ืึธืก ืคืืจืžืขืŸ ืžืขืกื™ื“ื–ืฉื™ื ื’.

ืึธื ื–ืึธื’ ื•ื•ืขืงืกืœ ืคึผืึทื˜ืขืจื ื– (ืžืขืคึผืก)

ื’ืœืึธื•ื‘ืึทืœื™, ื•ื•ืขืงืกืœ ืคึผืึทื˜ืขืจื ื– ืงืขื ืขืŸ ื–ื™ื™ืŸ ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ ืฆื•ื•ื™ื™-ื•ื•ืขื’ ืื•ืŸ ืื™ื™ืŸ-ื•ื•ืขื’. ื“ื™ ืขืจืฉื˜ืข ืžื™ื™ื ืขืŸ ืึท ืขื ื˜ืคืขืจ ืฆื• ืึท ื™ื ืงืึทืžื™ื ื’ ืึธื ื–ืึธื’, ื“ื™ ืœืขืฆื˜ืข ื˜ืึธืŸ ื ื™ื˜. ื ืงืœืึทืกื™ืฉ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ืฆื•ื•ื™ื™-ื•ื•ืขื’ ืžื•ืกื˜ืขืจ ืื™ืŸ ืงืœื™ืขื ื˜-ืกืขืจื•ื•ืขืจ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื™ื– ื“ื™ ื‘ืขื˜ืŸ-ืขื ื˜ืคืขืจ ืžื•ืกื˜ืขืจ. ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ืžื•ืกื˜ืขืจ ืื•ืŸ ื–ื™ื™ึทืŸ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธื ืก.

ื‘ืขื˜ืŸ-ืขื ื˜ืคืขืจ ืึธื“ืขืจ RPC

RPC ืื™ื– ื’ืขื ื™ืฆื˜ ื•ื•ืขืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืคึผืจืึธืฆืขืก. ื“ืขืจ ืคึผืจืึธืฆืขืก ืงืขืŸ ื–ื™ื™ืŸ ืคืœื™ืกื ื“ื™ืง ืื•ื™ืฃ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื ืึธื“ืข ืึธื“ืขืจ ืœื™ื’ืŸ ืื•ื™ืฃ ืึท ืึทื ื“ืขืจืฉ ืงืึธื ื˜ื™ื ืขื ื˜. ื•ื ื˜ืขืจ ืื™ื– ืึท ื“ื™ืึทื’ืจืึทืžืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ืงืœื™ืขื ื˜ ืื•ืŸ ืกืขืจื•ื•ืขืจ ื“ื•ืจืš ืžืขืกื™ื“ื–ืฉื™ื ื’.

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ื–ื™ื ื˜ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืื™ื– ื’ืึธืจ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก, ืคึฟืึทืจ ื“ืขื ืงืœื™ืขื ื˜, ื“ืขืจ ื•ื•ืขืงืกืœ ืื™ื– ืฆืขื˜ื™ื™ืœื˜ ืื™ืŸ 2 ืคื™ื™ื–ืึทื–:

  1. ืฉื™ืงื˜ ื‘ืขื˜ืŸ

    messaging:request(Exchange, ResponseMatchingTag, RequestDefinition, HandlerProcess).

    ื‘ื™ื™ึทื˜ โ€’ ื™ื™ื ืฆื™ืง ื ืึธืžืขืŸ ืคื•ืŸ ื“ืขืจ ื•ื•ืขืงืกืœ ืคื•ื ื˜
    ResponseMatchingTag โ€’ ื”ื™ื’ืข ืคื™ืจืžืข ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ืขื ื˜ืคืขืจ. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ ืฉื™ืงืŸ ืขื˜ืœืขื›ืข ื™ื™ื“ืขื ื™ืงืึทืœ ืจื™ืงื•ื•ืขืก ื‘ื™ืœืึธื ื’ื™ื ื’ ืฆื• ืคืึทืจืฉื™ื“ืขื ืข ื ื™ืฆืขืจืก.
    RequestDefinition - ื‘ืขื˜ืŸ ื’ื•ืฃ
    ื”ืึทื ื“ืœืขืจ ืคึผืจืึธืฆืขืก โ€’ PID ืคื•ืŸ ื“ื™ ื”ืึทื ื“ืœืขืจ. ื“ืขืจ ืคึผืจืึธืฆืขืก ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ.

  2. ืคึผืจืึทืกืขืกื™ื ื’ ื“ื™ ืขื ื˜ืคืขืจ

    handle_info(#'$msg'{exchange = EXCHANGE, tag = ResponseMatchingTag,message = ResponsePayload}, State)

    ResponsePayload - ืกืขืจื•ื•ืขืจ ืขื ื˜ืคืขืจ.

ืคึฟืึทืจ ื“ื™ ืกืขืจื•ื•ืขืจ, ื“ืขืจ ืคึผืจืึธืฆืขืก ืื•ื™ืš ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ 2 ืคื™ื™ื–ืึทื–:

  1. ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื ื’ ื“ื™ ื•ื•ืขืงืกืœ ืคื•ื ื˜
  2. ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ื‘ืืงื•ืžืขืŸ ืจื™ืงื•ื•ืขืก

ื–ืืœ ืก ืื™ืœื•ืกื˜ืจื™ืจืŸ ื“ืขื ืžื•ืกื˜ืขืจ ืžื™ื˜ ืงืึธื“. ื–ืืœ ืก ื–ืึธื’ืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืึท ืคึผืฉื•ื˜ ื“ื™ื ืกื˜ ื•ื•ืึธืก ื’ื™ื˜ ืึท ืื™ื™ืŸ ืคึผื™ื ื˜ืœืขืš ืฆื™ื™ื˜ ืื•ืคึฟืŸ.

ืกืขืจื•ื•ื™ืจืขืจ ืงืึธื“

ืœืึธืžื™ืจ ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ืกืขืจื•ื•ื™ืก ืึทืคึผื™ ืื™ืŸ api.hrl:

%% =====================================================
%%  entities
%% =====================================================
-record(time, {
  unixtime :: non_neg_integer(),
  datetime :: binary()
}).

-record(time_error, {
  code :: non_neg_integer(),
  error :: term()
}).

%% =====================================================
%%  methods
%% =====================================================
-record(time_req, {
  opts :: term()
}).
-record(time_resp, {
  result :: #time{} | #time_error{}
}).

ื–ืืœ ืก ื“ืขืคื™ื ื™ืจืŸ ื“ื™ ืกืขืจื•ื•ื™ืก ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ืŸ time_controller.erl

%% ะ’ ะฟั€ะธะผะตั€ะต ะฟะพะบะฐะทะฐะฝ ั‚ะพะปัŒะบะพ ะทะฝะฐั‡ะธะผั‹ะน ะบะพะด. ะ’ัั‚ะฐะฒะธะฒ ะตะณะพ ะฒ ัˆะฐะฑะปะพะฝ gen_server ะผะพะถะฝะพ ะฟะพะปัƒั‡ะธั‚ัŒ ั€ะฐะฑะพั‡ะธะน ัะตั€ะฒะธั.

%% ะธะฝะธั†ะธะฐะปะธะทะฐั†ะธั gen_server
init(Args) ->
  %% ะฟะพะดะบะปัŽั‡ะตะฝะธะต ะบ ั‚ะพั‡ะบะต ะพะฑะผะตะฝะฐ
  messaging:monitor_exchange(req_resp, ?EXCHANGE, default, self())
  {ok, #{}}.

%% ะพะฑั€ะฐะฑะพั‚ะบะฐ ัะพะฑั‹ั‚ะธั ะฟะพั‚ะตั€ะธ ัะฒัะทะธ ั ั‚ะพั‡ะบะพะน ะพะฑะผะตะฝะฐ. ะญั‚ะพ ะถะต ัะพะฑั‹ั‚ะธะต ะฟั€ะธั…ะพะดะธั‚, ะตัะปะธ ั‚ะพั‡ะบะฐ ะพะฑะผะตะฝะฐ ะตั‰ะต ะฝะต ะทะฐะฟัƒัั‚ะธะปะฐััŒ.
handle_info(#exchange_die{exchange = ?EXCHANGE}, State) ->
  erlang:send(self(), monitor_exchange),
  {noreply, State};

%% ะพะฑั€ะฐะฑะพั‚ะบะฐ API
handle_info(#time_req{opts = _Opts}, State) ->
  messaging:response_once(Client, #time_resp{
result = #time{ unixtime = time_utils:unixtime(now()), datetime = time_utils:iso8601_fmt(now())}
  });
  {noreply, State};

%% ะทะฐะฒะตั€ัˆะตะฝะธะต ั€ะฐะฑะพั‚ั‹ gen_server
terminate(_Reason, _State) ->
  messaging:demonitor_exchange(req_resp, ?EXCHANGE, default, self()),
  ok.

ืงืœื™ืขื ื˜ ืงืึธื“

ืื™ืŸ ืกื“ืจ ืฆื• ืฉื™ืงืŸ ืึท ื‘ืงืฉื” ืฆื• ื“ื™ ืกืขืจื•ื•ื™ืก, ืื™ืจ ืงืขื ืขืŸ ืจื•ืคืŸ ื“ื™ ืžืขืกื™ื“ื–ืฉื™ื ื’ ื‘ืขื˜ืŸ API ืขืจื’ืขืฅ ืื™ืŸ ื“ืขื ืงืœื™ืขื ื˜:

case messaging:request(?EXCHANGE, tag, #time_req{opts = #{}}, self()) of
    ok -> ok;
    _ -> %% repeat or fail logic
end

ืื™ืŸ ืึท ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืกื™ืกื˜ืขื, ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื–ื™ื™ืขืจ ืึทื ื“ืขืจืฉ ืื•ืŸ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ื‘ืขื˜ืŸ, ืžืขืกื™ื“ื–ืฉื™ื ื’ ืงืขืŸ ื ื™ืฉื˜ ื ืึธืš ืึธื ื”ื™ื™ื‘ืŸ, ืึธื“ืขืจ ื“ื™ ืกืขืจื•ื•ื™ืก ืงืึธื ื˜ืจืึธืœืœืขืจ ื•ื•ืขื˜ ื ื™ืฉื˜ ื–ื™ื™ืŸ ื’ืจื™ื™ื˜ ืฆื• ื“ื™ื ืขืŸ ื“ืขื ื‘ืขื˜ืŸ. ื“ืขืจื™ื‘ืขืจ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืžืขืกื™ื“ื–ืฉื™ื ื’ ืขื ื˜ืคืขืจ ืื•ืŸ ืฉืขืคึผืŸ ื“ื™ ื“ื•ืจื›ืคืึทืœ ืคืึทืœ.
ื ืึธืš ื’ืขืจืึธื˜ืŸ ืฉื™ืงื˜, ื“ืขืจ ืงืœื™ืขื ื˜ ื•ื•ืขื˜ ื‘ืึทืงื•ืžืขืŸ ืึท ืขื ื˜ืคืขืจ ืึธื“ืขืจ ื˜ืขื•ืช ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืก.
ื–ืืœ ืก ืฉืขืคึผืŸ ื‘ื™ื™ื“ืข ืงืึทืกืขืก ืื™ืŸ handle_info:

handle_info(#'$msg'{exchange = ?EXCHANGE, tag = tag, message = #time_resp{result = #time{unixtime = Utime}}}, State) ->
  ?debugVal(Utime),
  {noreply, State};

handle_info(#'$msg'{exchange = ?EXCHANGE, tag = tag, message = #time_resp{result = #time_error{code = ErrorCode}}}, State) ->
  ?debugVal({error, ErrorCode}),
  {noreply, State};

ื‘ืขื˜ืŸ-ื˜ืฉื•ื ืงืขื“ ืขื ื˜ืคืขืจ

ืขืก ืื™ื– ื‘ืขืกื˜ืขืจ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืฉื™ืงืŸ ืจื™ื–ื™ืง ืึทืจื˜ื™ืงืœืขืŸ. ื“ื™ ืจื™ืกืคึผืึทื ืกื™ื•ื•ื ืึทืก ืื•ืŸ ืกื˜ืึทื‘ื™ืœ ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ืขื. ืื•ื™ื‘ ื“ืขืจ ืขื ื˜ืคืขืจ ืฆื• ืึท ืึธื ืคึฟืจืขื’ ื ืขืžื˜ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื–ื›ึผืจื•ืŸ, ืกืคึผืœื™ื˜ื™ื ื’ ืขืก ืื™ืŸ ืคึผืึทืจืฅ ืื™ื– ืžืึทื ื“ืึทื˜ืึธืจื™.

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ืœืึธื–ืŸ ืžื™ืจ ื’ืขื‘ืŸ ืื™ืจ ืึท ืคึผืึธืจ ืคื•ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืึทื–ืึท ืงืึทืกืขืก:

  • ื“ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืขืงืกืœ ื‘ื™ื™ื ืขืจื™ ื“ืึทื˜ืŸ, ืึทื–ืึท ื•ื•ื™ ื˜ืขืงืขืก. ื‘ืจื™ื™ืงื™ื ื’ ื“ื™ ืขื ื˜ืคืขืจ ืื™ืŸ ืงืœื™ื™ืŸ ืคึผืึทืจืฅ ื”ืขืœืคึผืก ืื™ืจ ืึทืจื‘ืขื˜ ื™ืคื™ืฉืึทื ื˜ืœื™ ืžื™ื˜ ื˜ืขืงืขืก ืคื•ืŸ ืงื™ื™ืŸ ื’ืจื™ื™ืก ืื•ืŸ ื•ื™ืกืžื™ื™ื“ืŸ ื–ื™ืงืึธืจืŸ ืึธื•ื•ื•ืขืจืคืœืึธื•ื–.
  • ืœื™ืกื˜ื™ื ื’ืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืื•ื™ืกืงืœื™ื™ึทื‘ืŸ ืึทืœืข ืจืขืงืึธืจื“ืก ืคื•ืŸ ืึท ืจื™ื–ื™ืง ื˜ื™ืฉ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื•ืŸ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื–ื™ื™ ืฆื• ืืŸ ืื ื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜.

ืื™ืš ืจื•ืคืŸ ื“ื™ ืจืขืกืคึผืึธื ืกืขืก ืœืึธืงืึธืžืึธื˜ื™ื•ื•ืข. ืื™ืŸ ืงื™ื™ืŸ ืคืึทืœ, 1024 ืึทืจื˜ื™ืงืœืขืŸ ืคื•ืŸ 1 ืžื‘ ื–ืขื ืขืŸ ื‘ืขืกืขืจ ื•ื•ื™ ืึท ืื™ื™ืŸ ืึธื ื–ืึธื’ ืคื•ืŸ 1 ื’ื™ื’ืื‘ื™ื™ื˜.

ืื™ืŸ ื“ื™ ืขืจืœืึทื ื’ ืงื ื•ื™ืœ, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึทืŸ ื ืึธืš ื ื•ืฅ - ืจื™ื“ื•ืกื™ื ื’ ื“ื™ ืžืึทืกืข ืื•ื™ืฃ ื“ื™ ื•ื•ืขืงืกืœ ืคื•ื ื˜ ืื•ืŸ ื“ื™ ื ืขืฅ, ื•ื•ื™ื™ึทืœ ื“ื™ ืจืขืกืคึผืึธื ืกืขืก ื–ืขื ืขืŸ ื’ืœื™ื™ืš ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ื‘ืึทืงื•ืžืขืจ, ื‘ื™ื™ืคึผืึทืกื™ื ื’ ื“ื™ ื•ื•ืขืงืกืœ ืคื•ื ื˜.

ืขื ื˜ืคืขืจ ืžื™ื˜ ื‘ืงืฉื”

ื“ืึธืก ืื™ื– ืึท ื’ืึทื ืฅ ื–ืขืœื˜ืŸ ืžืึธื“ื™ืคื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ RPC ืžื•ืกื˜ืขืจ ืคึฟืึทืจ ื‘ื ื™ืŸ ื“ื™ืึทืœืึธื’ ืกื™ืกื˜ืขืžืขืŸ.

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ืึทืจื•ื™ืกื’ืขื‘ืŸ-ืึทื‘ืึธื ื™ืจืŸ (ื“ืึทื˜ืŸ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ื‘ื•ื™ื)

ื’ืขืฉืขืขื ื™ืฉ-ื’ืขื˜ืจื™ื‘ืŸ ืกื™ืกื˜ืขืžืขืŸ ืฆื•ืฉื˜ืขืœืŸ ื–ื™ื™ ืฆื• ืงืึธื ืกื•ืžืขืจืก ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ืจื™ื™ื˜. ืื–ื•ื™, ืกื™ืกื˜ืขืžืขืŸ ื–ืขื ืขืŸ ืžืขืจ ืคึผืจืึธื ืข ืฆื• ืึท ืฉื˜ื•ืคึผ ืžืึธื“ืขืœ ื•ื•ื™ ืฆื• ืึท ืฆื™ืขืŸ ืึธื“ืขืจ ืึทื ืงืขื˜ืข ืžืึธื“ืขืœ. ื“ืขืจ ืฉื˜ืจื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ื•ื•ื™ื™ืกื˜ื™ื ื’ ืจืขืกื•ืจืกืŸ ื“ื•ืจืš ืงืขืกื™ื™ื“ืขืจ ื‘ืขื˜ืŸ ืื•ืŸ ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ื“ืึทื˜ืŸ.
ื“ื™ ืคื™ื’ื•ืจ ื•ื•ื™ื™ื–ื˜ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ื™ืกื˜ืจื™ื‘ื™ื•ื˜ื™ื ื’ ืึท ืึธื ื–ืึธื’ ืฆื• ืงืึธื ืกื•ืžืขืจืก ืึทื‘ืึธื ื™ืจืŸ ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ื˜ืขืžืข.

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ืงืœืึทืกื™ืฉ ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ื ื™ืฆืŸ ื“ืขื ืžื•ืกื˜ืขืจ ื–ืขื ืขืŸ ื“ื™ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืคื•ืŸ ืฉื˜ืึทื˜: ื“ื™ ืฉืคึผื™ืœ ื•ื•ืขืœื˜ ืื™ืŸ ืงืึธืžืคึผื™ื•ื˜ืขืจ ืฉืคึผื™ืœืขืจื™ื™ึท, ืžืึทืจืง ื“ืึทื˜ืŸ ืื•ื™ืฃ ื™ืงืกื˜ืฉื™ื™ื ื“ื–ืฉื™ื–, ื ื•ืฆื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ืŸ ื“ืึทื˜ืŸ ืคื™ื“ื–.

ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ืึทื‘ืึธื ืขื ื˜ ืงืึธื“:

init(_Args) ->
  %% ะฟะพะดะฟะธัั‹ะฒะฐะตะผัั ะฝะฐ ะพะฑะผะตะฝะฝะธะบ, ะบะปัŽั‡ = key
  messaging:subscribe(?SUBSCRIPTION, key, tag, self()),
  {ok, #{}}.

handle_info(#exchange_die{exchange = ?SUBSCRIPTION}, State) ->
  %% ะตัะปะธ ั‚ะพั‡ะบะฐ ะพะฑะผะตะฝะฐ ะฝะตะดะพัั‚ัƒะฟะฝะฐ, ั‚ะพ ะฟั‹ั‚ะฐะตะผัั ะฟะตั€ะตะฟะพะดะบะปัŽั‡ะธั‚ัŒัั
  messaging:subscribe(?SUBSCRIPTION, key, tag, self()),
  {noreply, State};

%% ะพะฑั€ะฐะฑะฐั‚ั‹ะฒะฐะตะผ ะฟั€ะธัˆะตะดัˆะธะต ัะพะพะฑั‰ะตะฝะธั
handle_info(#'$msg'{exchange = ?SUBSCRIPTION, message = Msg}, State) ->
  ?debugVal(Msg),
  {noreply, State};

%% ะฟั€ะธ ะพัั‚ะฐะฝะพะฒะบะต ะฟะพั‚ั€ะตะฑะธั‚ะตะปั - ะพั‚ะบะปัŽั‡ะฐะตะผัั ะพั‚ ั‚ะพั‡ะบะธ ะพะฑะผะตะฝะฐ
terminate(_Reason, _State) ->
  messaging:unsubscribe(?SUBSCRIPTION, key, tag, self()),
  ok.

ื“ืขืจ ืžืงื•ืจ ืงืขื ืขืŸ ืจื•ืคืŸ ื“ื™ ืคึฟื•ื ืงืฆื™ืข ืฆื• ืึทืจื•ื™ืกื’ืขื‘ืŸ ืึท ืึธื ื–ืึธื’ ืื™ืŸ ืงื™ื™ืŸ ื‘ืึทืงื•ื•ืขื ืึธืจื˜:

messaging:publish_message(Exchange, Key, Message).

ื‘ื™ื™ึทื˜ - ื ืึธืžืขืŸ ืคื•ืŸ ื“ืขืจ ื•ื•ืขืงืกืœ ืคื•ื ื˜,
ืฉืœื™ืกืœ - ืจื•ื˜ื™ื ื’ ืฉืœื™ืกืœ
ืึธื ื–ืึธื’ - ืคึผื™ื™ืœืึธื•ื“

ื™ื ื•ื•ืขืจื˜ื™ื“ ืึทืจื•ื™ืกื’ืขื‘ืŸ-ืึทื‘ืึธื ื™ืจืŸ

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ื“ื•ืจืš ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืฉืขื ืง-ืกืึทื‘, ืื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืึท ืžื•ืกื˜ืขืจ ื‘ืึทืงื•ื•ืขื ืคึฟืึทืจ ืœืึธื’ื™ื ื’. ื“ืขืจ ื’ืึทื ื’ ืคื•ืŸ ืงื•ื•ืืœืŸ ืื•ืŸ ืงืึธื ืกื•ืžืขืจืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืึธืจ ืึทื ื“ืขืจืฉ. ื“ื™ ืคื™ื’ื•ืจ ื•ื•ื™ื™ื–ื˜ ืึท ืคืึทืœ ืžื™ื˜ ืื™ื™ืŸ ืงืึทื ืกื•ืžืขืจ ืื•ืŸ ืงื™ื™ืคืœ ืงื•ื•ืืœืŸ.

ืึทืจื‘ืขื˜ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืžื•ืกื˜ืขืจ

ื›ึผืžืขื˜ ื™ืขื“ืขืจ ืคึผืจื•ื™ืขืงื˜ ื™ื ื•ื•ืึทืœื•ื•ื– ื“ื™ืคืขืจื“ ืคึผืจืึทืกืขืกื™ื ื’ ื˜ืึทืกืงืก, ืึทื–ืึท ื•ื•ื™ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืจื™ืคึผืึธืจืฅ, ื“ืขืœื™ื•ื•ืขืจื™ื ื’ ื ืึธื•ื˜ืึทืคืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ืจื™ื˜ืจื™ื•ื•ื™ื ื’ ื“ืึทื˜ืŸ ืคื•ืŸ ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืกื™ืกื˜ืขืžืขืŸ. ื“ื™ ื˜ืจื•ืคึผื•ื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืคึผืขืจืคืึธืจืžื™ื ื’ ื“ื™ ื˜ืึทืกืงืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื™ื›ื˜ ืกืงื™ื™ืœื“ ื“ื•ืจืš ืึทื“ื™ื ื’ ื”ืึทื ื“ืœืขืจืก. ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืคึฟืึทืจ ืื•ื ื“ื– ืื™ื– ืฆื• ืคืึธืจืขื ืึท ืงื ื•ื™ืœ ืคื•ืŸ ืคึผืจืึทืกืขืกืขืจื– ืื•ืŸ ื™ื•ื•ืึทื ืœื™ ืคืึทืจืฉืคึผืจื™ื™ื˜ืŸ ื˜ืึทืกืงืก ืฆื•ื•ื™ืฉืŸ ื–ื™ื™.

ื–ืืœ ืก ืงื•ืง ืื™ืŸ ื“ื™ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ื•ื•ืึธืก ืฉื˜ื™ื™ืขืŸ ืžื™ื˜ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ 3 ื”ืึทื ื“ืœืขืจืก. ืืคื™ืœื• ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืึทืจื‘ืขื˜ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’, ื“ื™ ืงืฉื™ื ืคื•ืŸ ื™ื•ื™ืฉืขืจ ืคื•ืŸ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืื•ืŸ ืึธื•ื•ื•ืขืจืคืœืึธื• ืคื•ืŸ ื”ืึทื ื“ืœืขืจืก ืขืจื™ื™ื–ืึทื–. ืจืึธื•ื ื“-ืจืึธื‘ื™ืŸ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื™ื•ื™ืฉืขืจ, ืื•ืŸ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืึท ืกื™ื˜ื•ืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึธื•ื•ื•ืขืจืคืœืึธื• ืคื•ืŸ ื”ืึทื ื“ืœืขืจืก, ืžื™ืจ ื•ื•ืขืœืŸ ืคืึธืจืฉื˜ืขืœืŸ ืึท ืจื™ืกื˜ืจื™ืงืฉืึทืŸ prefetch_limit. ืื™ืŸ ื˜ืจืึทื ื–ืฉืึทื ื˜ ื˜ื ืึธื™ื prefetch_limit ื•ื•ืขื˜ ืคืึทืจืžื™ื™ึทื“ืŸ ืื™ื™ืŸ ื”ืึทื ื“ืœืขืจ ืคื•ืŸ ืจื™ืกื™ื•ื•ื™ื ื’ ืึทืœืข ื˜ืึทืกืงืก.

ืžืขืกื™ื“ื–ืฉื™ื ื’ ืžืึทื ื™ื“ื–ืฉื™ื– ืงื™ื•ื– ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ื‘ื™ืœื›ืขืจืงื™ื™ึทื˜. ืคึผืจืึทืกืขืกืขืจื– ื‘ืึทืงื•ืžืขืŸ ื˜ืึทืกืงืก ื•ื•ื™ ื–ื™ื™ ืึธื ืงื•ืžืขืŸ. ื“ื™ ืึทืจื‘ืขื˜ ืงืขื ืขืŸ ืคืึทืจืขื ื“ื™ืงืŸ ื”ืฆืœื—ื” ืึธื“ืขืจ ื“ื•ืจื›ืคืึทืœ:

  • messaging:ack(Tack) - ื’ืขืจื•ืคืŸ ืื•ื™ื‘ ื“ืขืจ ืึธื ื–ืึธื’ ืื™ื– ื”ืฆืœื—ื” ืคึผืจืึทืกืขืกื˜
  • messaging:nack(Tack) - ื’ืขืจื•ืคืŸ ืื™ืŸ ืึทืœืข ื ื•ื™ื˜ืคืึทืœ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก. ืึทืžืึธืœ ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืื•ืžื’ืขืงืขืจื˜, ืžืขืกื™ื“ื–ืฉื™ื ื’ ื•ื•ืขื˜ ืคืึธืจืŸ ืขืก ืฆื• ืืŸ ืื ื“ืขืจ ื”ืึทื ื“ืœืขืจ.

ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืขืจืฉื˜ืขืจ ืฆื•ื’ืึทื ื’

ืจืขื›ืŸ ืึท ืงืึธืžืคึผืœืขืงืก ื“ื•ืจื›ืคืึทืœ ืื™ื– ืคืืจื’ืขืงื•ืžืขืŸ ื‘ืฉืขืช ืคึผืจืึทืกืขืกื™ื ื’ ื“ืจื™ื™ ื˜ืึทืกืงืก: ืคึผืจืึทืกืขืกืขืจ 1, ื ืึธืš ื‘ืืงื•ืžืขืŸ ื“ื™ ืึทืจื‘ืขื˜, ืงืจืึทืฉื˜ ืึธืŸ ืฆื™ื™ื˜ ืฆื• ื‘ืึทืจื™ื›ื˜ ืขืคึผืขืก ืฆื• ื“ื™ ื•ื•ืขืงืกืœ ืคื•ื ื˜. ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ืขืจ ื•ื•ืขืงืกืœ ืคื•ื ื˜ ื•ื•ืขื˜ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืฆื• ืืŸ ืื ื“ืขืจ ื”ืึทื ื“ืœืขืจ ื ืึธืš ื“ื™ ืึทืง ื˜ื™ื™ืžืึทื•ื˜ ืื™ื– ืื•ื™ืกื’ืขื’ืื ื’ืขืŸ. ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื”, ื”ืึทื ื“ืœืขืจ 3 ืคืืจืœืื–ืŸ ื“ื™ ืึทืจื‘ืขื˜ ืื•ืŸ ื’ืขืฉื™ืงื˜ ื ืึทืง; ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ืึทืจื‘ืขื˜ ืื™ื– ืื•ื™ืš ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ืืŸ ืื ื“ืขืจ ื”ืึทื ื“ืœืขืจ ื•ื•ืึธืก ื”ืฆืœื—ื” ื’ืขืขื ื“ื™ืงื˜ ืขืก.

ืคึผืจืขืœื™ืžื™ื ืึทืจื™ ืงื™ืฆืขืจ

ืžื™ืจ ื”ืึธื‘ืŸ ื‘ืื“ืขืงื˜ ื“ื™ ื™ืงืขืจื“ื™ืง ื‘ื ื™ืŸ ื‘ืœืึทืงืก ืคื•ืŸ ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ืกื™ืกื˜ืขืžืขืŸ ืื•ืŸ ืคืืจื“ื™ื ื˜ ืึท ื™ืงืขืจื“ื™ืง ืคืืจืฉื˜ืื ื“ ืคื•ืŸ ื–ื™ื™ืขืจ ื ื•ืฆืŸ ืื™ืŸ ืขืจืœืึทื ื’ / ืขืœื™ืงืกื™ืจ.

ื“ื•ืจืš ืงืึทืžื‘ื™ื™ื ื™ื ื’ ื™ืงืขืจื“ื™ืง ืคึผืึทื˜ืขืจื ื–, ืื™ืจ ืงืขื ืขืŸ ื‘ื•ื™ืขืŸ ืงืึธืžืคึผืœืขืงืก ืคึผืขืจืึทื“ื™ืžื– ืฆื• ืกืึธืœื•ื•ืข ื™ืžืขืจื“ื–ืฉื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก.

ืื™ืŸ ื“ื™ ืœืขืฆื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืกืขืจื™ืข, ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ ื™ืฉื•ื– ืคื•ืŸ ืึธืจื’ืึทื ื™ื™ื–ื™ื ื’ ื‘ืึทื“ื™ื ื•ื ื’ืก, ืจื•ื˜ื™ื ื’ ืื•ืŸ ื‘ืึทืœืึทื ืกื™ื ื’, ืื•ืŸ ืื•ื™ืš ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืคึผืจืึทืงื˜ื™ืฉ ื–ื™ื™ึทื˜ ืคื•ืŸ ืกืงืึทืœืึทื‘ื™ืœื™ื˜ื™ ืื•ืŸ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ ืคื•ืŸ ืกื™ืกื˜ืขืžืขืŸ.

ืกื•ืฃ ืคื•ืŸ ื“ื™ ืจื’ืข ื˜ื™ื™ืœ.

Photo ืžืึทืจื™ื•ืก ืงืจื™ืกื˜ื ืกืขืŸ
ืื™ืœื•ืกื˜ืจืืฆื™ืขืก ืฆื•ื’ืขื’ืจื™ื™ื˜ ืžื™ื˜ websequencediagrams.com

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’