เร่งความเร็ววีโอไอพีสบู่ v1


10

ฉันมีคำถามหลายข้อสำหรับนักพัฒนาคุณภาพเยี่ยม:

  1. เป็นไปได้หรือไม่ที่จะปรับปรุงความเร็วของ magento v1 soap api? เมื่อร้องขอข้อมูลจะมีค่าใช้จ่าย 1.5 วินาทีสำหรับ magento ในการรวบรวมข้อมูลอย่างง่ายเช่นที่อยู่ลูกค้า ฯลฯ

    หากต้องการขอโหนดข้อมูลที่เกี่ยวข้องหลายรายการอาจมีค่าใช้จ่ายได้อย่างรวดเร็วประมาณ 5-7 วินาที

    ตอนนี้ฉันทำตามคำขอเหล่านี้ผ่านทางคำขอ AJAX เพื่อให้ส่วนติดต่อของหน้าโหลดได้อย่างรวดเร็ว

  2. หรือจะเป็นการดีกว่าถ้าเขียนใบสมัครของฉันเองเพื่อให้ข้อมูลที่เกี่ยวข้องโดยตรงจาก magento db? มันไม่ซับซ้อนของ db และถ้าฉันทำแบบสอบถามโดยตรงโหลดภายใน 100 วินาทีกับผลลัพธ์ ...

    ข้อพิจารณาเดียวที่ฉันมีกับตัวเลือกนั้นคือ:

    1. เกิดอะไรขึ้นถ้าวีโอไอพีอัพเดตและเปลี่ยนแปลงมันเป็นรูปแบบฐานข้อมูล
    2. หรือการตั้งค่าฐานข้อมูลของวีโอไอพีนั้นค่อนข้างจะปลอดภัย / ลงล่างได้หรือไม่?

ใครบ้างมีประสบการณ์กับสิ่งนี้และเรื่องราวความสำเร็จหรือ faillure ของพวกเขา? ฉันต้องทำการสืบทอดที่ได้รับการบอกกล่าวเพื่อให้สามารถรู้วิธีดำเนินการต่อ


1
แนวโน้มของ PHP ผูกพัน ไม่ MySQL, Nginx หรือสิ่งอื่นใด เช่นเดียวกับส่วนที่เหลือของร้านค้าของคุณ ทำให้ร้านค้าของคุณเร็วและ API จะติดตาม อย่างไรก็ตามวิธีนี้จะไม่ทำให้การลดความเร็วอย่างรวดเร็ว - ดาต้าลโลว์ / API ช้าลงโดยไม่คำนึงถึงดังนั้นการใช้งานที่กำหนดเองจะมีประสิทธิภาพสูงกว่าค่าใช้จ่ายในการจัดการ / เวลาในการติดตั้ง / ใช้งาน / อัปเกรดได้
Ben Lessani - Sonassi

3
ไม่มันไม่ใช่ php ... มันเป็นการตั้งค่าทั้งหมดของ magento ที่ทำให้สิ่งต่าง ๆ ช้าลงอย่างไม่น่าเชื่อ การร้องขอ soap api ใช้เวลานานกว่าการร้องขอหน้าร้านค้าขนาดใหญ่ที่มีหลายรายการและตะกร้าสินค้า มีบางอย่างที่สงสัยในการออกแบบวีโอไอพี
Tschallacka

คำตอบ:


8

ฉันพบปัญหานี้อย่างกว้างขวางและฉันได้แก้ไขมันด้วยการทำงานกับวัตถุของ Magento โดยตรง ฉันคิดว่ามีความกังวลเกี่ยวกับการเปลี่ยนแปลงรหัสและสิ่งที่คุณไม่ได้อธิบาย แต่รหัสของฉันส่วนใหญ่อยู่ในสคริปต์แบบใช้ครั้งเดียวเพื่อโหลดข้อมูลเก่าสิ่งต่าง ๆ เช่นนั้นจึงเป็นข้อกังวลเล็กน้อย การทำงานกับวัตถุ Magento โดยตรงยังมีประโยชน์ด้านการทำให้ฉันเรียนรู้ internals มากกว่าฉันด้วย SOAP API เพียงเล็กน้อยเช่นกัน - เส้นโค้งการเรียนรู้ที่สูงชันแน่นอน แต่ฉันรู้สึกมีความรู้เล็กน้อยเกี่ยวกับสิ่งที่เกิดขึ้น ในนั้นถ้าฉันติดอยู่กับ SOAP API เท่านั้น

อีกทางเลือกหนึ่งที่เราพยายามทำคือการแคชข้อมูลโดยใช้Memcached (หรือบางอย่างเช่นRedisก็ใช้ได้เหมือนกัน) แต่ตอนนี้คุณต้องกังวลเกี่ยวกับความถี่ในการอัพเดทแคชจากที่ไหนและสิ่งต่าง ๆ เช่นนั้น แต่จะบรรลุเป้าหมายในการดึงข้อมูลได้เร็วขึ้นมาก ฉันคิดว่านี่เป็นตัวเลือกที่ดีหรือไม่นั้นขึ้นอยู่กับสิ่งที่คุณพยายามทำ


