การใช้ฐานข้อมูลคุณสามารถเพิ่มได้ถึง 1.000+ ครั้งต่อวินาทีด้วยแกนเดียว มันค่อนข้างง่าย คุณสามารถใช้ฐานข้อมูลของตัวเองเป็นแบ็กเอนด์เพื่อสร้างหมายเลขนั้นได้ (เนื่องจากควรเป็นข้อมูลรวมของตัวเองในรูปแบบ DDD)
ฉันมีสิ่งที่ดูเหมือนจะเป็นปัญหา ฉันมีหลายพาร์ติชันและฉันต้องการได้ตัวนับชดเชยสำหรับแต่ละพาร์ติชั่น ฉันใช้สิ่งนี้:
CREATE DATABASE example;
USE example;
CREATE TABLE offsets (partition INTEGER, offset LONG, PRIMARY KEY (partition));
INSERT offsets VALUES (1,0);
จากนั้นดำเนินการคำสั่งต่อไปนี้:
SELECT @offset := offset from offsets WHERE partition=1 FOR UPDATE;
UPDATE offsets set offset=@offset+1 WHERE partition=1;
หากแอปพลิเคชันของคุณอนุญาตคุณสามารถจัดสรรบล็อกพร้อมกันได้ (นั่นคือกรณีของฉัน)
SELECT @offset := offset from offsets WHERE partition=1 FOR UPDATE;
UPDATE offsets set offset=@offset+100 WHERE partition=1;
หากคุณต้องการปริมาณงานเพิ่มเติมและไม่สามารถจัดสรรค่าชดเชยล่วงหน้าได้คุณสามารถใช้บริการของคุณเองโดยใช้ Flink สำหรับการประมวลผลแบบเรียลไทม์ ฉันสามารถเพิ่มครั้งละประมาณ 100K ต่อพาร์ติชัน
หวังว่าจะช่วยได้!