- Mastering Microservices with Java 9(Second Edition)
- Sourabh Sharma
- 321字
- 2021-07-02 21:54:41
Services design
The following third design depicts the microservices. Here, each component represents autonomy. Each component could be developed, built, tested, and deployed independently. Here, even the application User Interface (UI) component could also be a client and consume the microservices. For the purpose of our example, the layer designed is used within μService.
The API Gateway provides the interface where different clients can access the inpidual services and solve the following problems:
What do you do when you want to send different responses to different clients for the same service? For example, a booking service could send different responses to a mobile client (minimal information) and a desktop client (detailed information) providing different details, and something different again to a third-party client.
A response may require fetching information from two or more services:

After observing all the sample design diagrams, which are very high-level designs, you might find out that in monolithic design, the components are bundled together and tightly coupled.
All the services are part of the same bundle. Similarly, in the second design figure, you can see a variant of the first figure where all services could have their own layers and form different APIs, but, as shown in the figure, these are also all bundled together.
Conversely, in microservices, design components are not bundled together and have loose coupling. Each service has its own layers and DB, and is bundled in a separate archive. All these deployed services provide their specific APIs such as Customers, Bookings, or Customer. These APIs are ready to consume. Even the UI is also deployed separately and designed using μService. For this reason, it provides various advantages over its monolithic counterpart. I would still remind you that there are some exceptional cases where monolithic application development is highly successful, such as Etsy, and peer-to-peer e-commerce web applications.
Now let us discuss the limitations you'd face while working with Monolithic applications.
- Boost程序庫(kù)完全開發(fā)指南:深入C++”準(zhǔn)”標(biāo)準(zhǔn)庫(kù)(第5版)
- 信息可視化的藝術(shù):信息可視化在英國(guó)
- MongoDB for Java Developers
- Java 9 Programming Blueprints
- C#程序設(shè)計(jì)(慕課版)
- Mastering Python High Performance
- C++新經(jīng)典
- Java實(shí)戰(zhàn)(第2版)
- TMS320LF240x芯片原理、設(shè)計(jì)及應(yīng)用
- 響應(yīng)式Web設(shè)計(jì):HTML5和CSS3實(shí)戰(zhàn)(第2版)
- 移動(dòng)增值應(yīng)用開發(fā)技術(shù)導(dǎo)論
- Penetration Testing with the Bash shell
- Visual Basic 程序設(shè)計(jì)實(shí)踐教程
- Java并發(fā)實(shí)現(xiàn)原理:JDK源碼剖析
- PHP動(dòng)態(tài)網(wǎng)站開發(fā)實(shí)踐教程