0 (212) 212 10 34

Blog

Yüksek Hacimli C2C Pazaryeri Yazılımının İhtiyaçları Nelerdir?

Yüksek Hacimli C2C Pazaryeri Yazılımının İhtiyaçları Nelerdir?

 

Firmamızla iletişim kuran ve projeleri için yatırım gücü bulunan bazı yeni girişimciler, c2c pazaryeri eticaret sitesi kurmak istediklerini ancak c2c yazılımının performans olarak trendyol, n11, hepsiburada gibi milyonlarca ürünün yüklenebileceği ve anlık binlerce müşterinin siteyi ziyaret etmesi durumunda, c2c yazılımının bu yükü kaldırabilecek bir yapıda hazırlanmasını istediklerini iletmektelerdir. Bu yazımızda, yüksek adette ürün ve ziyaretçi kapasitesine sahip c2c eticaret siteleri için olmazsa olmaz teknolojilerin neler olduğunu detaylı bir şekilde anlatmaya çalışacağız.

Yüksek teknolojiler hariç olmak üzere trendyol gibi site kurmak hakkında daha önce yapmış olduğumuz maliyet analizi adlı yazımızı okumak için sıfırdan c2c pazaryeri yazılım maliyeti yazımızı inceleyebilirsiniz.

C2C Pazaryeri E-Ticaret Siteleri Neden Gelişmiş Teknolojilere İhtiyaç Duyar?

 

C2C pazaryeri iş modelinde, çok sayıdaki satıcının bir taraftan siteye ürün yükleme ve güncelleme işlemleri yaparken diğer taraftan yüksek sayıda ziyaretçinin aynı anda sitede işlem yapılabilesi için hem c2c yazılım alt yapısında, hem de sunucu yapılandırmasında önemli geliştirmeler yapmak gerekmektedir.

Aşağıda özetle sunulan geliştirmeler, ürün adedi ve ziyaretçi adedi artıkça sürekli olarak ilave sunucu ve yazılım destekleri ile geliştirilmesi gereken süreçlerdir.

1- Load Balancer (Yük Dengeleyici)

Yukarıdaki görselde özetlendiği üzere, c2c pazaryeri eticaret sitesini ziyaret etmek isteyen müşterilerin en müsait sunucuya yönlendirilmesini sağlayan sistemdir.

Siteye yüksek adette ziyaretçinin gelmesi durumunda Load Balancer sunucusu, kendisine bağlı çalışan sunucuların iş yüklerini kontrol eder ve hangi sunucu daha müsait ise ziyaretçiyi o sunucuya yönlendirir.

Yük dengeleyici sistemi önde bulunan 1 dengeleyici sunucu ve bu sunucunun arkasında yer alan minimum iki adet sunucu ile sağlanabilmektedir. Arkada yer alan iki adet sunucu birbirinin aynı özelliklerine sahip olup, her iki sunucuya da aynı c2c eticaret sitesi kurulur ve birbirine bağlı olarak çalışır.

Bir sunucuya yüklenen ürünler veya alınan siparişler, eş zamanlı olarak diğer sunucuda bulunan siteye de işlenir. İki sitenin birbirine bağlı olarak çalışmasına cluster mimarisi denmektedir.

Cluster mimarisi hakkında daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

https://www.vargonen.com/blog/cluster-mimarisi-nedir/

Load balancer hakkında daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

https://www.turhost.com/veri-merkezi/load-balancer/#serp

2- Rabbit MQ (Kuyruklama Sistemi)

