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 |