Ön Söz
Workerman, yüksek performanslı PHP uygulama konteyneri
Workerman nedir?
Workerman, tamamen PHP ile geliştirilmiş açık kaynaklı yüksek performanslı bir PHP uygulama konteyneridir.
Workerman, tekerleği yeniden icat etmek değildir; bir MVC framework değildir, daha temel ve genel bir hizmet framework’üdür. Bununla TCP proxy, VPN, oyun sunucusu, e-posta sunucusu, FTP sunucusu geliştirebilir, hatta bir PHP versiyonunda Redis, PHP versiyonunda bir veritabanı, PHP versiyonunda Nginx, PHP versiyonunda PHP-FPM vb. geliştirebilirsiniz. Workerman, PHP alanındaki bir yenilik olarak, geliştiricilerin PHP’nin sadece WEB ile sınırlı olma kısıtlamasını tamamen ortadan kaldırmıştır.
Gerçekten de Workerman, PHP versiyonunda bir Nginx gibidir; çekirdek olarak çoklu işlem + Epoll + bloklamayan IO kullanır. Workerman’ın her bir işlemi on binlerce eşzamanlı bağlantıyı sürdürebilir. Kendisi bellekte sürekli olarak çalıştığı için Apache, Nginx, PHP-FPM gibi konteynerlere bağımlı değildir ve olağanüstü bir performansa sahiptir. Aynı zamanda TCP, UDP, UNIXSOCKET’ı destekler, uzun bağlantıları destekler, Websocket, HTTP, WSS, HTTPS gibi iletişim protokolleri ile çeşitli özelleştirilmiş protokolleri destekler. Zamanlayıcı, asenkron socket istemcisi, asenkron Redis, asenkron Http, asenkron mesaj kuyruğu gibi birçok yüksek performanslı bileşeni vardır.
Workerman’ın bazı uygulama alanları
Workerman, geleneksel MVC framework’lerinden farklıdır; yalnızca Web geliştirmeleri için değil, aynı zamanda daha geniş uygulama alanları da vardır. Örneğin anlık iletişim, nesnelerin interneti, oyun, hizmet yönetimi, diğer sunucular veya ara yazılımlar gibi bu alanlar, PHP geliştiricilerinin vizyonunu büyük ölçüde artırır. Şu anda bu alanlardaki PHP geliştiricileri kıt durumdadır; PHP alanında kendi teknik avantajlarınızı elde etmek, günlük CRUD işlerinden memnun kalmamak veya mimar ya da teknik uzmanlık alanında ilerleme kaydetmek istiyorsanız, Workerman öğrenmeye değer bir framework’tür. Geliştiricilerin yalnızca kullanmayı değil, aynı zamanda Workerman’a dayalı kendi açık kaynak projelerini geliştirebilmeleri önerilir; bu becerilerini artırır ve kendi etkilerini artırır, örneğin Beanbun çoklu işlem ağ tarayıcı framework’ü oldukça iyi bir örnek; kısa sürede birçok olumlu geri dönüş aldı.
Workerman’ın bazı uygulama alanları şunlardır:
-
Anlık İletişim
Örneğin web tabanlı anlık sohbet, anlık mesaj iletimi, WeChat küçük programları, mobil uygulama mesaj iletimi, PC yazılımı mesaj iletimi vb.
[Örnek workerman-chat sohbet odası , web mesaj iletimi , küçük kurbağa sohbet odası] -
Nesnelerin İnterneti
Örneğin Workerman’ın yazıcılarla iletişimi, mikrodenetleyicilerle iletişimi, akıllı bileklik, akıllı ev, ortak bisiklet vb.
[Müşteri örnekleri: 易联云, 易泊时代 vb.] -
Oyun Sunucuları
Örneğin masa oyunları, MMORPG oyunları vb. [Örnek browserquest-php] -
HTTP Hizmetleri
Örneğin yüksek performanslı HTTP arayüzleri yazmak, yüksek performanslı web siteleri. Eğer HTTP ile ilgili bir hizmet veya site yapmak istiyorsanız, webman şiddetle tavsiye edilir. -
SOA Servisleştirme
Workerman kullanarak mevcut işin farklı fonksiyon birimlerini paketleyip, hizmet formunda dışarıya tek bir arayüz sağlamak; sistemin düşük bağlılık, kolay bakım, yüksek kullanılabilirlik ve kolay ölçeklenebilirlik hedeflerini taşır. [Örnek workerman-json-rpc, workerman-thrift] -
Diğer Sunucu Yazılımları
Örneğin GatewayWorker, PHPSocket.IO, http proxy, sock5 proxy, dağıtım iletişim bileşeni, dağıtım değişken paylaşım bileşeni, mesaj kuyruğu, DNS sunucusu, WebSunucu, CDN sunucusu, FTP sunucusu vb. -
Bileşenler
Örneğin asenkron redis, asenkron http istemcisi, nesnelerin interneti mqtt istemcisi, mesaj kuyruğu workerman/redis-queue , workerman/stomp, workerman/rabbitmq , dosya izleme bileşeni, daha birçok üçüncü taraf geliştirilmiş bileşen framework’ü vb.
Açıkça geleneksel MVC framework’lerinin yukarıdaki işlevleri gerçekleştirmesi oldukça zordur; bu nedenle Workerman’ın doğuş nedeni budur.
Workerman Felsefesi
Son derece basit, kararlı, yüksek performanslı, dağıtık.
Son Derece Basit
Küçük güzeldir; Workerman çekirdeği son derece basittir, sadece birkaç PHP dosyasından oluşur ve yalnızca birkaç arayüz sunar; öğrenmek oldukça kolaydır. Tüm diğer işlevler bileşenler aracılığıyla genişletilir.
Workerman, kapsamlı belgeler + yetkili ana sayfa + aktif topluluk + birçok bin kişilik QQ grubu + çok sayıda yüksek performanslı bileşen + çok sayıda örnek ile geliştiricilerin kullanımını daha verimli hale getirir.
Kararlı
Workerman birkaç yıldır açık kaynaklıdır ve birçok halka açık şirket tarafından büyük ölçekle kullanılmaktadır; son derece kararlıdır. Bazı hizmetler iki yıldan fazla süredir yeniden başlatılmadan hızlı bir şekilde çalışmaya devam ediyor. Core dump yok, bellek sızıntısı yok, hata yok.
Yüksek Performans
Workerman bellek üzerinde kalıcıdır, apacng/nignx/php-fpm gibi kesin bir bağımlılığı yoktur. PHP’yi konteyner ile iletişimde tutmanın maliyetini yok eder; her isteğin her şeyi başlatıp, yok etme maliyetini ortadan kaldırır; bu, olağanüstü bir performans sağlar. Geleneksel MVC framework’leri ile karşılaştırıldığında, performansı onlarca kat daha yüksektir; PHP7 altında ab baskı testinde QPS, bağımsız bir Nginx’ten bile daha yüksektir.
Dağıtık
Artık tek başına çalışma dönemi geçmiştir; tek bir sunucunun performansı ne kadar güçlü olursa olsun sınırlıdır; dağıtık çoklu sunucu dağıtımı en iyi yoldur. Workerman, uzun bağlantı dağıtık iletişim için doğrudan bir set sunmaktadır GatewayWorker framework’ü; sunucuyu eklemek için yalnızca basit bir yapılandırma yeterlidir ve ardından başlatabilirsiniz; iş kodu sıfır değişiklikle çok kat artar. Eğer TCP uzun bağlantı uygulamaları geliştiriyorsanız, doğrudan GatewayWorker kullanmanızı öneririm; bu Workerman’ın bir sarfıdır ve uzun bağlantı uygulamaları için daha zengin arayüzler ile güçlü dağıtım işleme yetenekleri sunar.
Bu kılavuzun kapsamı
Workerman 3.x - 5.x sürümleri
Windows kullanıcıları (mutlaka okunmalıdır)
Workerman hem Linux hem de Windows sistemlerini destekler. Windows sürümü Workerman, herhangi bir eklentiye bağımlı değildir, yalnızca PHP ortam değişkenlerini yapılandırmak gerekmektedir; Windows sürümü Workerman kurulumu ve dikkate alınması gereken hususlar için Windows kullanıcılarına dikkat.
İstemci
Workerman’ın iletişim protokolü açıktır ve özelleştirilebilir; bu nedenle, teorik olarak Workerman, herhangi bir protokolü kullanan herhangi bir platformun istemcisi ile iletişim kurabilir. Kullanıcılar istemci geliştirirken, ilgili iletişim protokolüne göre sunucu ile iletişimi tamamlayabilirler.