- Mastering Microservices with Java
- Sourabh Sharma
- 342字
- 2021-07-02 13:03:27
Microservices, nanoservices, teraservices, and serverless
The following diagram depicts the microservices design. Here each component is autonomous. 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 the μService.
The API Gateway provides an interface where different clients can access the individual services and solve various problems, such as what to 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 to each, before providing something different again to a third-party client.
A response may require the fetching of information from two or more services:

After observing all the sample design diagrams we've just gone through, which are very high-level designs, you might find that in a monolithic design, the components are bundled together and tightly coupled. All the services are part of the same bundle. Similarly, in the second design diagram, you can see a variant of the first diagram where all services could have their own layers and form different APIs, but, as shown in the diagram, these are also all bundled together.
Conversely, in the microservices design, the design components are not bundled together and have loose couplings. Each service has its own layers and database, and is bundled in a separate archive to all others. All these deployed services provide their specific APIs, such as Customers or Bookings. These APIs are ready to consume. Even the UI is also deployed separately and designed using μServices. For this reason, the microservices provides various advantages over its monolithic counterpart. I would, nevertheless, 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.
- 極簡(jiǎn)算法史:從數(shù)學(xué)到機(jī)器的故事
- PHP動(dòng)態(tài)網(wǎng)站程序設(shè)計(jì)
- Visual C++實(shí)例精通
- Visual C
- Android程序設(shè)計(jì)基礎(chǔ)
- 基于Struts、Hibernate、Spring架構(gòu)的Web應(yīng)用開(kāi)發(fā)
- Android玩家必備
- Python全棧數(shù)據(jù)工程師養(yǎng)成攻略(視頻講解版)
- 基于ARM Cortex-M4F內(nèi)核的MSP432 MCU開(kāi)發(fā)實(shí)踐
- Android嵌入式系統(tǒng)程序開(kāi)發(fā):基于Cortex-A8(第2版)
- Struts 2.x權(quán)威指南
- 深入理解BootLoader
- OpenCV Android開(kāi)發(fā)實(shí)戰(zhàn)
- Python硬件編程實(shí)戰(zhàn)
- 深入淺出 HTTPS:從原理到實(shí)戰(zhàn)