ืื™ืš ืงืคืงื ื”ืคืš ืœืžืฆื™ืื•ืช

ืื™ืš ืงืคืงื ื”ืคืš ืœืžืฆื™ืื•ืช

ื”ื™ื™ ื”ื‘ืจ!

ืื ื™ ืขื•ื‘ื“ ื‘ืฆื•ื•ืช ื˜ื™ื ืงื•ืฃ, ืฉืžืคืชื— ืžืจื›ื– ื”ื•ื“ืขื•ืช ืžืฉืœื•. ืื ื™ ื‘ืขื™ืงืจ ืžืคืชื— ื‘ื’'ืื•ื•ื” ื‘ืืžืฆืขื•ืช Spring boot ื•ืคื•ืชืจ ื‘ืขื™ื•ืช ื˜ื›ื ื™ื•ืช ืฉื•ื ื•ืช ืฉืฆืฆื•ืช ื‘ืคืจื•ื™ืงื˜.

ืจื•ื‘ ืฉื™ืจื•ืชื™ ื”ืžื™ืงืจื• ืฉืœื ื• ืžืชืงืฉืจื™ื ื–ื” ืขื ื–ื” ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ ื‘ืืžืฆืขื•ืช ืžืชื•ื•ืš ื”ื•ื“ืขื•ืช. ื‘ืขื‘ืจ, ื”ืฉืชืžืฉื ื• ื‘-IBM MQ ื›ืžืชื•ื•ืš, ืฉืœื ื™ื›ื•ืœ ื”ื™ื” ืœื”ืชืžื•ื“ื“ ื™ื•ืชืจ ืขื ื”ืขื•ืžืก, ืืš ื‘ืžืงื‘ื™ืœ ื”ื™ื• ืœื• ืขืจื‘ื•ื™ื•ืช ืžืฉืœื•ื— ื’ื‘ื•ื”ื•ืช.

ื›ืชื—ืœื™ืฃ, ื”ื•ืฆืข ืœื ื• ืืคืืฆ'ื™ ืงืคืงื, ืฉื™ืฉ ืœื• ืคื•ื˜ื ืฆื™ืืœ ืงื ื” ืžื™ื“ื” ื’ื‘ื•ื”, ืืš, ืœืžืจื‘ื” ื”ืฆืขืจ, ื“ื•ืจืฉ ื’ื™ืฉื” ื›ืžืขื˜ ืื™ื ื“ื™ื‘ื™ื“ื•ืืœื™ืช ืœืชืฆื•ืจื” ืขื‘ื•ืจ ืชืจื—ื™ืฉื™ื ืฉื•ื ื™ื. ื‘ื ื•ืกืฃ, ืžื ื’ื ื•ืŸ ื”ืžืกื™ืจื” ืฉืœ ืœืคื—ื•ืช ืคืขื ืื—ืช ืฉืขื•ื‘ื“ ื‘ืงืคืงื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืœื ืืคืฉืจ ืœืฉืžื•ืจ ืขืœ ืจืžืช ื”ืขืงื‘ื™ื•ืช ื”ื ื“ืจืฉืช ืžื—ื•ืฅ ืœืงื•ืคืกื”. ืœืื—ืจ ืžื›ืŸ, ืื—ืœื•ืง ืืช ื”ื ื™ืกื™ื•ืŸ ืฉืœื ื• ื‘ืชืฆื•ืจืช ืงืคืงื, ื‘ืคืจื˜, ืื ื™ ืื’ื™ื“ ืœืš ืื™ืš ืœื”ื’ื“ื™ืจ ื•ืœื—ื™ื•ืช ืขื ืžืกื™ืจื” ืื—ืช ื‘ื“ื™ื•ืง.

ืžืฉืœื•ื— ืžื•ื‘ื˜ื— ื•ืขื•ื“

