REST'i atarak, HATEOAS'tan çok daha fazlasını kaybedersiniz. Mikro hizmetleriniz herkese açıksa (ve herkese açık olmaları veya en azından bir gün halka açık olmaları iyi bir fikirdir), REST ve SOAP dışında bir şey kullanmak sorun yaratır:
Bazı geliştiriciler AMQP'yi hiç kullanmadı,
Bazıları AMQP kullandı, ancak çoğu zaman REST ve SOAP'ı daha iyi biliyorlar,
Bazı diller için AMQP kütüphaneleri özellikle kolay değildir,
Hizmetle manuel deneme çok sınırlıdır: Amazon S3'e herhangi bir istekte bulunmak için CURL'u kullanabilirim; S3 AMQP varyantı ile oynamak istiyorsam makineme ne yüklemeliyim ?
REST ve SOAP hata ayıklamak kolaydır. Sadece HTTP değişimlerini takip edip analiz ediyorum. AMQP borsalarında hata ayıklamak için hangi araçları kullanmam gerektiğinden emin değilim.
AMQP harika, ancak olaylara dayalı borsaların çok özel bir amacı için yapılır. AMQP ile RPC yapmak teknik olarak mümkün olsa da, birincil amacı bu değildir.
Asenkron yönü de önemlidir. Bazen bir avantajdır: Sunuculara istek yaparken bir uygulamanın kullanıcı arayüzünü engellemek istemiyorum. Bazen, işleri olması gerekenden daha zor hale getirir: Amazon S3'ten bir dosya yedeklemesini kurtarmam gerekirse, yerel olan bozuk olduğundan ve daha sonra yedeklemeyi geri yüklersem, toplu iş dosyamın devam etmeden önce işini bitirmek için CURL'a ihtiyacı vardır, ve senkronize bir işlem (belirli bir zaman aşımı ile) mükemmel bir anlam ifade eder.
Birincil işlemler için REST'i saklayın:
Ürün almak,
Fatura saklamak,
ve mesajlaşmanın gerçekten mantıklı olduğu görevler için AMQP'yi kullanın:
Eylül ayından itibaren tüm faturaları işleme koyup rapor gösterilmeye hazır olduğunda uygulamayı bilgilendirin (işlemin genellikle iki ila on dakika sürdüğü göz önüne alındığında),
AMQP'nin burada yararı asenkron yönüdür. On dakika bekleyen bir HTTP isteğinin zaman aşımına ve diğer sorunlara neden olma olasılığı yüksektir.
Destek personeli, veritabanı yöneticileri, izleme ekibi, bu veritabanını kullanan uygulamanın geliştiricileri vb. Gibi yedeklerin ilgilendikleri herkese bozuk olduğu bilgilerinin gönderilmesi.
AMQP'nin faydası, diğerlerinin yanı sıra, yedekleri izleyen ve bozuk bir tane bulduğunda uyarıyı tetikleyen uygulamayı değiştirmeden aboneleri ekleme yeteneğidir.
¹ Herkese açık bir web hizmetinin, şirket dışındaki kullanıcılar tarafından kullanılması gerekmez. Büyük veya orta ölçekli şirketlerde, hizmetiniz genellikle aynı şirketin diğer bölümleri tarafından kullanılır ve herhangi bir üçüncü tarafın kullanacağı gereksinimlerle aynı gereksinimlere sahiptir: herhangi bir çağrıyı güvensiz hale getirmelidir (bazı erkeklerin asla hizmetinizi kimin aradığını, aynı şirkette çalıştığını duyduğu için güvenlik sorunlarından yararlanamayacağı anlamına gelmez), düzgün bir şekilde belgelenmelidir (çünkü aynı Hintli adam telefon numaranızı mutlaka bilmez ve mutlaka İngilizce biliyorum) vb.