Macenta sabunu v1 hızlandırın


10

Deneyimli magento geliştiricileri için birden fazla sorum var:

  1. Magento v1 sabun api hızını artırmak mümkün mü? Veri talep ederken, magento'nun müşteri adresi vb. Gibi basit bilgileri derlemesi 1,5 saniyeye mal olur ...

    Birden fazla olası ilgili veri düğümü istemek yaklaşık 5-7 saniyeye mal olabilir.

    Şimdi zaten AJAX istekleri aracılığıyla bu istekleri yapıyorum böylece sayfa arayüzü hızla yüklenir, ancak bir hız iyileştirme iyi olurdu.

  2. Ya da bana doğrudan magento db'den ilgili bilgileri vermek için kendi başvurumu yazmak daha iyi olur mu? Bu bir db karmaşık değil ve doğrudan bir sorgu yaparsanız sonuçları ile bir saniyenin 100th içinde yükler ...

    Bu seçenek ile sahip olduğum tek dikkate:

    1. Magento veritabanı düzenini günceller ve değiştirirse ne olur?
    2. Yoksa magento'nun veritabanı kurulumu nispeten güvenli / aşağı doğru uyumlu mu?

Herkes bu ve onun başarı veya başarısızlık hikayeleri ile herhangi bir deneyimi var mı? Nasıl ilerleyeceğimizi bilmek için bilinçli bir karar vermeliyim.


1
Muhtemelen PHP bağlı, MySQL, Nginx veya başka bir şey değil . Mağazanızın geri kalanıyla aynı. Mağazanızı hızlı hale getirin ve API onu takip edecektir. Ancak, hiçbir zaman hızlı aydınlatma yapmayacak - dataflow / API yöntemleri ne olursa olsun yavaştır, bu nedenle özel uygulamalar her zaman yönetilebilirlik / uygulama süresi / yükseltilebilirlik pahasına daha iyi performans gösterecektir.
Ben Lessani - Sonassi

3
hayır, php bağlı değil ... şeyleri inanılmaz derecede yavaşlatan tüm magento kurulumu. Bir sabun api isteğinin tamamlanması, birden fazla ürün ve alışveriş sepeti içeren büyük bir mağaza görünümü sayfası istemekten daha uzun sürer. Magento tasarımında bir şey çarpık.
Tschallacka

Yanıtlar:


8

Tam olarak bu konuyla kapsamlı bir şekilde karşılaştım ve sadece Magento nesneleriyle doğrudan çalışarak bu sorunu çözdüm. Ben kod değişiklikleri endişe olduğunu düşünüyorum ve ne tarif değil, ama benim kodun çoğu eski veri, böyle şeyler yüklemek için tek kullanımlık komut dosyaları, bu yüzden küçük bir endişe oldu. Magento nesneleriyle doğrudan çalışmak da içselleri sadece SOAP API ile yaptığımdan biraz daha fazla öğrenmemin yan faydasına sahipti - kesin olarak daha dik öğrenme eğrisi, ama neler olduğu hakkında biraz daha bilgili hissediyorum orada sadece hiç SOAP API kullanarak sıkışmış olsaydı.

Denediğimiz başka bir seçenek de Memcached kullanarak verileri önbelleğe almaktı (Ya da Redis gibi bir şey de işe yarayacaktı), ancak şimdi önbelleği ne sıklıkta güncelleyeceğiniz, nerede ve ne gibi şeyler hakkında endişelenmeniz gerekiyor. Ancak, verileri çok daha hızlı bir şekilde alma hedefine ulaşır. Bunun iyi bir seçenek olup olmadığının tam olarak ne yapmaya çalıştığınıza bağlı olacağını düşünüyorum.


Eğer eflatun kendisinden bir şey yapacak olsaydım, çok hızlı bir kazanç elde edemezdim çünkü eflatun hala talebi karşılamak için "önyükleme" gerekir. Ben sabun api seviyorum çünkü "değişmez" ama ben sorguları en basit cevap o kadar dayanılmaz yavaş gerçeğinden nefret ediyorum. çok daha fazla talebi karşılaması gereken ana site bile çok daha hızlıdır.
Tschallacka

Yapmaya çalıştığım magento'yu ERP yazılımımıza bağlamak, bu yüzden herhangi bir zamanda en son verilere erişmem gerekiyor.
Tschallacka

1
Belki de - benim durumumda, siparişi arttırarak bir sipariş yükleyecek, sonra verilerine dayanarak bazı eylemler gerçekleştirecek şeyler yazıyordum. Tam bir siparişin yüklenmesi, SOAP API'sinde yaklaşık 1,5 saniye veya "ham nesne" biçiminde bir saniyenin küçük bir kısmıydı. Tek bir seferde yüzlerce tanesini yüklediğimde seçimim netti. Başka bir kısıtlama da, "magento app" tarzı yaparak aynı sunucuda olması gerektiğidir. Benim durumumda, bunu hiç umursamadım, ama hatırlamaya değer.
Mike

1
Her şeyi ham nesne formunda nasıl yüklediniz?
Tschallacka

$order = Mage::getModel('sales/order')->load($order_id);, temelde. Bu forum dizisinde daha fazlasını gösteren bir pasaj var: magentocommerce.com/boards/viewthread/18629
Mike

6

SOAP api hızlandırmak zor olacak. Her zaman bazı ekstra donanımlar (daha hızlı MySQL sunucusu) atabilir veya NginX'te mağazayı çalıştırabilirsiniz; Önbellekleme, çoğu çağrının yanıtı her seferinde farklılık gösterecek kadar yardımcı olmaz.

Magento Core modellerini kullanarak kendi API'nizi sıfırdan oluşturmak en hızlı çözüm olabilir, çünkü yalnızca tam olarak ihtiyacınız olanı yükleyerek performansı artırmak için kodu değiştirebilirsiniz. Çekirdek sınıfları kullanma deneyimimden, sürüm 1.5 ve 1.7 arasında çok fazla değişmediğini varsayalım

Düzenleme: Unuttum, küçük bir hızlı kazanmak htaccess veya php.ini dosyasında gzip çıktı sıkıştırma açarak ya da eğer MySQL veritabanı değilse SOAP api aynı veritabanını kullanarak başka bir sunucuya taşımak geliyor olabilir darboğaz


1
mysql veritabanı şişe boynu değil, şişe boynu tüm yapılandırma dosyalarını önyükleyen, her bok parçasını yükleyen, sabun api derleyen ve sonunda bir istekte bulunduğumu, bu verileri getirdiğini, değerlendirdiğini, derlediğini eflatun istenen biçime, biçimi doğrulamak ve sonra sabun bağlantısı üzerinden çıktı .... Kontrol çift kontrol güzel kontrol edin ... ama çok yavaş. Başlangıçta iyi olacak, ancak bir zamanda hızlanması gerekecek.
Tschallacka

Magento'nun yerel önbelleği, yapılandırma dosyalarını birleştirmede size yardımcı olacaktır ve kodu hızlandırmak için derleyiciyi kullanabilirsiniz. Ayrıca bir PHP hızlandırıcısı ( en.wikipedia.org/wiki/PHP_accelerator ) burada performansınızı artıracaktır. Ancak sizin durumunuzda, Magento çekirdek API'sini kullanan kendi API'nizi oluşturmaya bakmak faydalı olabilir.
Sander Mangel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.