ื”ื”ื’ื“ืจื•ืช ื”ื ื“ื•ื ื•ืช ืœื”ืœืŸ ื™ืกื™ื™ืขื• ืœืžื ื•ืข ืžืกืคืจ ื‘ืขื™ื•ืช ื‘ื”ื’ื“ืจื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ ื”ื—ื™ื‘ื•ืจ. ืื‘ืœ ืงื•ื“ื ื›ืœ ืื ื™ ืจื•ืฆื” ืœืฉื™ื ืœื‘ ืœืคืจืžื˜ืจ ืื—ื“ ืฉื™ืงืœ ืขืœ ื ื™ืคื•ื™ ื‘ืื’ื™ื ืืคืฉืจื™.

ื–ื” ื™ืขื–ื•ืจ client.id ืขื‘ื•ืจ ืžืคื™ืง ื•ืฆืจื›ืŸ. ื‘ืžื‘ื˜ ืจืืฉื•ืŸ ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืฉื ื”ืืคืœื™ืงืฆื™ื” ื‘ืชื•ืจ ื”ืขืจืš, ื•ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื–ื” ื™ืขื‘ื•ื“. ืœืžืจื•ืช ืฉื”ืžืฆื‘ ืฉื‘ื• ืืคืœื™ืงืฆื™ื” ืžืฉืชืžืฉืช ื‘ืžืกืคืจ ืฆืจื›ื ื™ื ื•ืืชื” ื ื•ืชืŸ ืœื”ื ืืช ืื•ืชื• client.id, ืžื‘ื™ื ืœืื–ื”ืจื” ื”ื‘ืื”:

org.apache.kafka.common.utils.AppInfoParser โ€” Error registering AppInfo mbean javax.management.InstanceAlreadyExistsException: kafka.consumer:type=app-info,id=kafka.test-0

ืื ืืชื” ืจื•ืฆื” ืœื”ืฉืชืžืฉ ื‘-JMX ื‘ืืคืœื™ืงืฆื™ื” ืขื ืงืคืงื, ื–ื• ื™ื›ื•ืœื” ืœื”ื™ื•ืช ื‘ืขื™ื”. ื‘ืžืงืจื” ื–ื”, ืขื“ื™ืฃ ืœื”ืฉืชืžืฉ ื‘ืฉื™ืœื•ื‘ ืฉืœ ืฉื ื”ืืคืœื™ืงืฆื™ื” ื•ื‘ื™ืŸ, ืœืžืฉืœ, ืฉื ื”ื ื•ืฉื ื‘ืชื•ืจ ื”ืขืจืš client.id. ื ื™ืชืŸ ืœืจืื•ืช ืืช ื”ืชื•ืฆืื” ืฉืœ ื”ืชืฆื•ืจื” ืฉืœื ื• ื‘ืคืœื˜ ื”ืคืงื•ื“ื” ืงืคืงื-ืฆืจื›ื ื™ื-ืงื‘ื•ืฆื•ืช ืžืฉื™ืจื•ืชื™ื ืž-Confluent:

ืื™ืš ืงืคืงื ื”ืคืš ืœืžืฆื™ืื•ืช

ื›ืขืช ื ืกืชื›ืœ ืขืœ ื”ืชืจื—ื™ืฉ ืฉืœ ืžืฉืœื•ื— ื”ื•ื“ืขื•ืช ืžื•ื‘ื˜ื—. ืœืžืคื™ืง ืงืคืงื ื™ืฉ ืคืจืžื˜ืจ acks, ื”ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืื—ืจื™ ื›ืžื” ืื™ืฉื•ืจื™ื ืฆืจื™ืš ืžื ื”ื™ื’ ื”ืืฉื›ื•ืœ ื›ื“ื™ ืœืฉืงื•ืœ ืืช ื”ื”ื•ื“ืขื” ืฉื ื›ืชื‘ื” ื‘ื”ืฆืœื—ื”. ืคืจืžื˜ืจ ื–ื” ื™ื›ื•ืœ ืœืงื‘ืœ ืืช ื”ืขืจื›ื™ื ื”ื‘ืื™ื:

  • 0 - ืื™ืฉื•ืจ ืœื ื™ื™ื—ืฉื‘.
  • 1 ื”ื•ื ืคืจืžื˜ืจ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ื ื“ืจืฉ ืจืง ืขื•ืชืง ืื—ื“ ื›ื“ื™ ืœืืฉืจ.
  • โˆ’1 - ื ื“ืจืฉ ืื™ืฉื•ืจ ืžื›ืœ ื”ื”ืขืชืงื™ื ื”ืžืกื•ื ื›ืจื ื™ื (ื”ื’ื“ืจืช ืืฉื›ื•ืœ min.insync.replicas).

