- Building Microservices with .NET Core
- Gaurav Kumar Aroraa Lalit Kale Kanwar Manish
- 374字
- 2021-07-02 22:08:15
Communication between microservices
In the preceding section, we separated our Order module into Order Services and discussed how we can break down the foreign key relationship between ORDER and PRODUCT tables.
In a monolithic application, we have a single repository that queries the database to fetch the records from both ORDER and PRODUCT tables. However, in our upcoming microservice application, we will segregate repositories between Order Service and Product Service. With each service having its respective database, each one would access its own database only. Order Service would only be able to access order Database, whereas Product Service would be able to access product Database only. Order Service should not be allowed to access product Database and vice versa. Refer to the following image:

In the preceding figure, we see that our UI is interacting with Order Service and Product service via API gateway. Both the services are physically separated from each other and there is no direct interaction between these services. Communication performed in this manner is also referred to as communication that is based on the API Gateway Pattern.
The API gateway is nothing but a middle tier via which the UI can interact with the microservices. It also provides a simpler interface and makes the process of consuming these services simpler. It provides a different level of granularity to different clients as required (that is browser and desktop).
We can say that it provides coarse-grained APIs to mobile clients and fine-grained APIs to desktop clients, and it can use a high-performance network underneath its hood to provide some serious throughput.
The definition of granularity from wiki:
Coarse-grained systems consist of fewer, larger components than fine-grained systems; a coarse-grained description of a system regards large subcomponents while a fine-grained description regards smaller components of which the larger ones are composed.
- Vue.js 3.0源碼解析(微課視頻版)
- JavaScript前端開發與實例教程(微課視頻版)
- Learning Python Design Patterns(Second Edition)
- Python機器學習:手把手教你掌握150個精彩案例(微課視頻版)
- Spring Boot Cookbook
- Teaching with Google Classroom
- Learning Unity 2D Game Development by Example
- Swift 4 Protocol-Oriented Programming(Third Edition)
- Kotlin開發教程(全2冊)
- Qt5 C++ GUI Programming Cookbook
- 人工智能算法(卷1):基礎算法
- Building Dynamics CRM 2015 Dashboards with Power BI
- Instant Zurb Foundation 4
- WildFly Cookbook
- Eclipse開發(學習筆記)