แผน 1:
หากไม่มีการเกิดขึ้นพร้อมกันและหมายเลขคำสั่งซื้อจะถูกสร้างขึ้นในเธรดเดียวเท่านั้นเนื่องจากโปรแกรมจะดำเนินการตามลำดับตามลำดับเวลาการสร้างการสร้างคำสั่งซื้อที่แตกต่างกันจะแตกต่างกันโดยปกติ ดังนั้นหมายเลขการประทับเวลา + สุ่ม (หรือหมายเลขที่เกิดขึ้นเอง) สามารถใช้เพื่อแยกความแตกต่างของแต่ละคำสั่ง หากมีการเกิดขึ้นพร้อมกันและหมายเลขคำสั่งซื้อถูกสร้างขึ้นโดยหลายเธรดในกระบวนการหมายเลขคำสั่งซื้อสามารถรับประกันได้ว่าจะไม่ซ้ำกันโดยการเพิ่ม ID เธรดลงในหมายเลขลำดับ หากมีการเกิดขึ้นพร้อมกันและหมายเลขคำสั่งซื้อถูกสร้างขึ้นโดยหลายกระบวนการในโฮสต์เดียวกันหมายเลขคำสั่งซื้อสามารถรับประกันได้ว่าจะไม่ซ้ำกันโดยการเพิ่มรหัสกระบวนการลงในหมายเลขลำดับ หากมีการเกิดขึ้นพร้อมกันและหมายเลขคำสั่งซื้อถูกสร้างขึ้นโดยโฮสต์ที่แตกต่างกันหมายเลขที่สามารถแยกความแตกต่างของโฮสต์เช่นที่อยู่ MAC ที่อยู่ IP หรือหมายเลขซีเรียล CPU สามารถมั่นใจได้ว่าหมายเลขคำสั่งซื้อนั้นไม่ซ้ำกับหมายเลขซีเรียล
แผน 2:
Timestamp + ID ผู้ใช้ + ตัวเลขสุ่มหลายครั้ง + การล็อคในแง่ดี
แผน 3:
ใช้การเพิ่มขึ้นของอะตอม Redis เพื่อสร้างคลัสเตอร์ความพร้อมใช้งานสูง
โซลูชัน 4 (หมายเลขที่ไม่ใช่ค่า):
Java มาพร้อมกับ UUID
รหัสกรณี
Java ได้รับ ID เธรด
thread.currentthread (). getId ()
java รับรหัสกระบวนการ
// รับชื่อแทนเครื่องเสมือน Java ที่กำลังทำงานอยู่ ชื่อสตริง = managementFactory.getRuntImemxBean (). getName (); System.out.println (ชื่อ); // รับ pid string pid = name.split ("@") [0]; System.out.println ("PID คือ:" + PID);รับที่อยู่ MAC โดย Java
InetAddress IA = InetAddress.getLocalHost (); Byte [] Mac = NetworkInterface.getByInetAddress (IA) .GetHardWareAddress (); String macstr = datatypeconverter.printhexbinary (Mac);
สรุป
ข้างต้นเป็นทางออกเดียวสำหรับเว็บ Java เพื่อให้ได้การสร้างหมายเลขคำสั่งซื้อในการพร้อมกันสูงและการกระจายการวางเว็บ Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!