ืžื”ืขืจื›ื™ื ื”ืžืคื•ืจื˜ื™ื ื‘ืจื•ืจ ืฉ-acks ืฉื•ื•ื” ืœ-1 ื ื•ืชืŸ ืืช ื”ืขืจื‘ื•ืช ื”ื—ื–ืงื” ื‘ื™ื•ืชืจ ืฉื”ืžืกืจ ืœื ื™ืื‘ื“.

ื›ืคื™ ืฉื›ื•ืœื ื• ื™ื•ื“ืขื™ื, ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ืื™ื ืŸ ืืžื™ื ื•ืช. ื›ื“ื™ ืœื”ื’ืŸ ืžืคื ื™ ืชืงืœื•ืช ื—ื•ืœืคื•ืช, ืžืคื™ืง ืงืคืงื ืžืกืคืง ืืช ื”ืืคืฉืจื•ืช ืžื ืกื” ืฉื•ื‘, ื”ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ืืช ืžืกืคืจ ื ื™ืกื™ื•ื ื•ืช ื”ืฉืœื™ื—ื” ืžื—ื“ืฉ ื‘ืชื•ืš ืžืกื™ืจื”.ื–ืžืŸ ืงืฆื•ื‘.ms. ืžื›ื™ื•ื•ืŸ ืฉืœืคืจืžื˜ืจ ื ืกื™ื•ื ื•ืช ื—ื•ื–ืจื•ืช ื™ืฉ ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ ืฉืœ Integer.MAX_VALUE (2147483647), ื ื™ืชืŸ ืœื”ืชืื™ื ืืช ืžืกืคืจ ื ื™ืกื™ื•ื ื•ืช ื”ื”ื•ื“ืขื•ืช ื”ื—ื•ื–ืจื•ืช ืขืœ ื™ื“ื™ ืฉื™ื ื•ื™ ืจืง delivery.timeout.ms.

ืื ื• ืžืชืงื“ืžื™ื ืœืงืจืืช ืžืฉืœื•ื— ืคืขื ืื—ืช ื‘ื“ื™ื•ืง

ื”ื”ื’ื“ืจื•ืช ื”ืžืคื•ืจื˜ื•ืช ืžืืคืฉืจื•ืช ืœืžืคื™ืง ืฉืœื ื• ืœื”ืขื‘ื™ืจ ื”ื•ื“ืขื•ืช ืขื ืื—ืจื™ื•ืช ื’ื‘ื•ื”ื”. ื‘ื•ืื• ื ื“ื‘ืจ ื›ืขืช ืขืœ ืื™ืš ืœื”ื‘ื˜ื™ื— ืฉืจืง ืขื•ืชืง ืื—ื“ ืฉืœ ื”ื•ื“ืขื” ื ื›ืชื‘ ืœื ื•ืฉื ืงืคืงื? ื‘ืžืงืจื” ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ, ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืืชื” ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ ื‘-Producer enable.idempotence ืœืืžื™ืชื™. ืื™ืžืคื•ื˜ื ืฆื™ื” ืžื‘ื˜ื™ื—ื” ืฉืจืง ื”ื•ื“ืขื” ืื—ืช ื ื›ืชื‘ืช ืœืžื—ื™ืฆื” ืกืคืฆื™ืคื™ืช ืฉืœ ื ื•ืฉื ืื—ื“. ื”ืชื ืื™ ื”ืžืงื“ื™ื ืœืืคืฉืจ ืื™-ื“ืžื•ื˜ื ื˜ื™ื•ืช ื”ื•ื ื”ืขืจื›ื™ื acks = all, ื ืกื” ืฉื•ื‘ > 0, max.in.flight.requests.per.connection โ‰ค 5. ืื ื”ืคืจืžื˜ืจื™ื ื”ืืœื” ืœื ืฆื•ื™ื ื• ืขืœ ื™ื“ื™ ื”ืžืคืชื—, ื”ืขืจื›ื™ื ืœืขื™ืœ ื™ื•ื’ื“ืจื• ืื•ื˜ื•ืžื˜ื™ืช.

