Communication and interaction between microservices

Thesis title: Vzájemná interakce a komunikace mikroslužeb v Javě
Author: Charalambidis, Nikolas
Thesis type: Diplomová práce
Supervisor: Pavlíčková, Jarmila
Opponents: Říha, Jan
Thesis language: Česky
Abstract:
Diplomová práce je zaměřena na různé typy vzájemné komunikace mikroslužeb z hlediska popisu, vlastní implementace, implementace odolnosti, integrace a konfigurace komunikačních systémů. Úvodní část práce identifikuje klíčové aspekty architektury mikroslužeb a přináší různé úhly pohledu na problematiku z hlediska technického i business zaměření. Práce dále představuje způsob implementace a kontejnerizace jednoduché mikroslužby včetně centrálního registru a detekce mikroslužeb a API brány. Práce je poté rozdělena na tři tematické kapitoly dle typů komunikace, tj. synchronní, a asynchronní komunikace s jedním a více konzumentů. Všechny tyto tři kapitoly přináší návrh případu užití tohoto typu komunikace, jeho specifika v oblasti mikroslužeb a způsob technické realizace včetně zajištění odolnosti na základě vzorů architektury mikroslužeb a krátké shrnutí poznatků. V rámci těchto kapitol jsou stručně představeny a porovnány messagingové systémy a platformy použité pro realizační část práce, a to zástupce AMQP protokolu RabbitMQ a streamovací platformy Apache Kafka. V závěru jsou shrnuty poznatky z celé práce a menších souhrnů klíčových tří kapitol včetně vytyčení problematických částí a možných rozšíření práce.
Keywords: Java; Mikroslužby; Messaging; Producent; AMPQ; RabbitMQ; Konzument; Publisher; Subscruber; Zpráva; Apache Kafka; Redis; Spring; NetflixOSS; Integrace
Thesis title: Communication and interaction between microservices
Author: Charalambidis, Nikolas
Thesis type: Diploma thesis
Supervisor: Pavlíčková, Jarmila
Opponents: Říha, Jan
Thesis language: Česky
Abstract:
This diploma thesis is focused on the various types of inter-communication of microservices in terms of description, services and resiliency implementation, integration, and message systems configuration. The introductory part of this thesis identifies the key aspects of the microservices architecture and comes with both technical and business point of views. Then, follows the description of the implementation and containerization of a sample microservice, service registration and discovery, and API gateway. This thesis, thereafter, is divided into three thematic chapters based on the types of communication, i.e. synchronous, asynchronous with one and more consumers. All these chapters provide a sample use-case design based on each communication type followed by a comprehensive description of its solution and a short summary. The solution itself focuses on both technical and resiliency implementations based on the resiliency principles derived from the microservices architecture. Within these three chapters, there are messaging systems and platforms used for the communication between one or more microservices. They are briefly introduced and mutually compared. Namely, they are RabbitMQ, a representative of the AMQP protocol, and Apache Kafka, a streaming platform. The conclusion summarizes the findings of the whole thesis, the short summaries of the three key chapters, and highlights the problematic parts of the design, implementation and resiliency. Finally, possible extensions of the thesis are offered.
Keywords: Apache Kafka; Redis; Integration; Java; Producer; Messaging; Consumer; Publisher; Spring ; Microservices; Subscriber; Message; AMPQ; RabbitMQ; NetflixOSS

Information about study

Study programme: Aplikovaná informatika/Informační systémy a technologie
Type of study programme: Magisterský studijní program
Assigned degree: Ing.
Institutions assigning academic degree: Vysoká škola ekonomická v Praze
Faculty: Faculty of Informatics and Statistics
Department: Department of Information Technologies

Information on submission and defense

Date of assignment: 30. 5. 2019
Date of submission: 3. 5. 2020
Date of defense: 4. 6. 2020
Identifier in the InSIS system: https://insis.vse.cz/zp/69890/podrobnosti

Files for download

    Last update: