الخطة 1:
إذا لم يكن هناك تزامن وتم إنشاء رقم الطلب فقط في مؤشر ترابط واحد ، فمنذ أن يتم تنفيذ البرنامج بالتتابع ، تختلف طوابع وقت التوليد من الطلبات المختلفة عادة. لذلك ، يمكن استخدام الرقم العشوائي الزمني + (أو الرقم الذاتي) لتمييز كل ترتيب. في حالة وجود التزامن وتم إنشاء رقم الطلب بواسطة مؤشرات ترابط متعددة في عملية ما ، يمكن ضمان رقم الطلب ليكون فريدًا عن طريق إضافة معرف مؤشر الترابط إلى رقم التسلسل. إذا كان هناك تزامن وتم إنشاء رقم الطلب بواسطة عمليات متعددة في نفس المضيف ، يمكن ضمان رقم الطلب ليكون فريدًا عن طريق إضافة معرف العملية إلى رقم التسلسل. إذا كان هناك توافق ويتم إنشاء رقم الطلب بواسطة مضيفين مختلفين ، فإن الرقم الذي يمكنه التمييز بين المضيف ، مثل عنوان MAC أو عنوان IP أو الرقم التسلسلي لمجتمعات وحدة المعالجة المركزية ، يمكن أن يضمن أن رقم الطلب فريد للرقم التسلسلي.
الخطة 2:
الطابع الزمني + معرف المستخدم + عدة أرقام عشوائية + قفل متفائل.
الخطة 3:
استخدم Redis Atomic Relatrement لبناء مجموعة متاحة عالية.
الحل 4 (الأرقام غير المشوهة):
جافا تأتي مع uuid.
رمز القضية
جافا يحصل على معرف الموضوع
Thread.CurrentTher (). getId ()
جافا الحصول على معرف العملية
// احصل على اسم يمثل جهاز Java Virtual الجهاز. اسم السلسلة = managementfactory.getRunTimeMxBean (). getName () ؛ system.out.println (name) ؛ // الحصول على pid string pid = name.split ("@") [0] ؛ system.out.println ("pid is:" + pid) ؛احصل على عنوان Mac بواسطة Java
inetaddress ia = inetaddress.getlocalhost () ؛ byte [] mac = NetworkInterface.getByinetAddress (ia) .gethardWareadDress () ؛ String MacStR = datatypeconverter.printhexbinary (Mac) ؛
لخص
ما ورد أعلاه هو الحل الوحيد لإنشاء شبكة Java لتحقيق توليد أرقام الطلب في التزامن العالي ووضع موقع Java Web. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!