ื›ืืฉืจ ืžื’ื“ื™ืจื™ื ืื™ืžืคื•ื˜ื ืฆื™ื”, ื™ืฉ ืฆื•ืจืš ืœื”ื‘ื˜ื™ื— ืฉืื•ืชืŸ ื”ื•ื“ืขื•ืช ื™ืกืชื™ื™ืžื• ื‘ืื•ืชืŸ ืžื—ื™ืฆื•ืช ื‘ื›ืœ ืคืขื. ื ื™ืชืŸ ืœืขืฉื•ืช ื–ืืช ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช ืžืคืชื— ื•ืคืจืžื˜ืจ partitioner.class ืœ-Producer. ื ืชื—ื™ืœ ืขื ื”ืžืคืชื—. ื–ื” ื—ื™ื™ื‘ ืœื”ื™ื•ืช ื–ื”ื” ืขื‘ื•ืจ ื›ืœ ื”ื’ืฉื”. ื ื™ืชืŸ ืœื”ืฉื™ื’ ื–ืืช ื‘ืงืœื•ืช ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ื›ืœ ืื—ื“ ืžื”ืžื–ื”ื™ื ื”ืขืกืงื™ื™ื ืžื”ืคื•ืกื˜ ื”ืžืงื•ืจื™. ืœืคืจืžื˜ืจ partitioner.class ื™ืฉ ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ - DefaultPartitioner. ืขื ืืกื˜ืจื˜ื’ื™ื™ืช ื—ืœื•ืงื” ื–ื•, ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ืื ื• ืคื•ืขืœื™ื ื›ืš:

  • ืื ื”ืžื—ื™ืฆื” ืฆื•ื™ื ื” ื‘ืžืคื•ืจืฉ ื‘ืขืช ืฉืœื™ื—ืช ื”ื”ื•ื“ืขื”, ืื ื• ืžืฉืชืžืฉื™ื ื‘ื”.
  • ืื ื”ืžื—ื™ืฆื” ืœื ืฆื•ื™ื ื”, ืืš ื”ืžืคืชื— ืฆื•ื™ืŸ, ื‘ื—ืจ ืืช ื”ืžื—ื™ืฆื” ืœืคื™ ื”-hash ืฉืœ ื”ืžืคืชื—.
  • ืื ื”ืžื—ื™ืฆื” ื•ื”ืžืคืชื— ืœื ืฆื•ื™ื ื•, ื‘ื—ืจ ืืช ื”ืžื—ื™ืฆื•ืช ืื—ืช ืื—ืช (ืขื’ื•ืœ-ืจื•ื‘ื™ืŸ).

ื›ืžื• ื›ืŸ, ืฉื™ืžื•ืฉ ื‘ืžืคืชื— ื•ืฉืœื™ื—ื” ืื™ืžืคื•ื˜ื ื˜ื™ืช ืขื ืคืจืžื˜ืจ max.in.flight.requests.per.connection = 1 ื ื•ืชืŸ ืœืš ืขื™ื‘ื•ื“ ื”ื•ื“ืขื•ืช ื™ืขื™ืœ ืขื‘ื•ืจ ื”ืฆืจื›ืŸ. ื›ื“ืื™ ื’ื ืœื–ื›ื•ืจ ืฉืื ื‘ืงืจืช ื’ื™ืฉื” ืžื•ื’ื“ืจืช ื‘ืืฉื›ื•ืœ ืฉืœืš, ืชื–ื“ืงืง ืœื”ืจืฉืื•ืช ืœื›ืชื•ื‘ ื‘ืฆื•ืจื” ืื™ื“ื™ืžื™ืช ืœื ื•ืฉื.

ืื ืคืชืื•ื ื—ืกืจื•ืช ืœืš ื”ื™ื›ื•ืœื•ืช ืฉืœ ืฉืœื™ื—ื” ืื™ืžืคื•ื˜ื ื˜ื™ืช ื‘ืืžืฆืขื•ืช ืžืคืชื— ืื• ืฉื”ื”ื™ื’ื™ื•ืŸ ื‘ืฆื“ ื”ืžืคื™ืง ื“ื•ืจืฉ ืฉืžื™ืจื” ืขืœ ืขืงื‘ื™ื•ืช ื ืชื•ื ื™ื ื‘ื™ืŸ ืžื—ื™ืฆื•ืช ืฉื•ื ื•ืช, ืื– ื”ืขืกืงืื•ืช ื™ืขื–ืจื•. ื‘ื ื•ืกืฃ, ื‘ืืžืฆืขื•ืช ืขืกืงืช ืฉืจืฉืจืช, ื ื™ืชืŸ ืœืกื ื›ืจืŸ ืจืฉื•ืžื” ื‘ืงืคืงื ืขืœ ืชื ืื™ ืขื ืจืฉื•ืžื” ื‘ืžืกื“ ื”ื ืชื•ื ื™ื. ื›ื“ื™ ืœืืคืฉืจ ืฉืœื™ื—ืช ืขืกืงืื•ืช ืœืžืคื™ืง, ื”ื™ื ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืื™ืžืคื•ื˜ื ื˜ื™ืช ื•ืžื•ื’ื“ืจืช ื‘ื ื•ืกืฃ transactional.id. ืื ื‘ืืฉื›ื•ืœ ืงืคืงื ืฉืœืš ืžื•ื’ื“ืจืช ื‘ืงืจืช ื’ื™ืฉื”, ืื– ืจืฉื•ืžืช ื˜ืจื ื–ืงืฆื™ื•ืช, ื›ืžื• ืจืฉื•ืžืช ืื™ืžืคื•ื˜ื ื˜ื™ืช, ืชื–ื“ืงืง ืœื”ืจืฉืื•ืช ื›ืชื™ื‘ื”, ืื•ืชืŸ ื ื™ืชืŸ ืœื”ืขื ื™ืง ื‘ืืžืฆืขื•ืช ืžืกื™ื›ื” ื‘ืืžืฆืขื•ืช ื”ืขืจืš ื”ืžืื•ื—ืกืŸ ื‘-transactional.id.

ืจืฉืžื™ืช, ื›ืœ ืžื—ืจื•ื–ืช, ื›ื’ื•ืŸ ืฉื ื”ืืคืœื™ืงืฆื™ื”, ื™ื›ื•ืœื” ืœืฉืžืฉ ื›ืžื–ื”ื” ืขืกืงื”. ืื‘ืœ ืื ืืชื” ืžืคืขื™ืœ ืžืกืคืจ ืžื•ืคืขื™ื ืฉืœ ืื•ืชื” ืืคืœื™ืงืฆื™ื” ืขื ืื•ืชื• transactional.id, ืื– ื”ืžื•ืคืข ื”ืจืืฉื•ืŸ ืฉื™ื•ืฉืง ื™ื™ืขืฆืจ ืขื ืฉื’ื™ืื”, ืฉื›ืŸ ืงืคืงื ื™ืจืื” ื‘ื–ื” ืชื”ืœื™ืš ื–ื•ืžื‘ื™ื.

