Soru : Bir Ağ Geçidi ve diğer tüm ilgili hizmetleri çalıştırmadan yalnızca mikro hizmetim üzerinde nasıl çalışabilirim?
Cevap : Tıpkı Üretimde olduğu gibi
Tamam, bu arsız bir cevap. Üretimde bir Ağ Geçidiniz var ve diğer tüm hizmetlere sahipsiniz. Bununla demek istediğim şudur: servisiniz bunların hiçbirini bilmiyor. Bir Geçidin parçası olduğunu bilmiyor. Tıpkı diğer tüm GraphQL sunucuları gibi, sorgulara nasıl yanıt verileceğini bilir. Bunu bir seferde bir adım atalım ve size ne demek istediğimi gösterebilirim:
Aşağıdaki süper basit Kullanıcılar hizmet şemasını varsayalım:
Ve başka bir Filmler hizmetiniz var:
Ve şimdi kullanıcının en sevdiği filmi eklemek istiyorsunuz.
Uyarı : Her
favoriteMovieiki hizmete de eklenebilir. Gerçek hayatta, Film Hizmetine ait olmak muhtemelen daha mantıklı olurdu, ama bu sana öğretmek istediğim şeye de uymadı, bu yüzden elde ettiğin şey bu.
1. Adım: Filmi birleştirilebilir yapın (birleştirilebilir mi?):
Film için bir arama anahtarı eklememiz gerekiyor:
Adım 2: FavoriteMovie'yi kullanıcıya ekleyin:
Burada kullanıcının en sevdiği filmi ekliyoruz ve aynı zamanda Film türünü de ekliyoruz.
Harika! Artık tüm dünyayı (bir Apollo Geçidi, Kullanıcılar hizmeti ve Filmler hizmeti) döndürüp bu şeyi test edebiliriz. Ağ Geçidine çağrı yapabilirsiniz ve her şeyi vekalet eder ve hepsini bir araya getirir:
Şimdi bunu yapacaksın ve bu şekilde şeyler inşa edeceksin. Son.
…
…
…
…
…
…
…
TAMAM MI. Şikayetimin olduğu yer burası. Bu makale bununla ilgili. Buradaki sorun, artık mikro hizmetlerde düşünmemenizdir . Dağıtılmış bir monolite karşı inşa ediyor ve gelişiyorsunuz. Mikro hizmetlerin tek başına çalışması amaçlanmıştır ve bir mikro hizmete karşı geliştirme, başka bir hizmete karşı DEĞİL, bir sözleşmeye karşı geliştirme yapmanız gerektiği anlamına gelir.
Kimin umurunda? Bu çalışıyor
TAMAM MI. Belki bugün işe yarar. Belki hiç aldırmazsın. Ama size şunu söyleyebilirim ki çoğu insan için takım büyüdükçe aklınıza gelir. Bir gün birisi yapıyı bozacak. Birisi Apollo Gateway sunucunuzu veya diğer hizmetlerinizden birini bozacak ve takılıp kalacaksınız, çalışamayacaksınız çünkü dev bir birleştirmeyi yeni bitirdiniz ve geri dönmek istemiyorsunuz. Şimdi bekle.
Daha iyi bir yol var.
docker-compose downve bir şeyler deneyelim. Güven Bana.
Kullanıcılarınızın hizmetini başlatın. Kullanıcı hizmetini aktif olarak oluşturuyorsanız, API'sini kullanabilmeniz gerekir:
Filmde isteyebileceğiniz tek alan
id, sahip olduğunuz her şey olduğu için. Bu sizin sözleşmeniz ve SADECE sözleşmenize karşı çalışmak harika.
Hepsinin Ağ Geçidi üzerinden bağlandığını zaten test ettiniz. Artık bunu yapmaya devam etmenize gerek yok. Kullanıcı servisi üzerinde çalışıyorsunuz. Diğer alanlar artık "yok".
Şimdi kullanıcı hizmetini kapatın ve film hizmetini başlatın. Şunlardan birini sorgulayalım:
Harika!
Ama bekle, kontratından daha fazlası var, değil mi? Buradasın çünkü test etmen ve
__resolveReferenceyöntemlerinin işe yarayıp yaramadığından ve her şeyin iyi oynayacağından emin olmalısın , değil mi? Cevabıma geri dönelim:
Peki, prodüksiyon ne işe yarar? İsteğiniz, kullanıcıların hizmetine çağrı yapan Apollo Gateway aracılığıyla gelir:
Ve sonra bununla döner
user.favoriteMovie.idve film hizmetinize şu çağrıyı yapar:
aşağıdaki değişkenlerle
Artık bu aramaları yapabilirsiniz. "Sadece" kendinize
_entitiesseslenin ve istediğiniz değerleri isteyin.
Son
Bir Proje Yöneticisi olarak birçoğumuz, mühendislerden yeni bir fantezi özelliği istemeye ve "Yapabiliriz, ancak asırlar alacak: yekpare" şeklinde rezil bir yanıt alma deneyimine sahibiz. Bu tek parçaya elimizden geldiğince az dokunarak ve yine de biraz değer katarak nasıl en verimli olacağımızı anlamaya çalışmak için çok zaman harcardık.
Geçenlerde GraphQL hakkında bir teknoloji konuşması yaptım ve eski yekpare uygulamaların kullanımdan kaldırılmasına yönelik stratejiler ve GraphQL'nin bu bağlamda kullanılıp kullanılamayacağı hakkında bir soru aldım. Bunun harika bir soru olduğunu düşündüm ve işte bu makaleyi yazıyorum.
Altı yıl sonra ilk kez geri döndüm. Bunu ne kadar zamandır beklediğimi size anlatamam.
Yapay Zekaya Giriş Yapay Zeka (AI), endüstrilerde devrim yaratma, yaşama ve çalışma şeklimizi değiştirme ve topluma sayısız fayda sağlama potansiyeline sahip, hızla gelişen bir teknolojidir. Ancak, her yeni teknolojide olduğu gibi, dikkate alınması gereken etik hususlar da vardır.
Bir süredir Cillian Murphy'nin çalışmalarının hayranıyım. Amerika Birleşik Devletleri'ndeki popülaritesindeki patlamadan çok önce İngiliz ve İrlanda film sahnesinde bir isim yaptı.
Bir keresinde kocam çöplerimizi karmaşık çöp bidonumuza götürürken, dost canlısı, kayıp bir kedi yavrusuyla karşılaştı. Onu eve götürmeye ve ardından sahibini bulmaya karar verdi - ta ki kadın miyavlayana kadar.