Yüksek hacimli c2c eticaret sitelerinde satıcıların yapmış olduğu sunucuları yoran yüksek adetli ürün işlemleri, müşteri işlemleri ve diğer işlemler sunuculara eş zamanlı fazla yük binmesi sonucu doğurmaktadır. Bu yük sunucunun cevap verme değerlerini aştığında ise önce sitenin yavaşlamasına, daha sonra sitenin kilitlenmesine ve geçici olarak kapanmasına yol açmaktadır.  Bu durumun yaşanmaması için sitedeki pek çok işlemin bir sıraya göre, diğer bir deyişle kuyruklanarak yapılması gerekmektedir. Kuyruklanarak yapılması gereken işlemler aşağıdaki gibidir;

  1. Siteye ürün yükleyen satıcıların ürünlerinin bir sıra dahilinde siteye yüklenmesi için sıraya alınması. Satıcılar ürünlerini siteye aktarırlar ancak sistemin bu ürünleri işleyerek siteye eklemesi sırayla yapılmaktadır.
  2. Satıcıların excel ile ürünlerini dışarı aktarması durumunda, sistem yine bu talebi kuyruğa alır ve sırası geldiğinde satıcının bu talebine cevap verir.
  3. Siteden ürün satın alan müşterilere sistem siparişle ilgili tüm detayları ekleyerek mail gönderir. Aynı mail içeriği eş zamanlı olarak satıcılara da iletilir. Bu mail içeriğinde, alıcı bilgisi, satıcı bilgisi, adresleri, ürünün adı, adedi, fiyatı, kargo fiyatı ve diğer bilgiler bulunmaktadır. Sistem ilgili mail içeriğini hazırlamak için pek çok veri tabanını dolaşır ve bu verileri toplayarak maili hazırlar ve gönderir. Müşterinin vermiş olduğu sipariş içerisinde birden çok satıcının ürünü bulunuyor ise sistem ürünleri satıcılara göre ayırarak birden çok satıcıya mail göndermek durumunda kalır. Eğer çok sayıda kişi aynı anda sitede alışveriş yapıyorsa, bu da binlerce maili sistemin hazırlayarak eş zamanlı olarak göndermesi ihtiyacını ortaya çıkarmaktadır. Bu işlem veritabanı üzerinde ciddi bir yük oluşturmaktadır. Bu nedenle, müşterilerin vermiş olduğu siparişlere ilişkin hazırlanacak olan mailler, yine kuyruğa alınır ve sırayla müşterilere gönderilir.
  4. Satıcıların kargo firmalarının API servislerine göndereceği sipariş bilgileri yine aynı şekilde kuyruğa alınarak iletilir.
  5. Müşterilere ve satıcılara sistem üzerinden gönderilecek SMS’ler de yine kuyruğa alınarak iletilir.

Rabit MQ teknolojisi hakkında detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

https://hakanyalitekin.medium.com/detayl%C4%B1-rabbitmq-anlat%C4%B1m%C4%B1-ve-t%C3%BCm-exchange-t%C3%BCrleriyle-%C3%B6rnekler-docker-net-5-b4fb38c590d9

3- Redis Kullanımı

Redis, en özet anlamıyla sunucunun veritabanında (harddisk kaynağında) tutulan bilgilerin, aynı anda sunucunun RAM (belleğinde) tutulması yönünde yapılan yazılım geliştirmeleridir.

C2C eticaret sitesine yüklenen ürünlerin tüm bilgileri sitenin veritabanına kaydolur. Ancak sitede ürün sayısı artıkça, sitede bulunan filtrelerin müşteri tıklama, filtre üzerinden ürünün rengi, bedeni, kategorisi gibi arama sorgularına cevap verme süresi uzamaktadır. Bununla birlikte siteye çok sayıda ziyaretçi geldiğinde ve siteyi dolaşmaya başladıklarında, sistem müşteriye vermesi gereken cevapları süreki veritabanına sorgu göndererek alır ve müşterinin site üzerinde dolaşırken oluşturduğu sorgulara cevap vermeye çalışır. Ancak veritabanının (MySQL) cevap verme kapasitesi, yüksek ziyaretçi adetlerini karşılamaya yetmediği için bunun yerine daha hızlı cevap verme kapasitesi bulunan RAM’den cevap alınması gerekmektedir. Redis yazılım geliştirmelerine bu nedenle ihtiyaç duyulmaktadır.