org.apache.kafka.common.errors.ProducerFencedException: Producer attempted an operation with an old epoch. Either there is a newer producer with the same transactionalId, or the producer's transaction has been expired by the broker.

ื›ื“ื™ ืœืคืชื•ืจ ื‘ืขื™ื” ื–ื•, ืื ื• ืžื•ืกื™ืคื™ื ืกื™ื•ืžืช ืœืฉื ื”ืืคืœื™ืงืฆื™ื” ื‘ืฆื•ืจืช ืฉื ื”ืžืืจื—, ืื•ืชื” ืื ื• ืžืงื‘ืœื™ื ืžืžืฉืชื ื™ ืกื‘ื™ื‘ื”.

ื”ืžืคื™ืง ืžื•ื’ื“ืจ, ืื‘ืœ ืขืกืงืื•ืช ื‘ืงืคืงื ืฉื•ืœื˜ื•ืช ืจืง ื‘ื”ื™ืงืฃ ื”ื”ื•ื“ืขื”. ืœืœื ืงืฉืจ ืœืžืฆื‘ ื”ืขืกืงื”, ื”ื”ื•ื“ืขื” ืขื•ื‘ืจืช ืžื™ื“ ืœื ื•ืฉื, ืืš ื™ืฉ ืœื” ืชื›ื•ื ื•ืช ืžืขืจื›ืช ื ื•ืกืคื•ืช.

ื›ื“ื™ ืœืžื ื•ืข ืžื”ื•ื“ืขื•ืช ื›ืืœื” ืœื”ื™ืงืจื ืขืœ ื™ื“ื™ ื”ืฆืจื›ืŸ ืžื‘ืขื•ื“ ืžื•ืขื“, ื”ื•ื ืฆืจื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืคืจืžื˜ืจ ืจืžืช ื‘ื™ื“ื•ื“ ืœ-read_committed value. ืฆืจื›ืŸ ื›ื–ื” ื™ื•ื›ืœ ืœืงืจื•ื ื”ื•ื“ืขื•ืช ืœื ืขืกืงืื•ืช ื›ืžื• ืงื•ื“ื, ื•ื”ื•ื“ืขื•ืช ืขืกืงืื•ืช ืจืง ืœืื—ืจ commit.
ืื ื”ื’ื“ืจืช ืืช ื›ืœ ื”ื”ื’ื“ืจื•ืช ื”ืžืคื•ืจื˜ื•ืช ืงื•ื“ื ืœื›ืŸ, ื”ื’ื“ืจืช ื‘ื“ื™ื•ืง ืคืขื ืื—ืช ืžืกื™ืจื”. ืžื–ืœ ื˜ื•ื‘!

ืื‘ืœ ื™ืฉ ืขื•ื“ ื ื™ื•ืื ืก ืื—ื“. Transactional.id, ืื•ืชื• ื”ื’ื“ืจื ื• ืœืžืขืœื”, ื”ื™ื ืœืžืขืฉื” ืงื™ื“ื•ืžืช ื”ืขืกืงื”. ื‘ืžื ื”ืœ ื”ืขืกืงืื•ืช ืžืชื•ื•ืกืฃ ืœื• ืžืกืคืจ ืจืฆืฃ. ื”ืžื–ื”ื” ืฉื”ืชืงื‘ืœ ืžื•ื ืคืง ืœ transactional.id.expiration.ms, ื”ืžื•ื’ื“ืจ ืขืœ ืืฉื›ื•ืœ ืงืคืงื ื•ื™ืฉ ืœื• ืขืจืš ื‘ืจื™ืจืช ืžื—ื“ืœ ืฉืœ "7 ื™ืžื™ื". ืื ื‘ืžื”ืœืš ืชืงื•ืคื” ื–ื• ื”ืืคืœื™ืงืฆื™ื” ืœื ืงื™ื‘ืœื” ื”ื•ื“ืขื•ืช ื›ืœืฉื”ืŸ, ื›ืืฉืจ ืชื ืกื” ืืช ื”ืฉืœื™ื—ื” ื”ื‘ืื” ืฉืœ ื”ืขืกืงื” ืชืงื‘ืœ InvalidPidMappingException. ืœืื—ืจ ืžื›ืŸ, ืจื›ื– ื”ืขืกืงื” ื™ื•ืฆื™ื ืžืกืคืจ ืจืฆืฃ ื—ื“ืฉ ืขื‘ื•ืจ ื”ืขืกืงื” ื”ื‘ืื”. ืขื ื–ืืช, ื”ื”ื•ื“ืขื” ืขืœื•ืœื” ืœืœื›ืช ืœืื™ื‘ื•ื“ ืื ื”-InvalidPidMappingException ืœื ื™ื˜ื•ืคืœ ื›ื”ืœื›ื”.

