Několik menších služeb snižuje celkovou složitost. V tomto článku uvedeme některé z výhod, kterých bylo dosaženo oddělením aplikací.

broken chain - application decoupling

V architektuře mikroslužeb jsou aplikace sestavovány a nasazovány jako vysoce oddělené a zaměřené služby. Oddělená aplikační architektura umožňuje každé komponentě vykonávat své úkoly nezávisle – umožňuje komponentám zůstat zcela autonomní a neuvědomující si jeden druhého. Změna jedné služby by neměla vyžadovat změnu ostatních služeb. Jde o proces oddělení služeb tak, aby jejich funkčnost byla ucelenější.

Snazší údržba kódu a implementace změn

Menší bloky kódu jsou známé tím, že se snáze spravují a rozumí jim. Vytvořením vaší aplikace jako více propojených služeb se části vaší aplikace mohou vyvíjet nezávisle a každou službu mohou udržovat samostatné vývojářské týmy. to je snazší vzájemné čtení kódu protože nemusíte rozumět celé aplikaci, abyste pochopili, jak funguje malá část vaší aplikace.

Pokud máte oddělený systém, kde potřebujete změnit komponentu, můžete to udělat, pokud API zůstane nedotčeno. Pokud chcete použít jiný backend nebo strukturu databáze, můžete jít. Stačí vyměnit tuto část namísto procházení celého projektu a hledání odkazů a závislostí na staré službě.

Různé části vaší aplikace se mohou vyvíjet nezávisle, pokud je vaše architektura oddělena.

Multiplatformní, různé jazyky a technologie

Různé aplikační služby mají různé potřeby. Možná byste chtěli implementovat své řešení tak, aby různé komponenty běžely na různých platformách nebo byly vytvořeny různými programovacími jazyky nebo technologiemi. Jedna část vaší služby může být vhodnější pro Javu, zatímco jiná část může být vhodnější pro Ruby – můžete si vybrat správný nástroj pro danou práci. Oddělená povaha odesílatele a příjemce může pomoci odstranit jakékoli implementační závislosti mezi nimi.

Nezávislá vydání

V monolitické architektuře (neoddělená architektura) může být nutné nasadit celou aplikaci najednou, což může ovlivnit kritické kroky pro vaši službu. Nechcete, aby se proces registrace přerušil nebo chvíli nereagoval jen kvůli nasazení. Je dobré mít možnost nasadit součásti aplikace samostatně.

Jak oddělit vaši aplikaci

Oddělení mezi službami lze dosáhnout jednoduchým přidáním vrstvy technické abstrakce, jako je fronta zpráv nebo dobře napsané rozhraní, mezi producenta obsahu a spotřebitele obsahu.

ČTĚTE VÍCE
Jaká je nejspolehlivější E87?

Fronty zpráv oddělují vaše procesy. Stačí, aby se odesílatel a příjemce dohodli na společném formátu zpráv a jejich obsahu a aby používali stejného zprostředkovatele zpráv. Když selže část vaší architektury, nemusí s sebou sundat celý systém. Zprávy lze stále přidávat do fronty a zpracovávat je, až se systém zotaví. Pokud se nepodaří zprávu doručit, lze zprávu doručit znovu, dokud nebude zpráva zpracována.

Distribuovaná pracovní zátěž a škálovatelnost

Fronta zpráv usnadňuje škálování oddělené aplikace. Když je rychlost příchozích zpráv vyšší než sazba pro spotřebitele; můžete jednoduše přidat další pracovníky, příjemce, jejichž úkolem je rychleji odpracovat fronty.

Pokud máte webovou aplikaci, můžete nechat tuto webovou aplikaci generovat zprávy v reakci na uživatelské vstupy. Příjemci mohou tyto zprávy načíst a zpracovat a po dokončení vrátit odpověď. Pokud to uděláte tímto způsobem, uživatelské rozhraní může zůstat citlivé. Není blokován, když jsou zprávy zpracovávány asynchronně. Mnoho webových stránek má špičku, kdy aktivita praskla. Velký počet uživatelů webových stránek může náhle generovat velké množství zpráv. Pokud přidáte frontu zpráv mezi odesílatele a příjemce, bude fronta zpráv fungovat jako vyrovnávací paměť a příjemci mohou frontu postupně vyčerpat svým vlastním tempem a návštěvník webu zůstane šťastným návštěvníkem.

Pokud s řazením zpráv začínáte, doporučuji vám přečíst si tento článek o řazení zpráv obecně nebo RabbitMQ pro začátečníky, kde najdete informace o řazení zpráv pomocí RabbitMQ.

Pokud máte nějaké návrhy, dotazy nebo zpětnou vazbu, napište nám na adresu contact@cloudamqp.com.