Öncelikle RAM’de hangi bilgilerin tutulacağı, bilgilerin hangi formatta RAM’e gönderileceği ve gönderilen verinin nasıl çağırılacağına yönünde mimarinin planlanması gerekmekte olup, sonrasında ilgili bilgiler RAM’e aktarılmaktadır.

Sitedeki ziyaretçilere bilgiler RAM’den gösterilmekle birlikte, sitedeki ürünün fiyatının değişmesi, stoğunun sıfırlanması, açıklama bilgisi veya fotoğrafının değişmesi gibi durumlarda, RAM’deki verinin silinerek, yerine en güncel verinin yazılması gerekmektedir. Aksi taktirde, müşteri ürünü yanlış fiyatla satın alabilir veya gerçekte stoğu bitmiş olan bir ürünü satın alabilir.

Yüzlerce, binlerce satıcının ürün yüklediği ve çok sayıda ziyaretçinin ürün satın aldığı bir c2c pazaryeri sitesinde, ürün bilgilerinin anlık olarak güncellenebilmesi kurgusunun sağlıklı bir şeklide çalışması için güçlü sunucu kaynaklarına ihtiyaç duyulmaktadır.

Redis teknolojisi hakkında detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

http://aristona.github.io/redis-kullanimi-ve-incelikleri

4- Elastic Search

 Sitede arama bölümüne yazılacak kelime ile arama yapıldığında cevabın SQL yerine Elastic Search sisteminden alınmasını sağlayan sistemdir. Yine yüksek adetli ve yüksek ziyaretçiye sahip sitelerde, arama sonuçlarına sistemin verdiği cevaplar ürün adedi ve ziyaretçi adedi arttıkça yavaşlamaya başlar ve belli bir yük sonrasında ise sitede kilitlenmeler yaşanmaktadır.

Bu sorunun yaşanmaması için veriler Elastic Search adı verilen teknikle tutulur ve sistem yapılan sorgulara Elastic Search’de tuttuğu veriler ile cevap verir. Bu teknolojinin verimli sonuçlar üretilebilmesi için verilerin ayrı bir sunucuda tutulması gerekmektedir.

Bir önceki maddede belirtilen verilerin RAM’de tutulması (Redis) işlemine paralel olarak, sitedeki filtre kullanımının cevaplarının da Elastic Search’ten karşılanması ile filtre kullanımında yaşanacak hız probleminin önüne geçilmektedir.

Bununla birlikte sitede değişen ürün fiyatı, stok adedi gibi verilerin anlık olarak Elastic Search’e iletilmesi ve burada tutulan verinin de değiştirilmesi gerekmektedir.

Elastic Search hakkında daha detaylı bilgiye aşağıdaki linkten ulaşabilirsiniz.

https://www.datasciencearth.com/elasticsearch-nedir-ve-neden-kullanilir/

Yukarıda detayları verilen tüm özellikler, projenin büyüme sürecine paralel olarak ilave sunucu eklenmesi ile güçlendirilmesi gereken özelliklerdir. Örnek olarak projenin başlangıcında 1 load balancer, 2 site sunucusu, 1 elastic sunucusu, 1 redis sunucusu ile başlanabilir ve zaman içerisinde ihtiyaçlara paralel olarak sunucular artırılmalıdır.

Bununla birlikte sunucular arasındaki bağlantıların doğru bir şekilde yapılandırılması, c2c  yazılım geliştirmelerin sağlıklı bir şekilde çalışması ve verilerin sunucular arasında doğru bir şekilde aktarımının sağlanması için son derece önemlidir.

C2C yazılımı hakkında daha detaylı bilgi almak için hemen pazaryeri yazılımı konusunda uzman danışmanlarımızla görüşebilir ve c2c eticaret projenizle ilgili olarak ücretsiz danışmanlık hizmetimizden faydalanabilirsiniz.

C2C Yazılım Demo Talebi

    Demomuzu Hemen İnceleyin!

      Call Now ButtonHemen Arayın