ื‘ืžืงื•ื ื”ืกื™ื›ื•ืžื™ื

ื›ืคื™ ืฉืืชื” ื™ื›ื•ืœ ืœืจืื•ืช, ื–ื” ืœื ืžืกืคื™ืง ืคืฉื•ื˜ ืœืฉืœื•ื— ื”ื•ื“ืขื•ืช ืœืงืคืงื. ืขืœื™ืš ืœื‘ื—ื•ืจ ืฉื™ืœื•ื‘ ืฉืœ ืคืจืžื˜ืจื™ื ื•ืœื”ื™ื•ืช ืžื•ื›ืŸ ืœื‘ืฆืข ืฉื™ื ื•ื™ื™ื ืžื”ื™ืจื™ื. ื‘ืžืืžืจ ื–ื” ื ื™ืกื™ืชื™ ืœื”ืฆื™ื’ ื‘ืคื™ืจื•ื˜ ืืช ื”ื’ื“ืจืช ื”ืžืกื™ืจื” ืฉืœ ืคืขื ืื—ืช ื‘ื“ื™ื•ืง ื•ืชื™ืืจืชื™ ืžืกืคืจ ื‘ืขื™ื•ืช ื‘ืชืฆื•ืจื•ืช client.id ื•-transactional.id ืฉื ืชืงืœื ื• ื‘ื”ืŸ. ืœื”ืœืŸ ืกื™ื›ื•ื ืฉืœ ื”ื’ื“ืจื•ืช ื”ืžืคื™ืง ื•ื”ืฆืจื›ืŸ.

ื”ืคืงื”:

  1. acks = ื”ื›ืœ
  2. ื ื™ืกื™ื•ื ื•ืช ื—ื•ื–ืจื™ื > 0
  3. enable.idempotence = true
  4. max.in.flight.requests.per.connection โ‰ค 5 (1 ืœืฉืœื™ื—ื” ืžืกื•ื“ืจืช)
  5. transactional.id = ${application-name}-${hostname}

ืฆืจื›ืŸ:

  1. isolation.level = read_committed

ื›ื“ื™ ืœืžื–ืขืจ ืฉื’ื™ืื•ืช ื‘ื™ื™ืฉื•ืžื™ื ืขืชื™ื“ื™ื™ื, ื™ืฆืจื ื• ืžืขื˜ืคืช ืžืฉืœื ื• ืขืœ ืชืฆื•ืจืช ื”ืงืคื™ืฅ, ืฉื‘ื” ื”ืขืจื›ื™ื ืฉืœ ื—ืœืง ืžื”ืคืจืžื˜ืจื™ื ื”ืžืคื•ืจื˜ื™ื ื›ื‘ืจ ืžื•ื’ื“ืจื™ื.

ื”ื ื” ื›ืžื” ื—ื•ืžืจื™ื ืœืœื™ืžื•ื“ ืขืฆืžื™:

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”