ถ้าฉันต้องทำอะไรบางอย่างจากวีโอไอพีนั้นฉันจะไม่ได้รับประโยชน์จากความเร็วมากนักเนื่องจากวีโอไอพียังต้อง "บู๊ต" เพื่อจัดการกับคำขอ ฉันชอบสบู่ api เพราะ "ไม่เปลี่ยนแปลง" แต่ฉันเกลียดความจริงที่ว่ามันช้ามากจนไม่สามารถตอบสนองต่อการค้นหาที่ง่ายที่สุดได้ แม้แต่เว็บไซต์หลักที่ต้องจัดการกับคำขอมากขึ้นก็จะเร็วขึ้นมาก
Tschallacka

สิ่งที่ฉันพยายามทำคือเชื่อมโยงวีโอไอพีกับซอฟต์แวร์ ERP ของเราดังนั้นฉันต้องการเข้าถึงข้อมูลล่าสุดในเวลาใดก็ตาม
Tschallacka

1
บางทีในกรณีของฉันฉันเขียนสิ่งที่จะโหลดคำสั่งซื้อโดยเพิ่มรหัสจากนั้นดำเนินการบางอย่างตามข้อมูลของมัน การโหลดคำสั่งซื้อแบบเต็มคือประมาณ 1.5 วินาทีใน SOAP API หรือเศษเสี้ยวของวินาทีในรูปแบบ "วัตถุดิบ" ตัวเลือกสำหรับฉันชัดเจนเมื่อฉันจะโหลดหลายร้อยคนในการวิ่งครั้งเดียว ข้อ จำกัด อีกประการหนึ่งก็คือการทำสไตล์ "แอพ magento" ก็คือต้องอยู่บนเซิร์ฟเวอร์เดียวกัน ในกรณีของฉันฉันไม่ได้สนใจอะไรเลย แต่มันก็คุ้มค่าที่จะจดจำ
Mike

1
คุณโหลดทุกอย่างในรูปแบบวัตถุดิบได้อย่างไร
Tschallacka

$order = Mage::getModel('sales/order')->load($order_id);เป็นเบส มีข้อมูลโค้ดหนึ่งหรือสองข้อความในฟอรัมนี้ที่อาจแสดงเพิ่มเติมได้ที่: magentocommerce.com/boards/viewthread/18629
Mike

6

การเร่งความเร็วของ SOAP API นั้นเป็นไปได้ยาก คุณสามารถโยนฮาร์ดแวร์พิเศษบางตัว (เซิร์ฟเวอร์ MySQL ที่เร็วกว่า) หรือเรียกใช้ร้านค้าบน NginX ซึ่งจะเกิดขึ้นเมื่อคุณใช้เวลาสักครู่มิลลิวินาที NginX จะดีกว่าในการจัดการคำขอ HTTP จำนวนมาก การแคชจะไม่ช่วยได้มากเท่าที่การตอบสนองของการโทรส่วนใหญ่จะแตกต่างกันในแต่ละครั้ง

การสร้าง API ของคุณเองตั้งแต่เริ่มต้นโดยใช้รุ่น Magento Core อาจเป็นวิธีที่เร็วที่สุดเพราะคุณสามารถปรับแต่งโค้ดเพื่อปรับปรุงประสิทธิภาพโดยการโหลดเฉพาะสิ่งที่คุณต้องการเท่านั้น จากประสบการณ์ของฉันที่ใช้คลาสหลักไม่มากที่มีการเปลี่ยนแปลงระหว่างสมมติว่ารุ่น 1.5 และ 1.7

แก้ไข:ฉันลืมการชนะอย่างรวดเร็วขนาดเล็กอาจมาจากการเปิดการบีบอัดเอาต์พุต gzip ในไฟล์ htaccess หรือ php.ini หรือหากคุณรู้สึกว่าจะย้าย SOAP api ไปยังเซิร์ฟเวอร์อื่นโดยใช้ฐานข้อมูลเดียวกันหากฐานข้อมูล MySQL ไม่ใช่ คอขวด


1
ฐานข้อมูล mysql ไม่ใช่คอขวด, คอขวดเป็นวีโอไอพีที่บูทไฟล์มันทั้งหมด, โหลดอึทุกชิ้น, รวบรวมสบู่ api และจากนั้นในที่สุดจำได้ว่าฉันได้ร้องขอ, ดึงข้อมูล, ประเมิน, รวบรวม มันเป็นรูปแบบที่ร้องขอตรวจสอบรูปแบบแล้วส่งออกผ่านการเชื่อมต่อสบู่ .... ตรวจสอบตรวจสอบตรวจสอบตรวจสอบตรวจสอบอีกครั้งดี ... แต่มันช้าเกินไป มันจะเริ่มต้นได้ดี แต่จะต้องเร่งความเร็วในบางครั้ง
Tschallacka

แคชดั้งเดิมของ Magento จะช่วยคุณในการรวมไฟล์ปรับแต่งและคุณสามารถใช้คอมไพเลอร์เพื่อเร่งโค้ด อีกทั้งตัวเร่งความเร็ว PHP ( en.wikipedia.org/wiki/PHP_accelerator ) ก็ช่วยเพิ่มประสิทธิภาพของคุณได้ที่นี่ แต่ในกรณีของคุณมันอาจคุ้มค่าที่จะดูการสร้าง API ของคุณเองที่ใช้ Magento core api
Sander Mangel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.