- Mastering Microservices with Java
- Sourabh Sharma
- 287字
- 2021-07-02 13:03:28
One-dimension scalability
Monolithic applications that are large when scaled, scale everything, as all the components are bundled together. For example, in the case of a restaurant table reservation application, even if you would like to scale only the table-booking service, you would scale the whole application; you cannot scale the table-booking service separately. This design does not utilize resources optimally.
In addition, this scaling is one-dimensional. Running more copies of the application provides the scale with increasing transaction volume. An operation team could adjust the number of application copies that were using a load balancer based on the load in a server farm or a cloud. Each of these copies would access the same data source, therefore increasing the memory consumption, and the resulting I/O operations make caching less effective.
Microservices architectures give the flexibility to scale only those services where scale is required and allow optimal utilization of resources. As mentioned previously, when needed, you can scale just the table-booking service without affecting any of the other components. It also allows two-dimensional scaling; here we can not only increase the transaction volume, but also the data volume using caching (platform scale). A development team can then focus on the delivery and shipping of new features, instead of worrying about the scaling issues (product scale).
Microservices could help you scale platforms, people, and product dimensions, as we have seen previously. People scaling here refers to an increase or decrease in team size depending on the microservices' specific development needs.
Microservice development using RESTful web service development provides scalability in the sense that the server-end of REST is stateless; this means that there is not much communication between servers, which makes the design horizontally scalable.
- JavaScript從入門到精通(微視頻精編版)
- C語言程序設(shè)計案例教程(第2版)
- Learn to Create WordPress Themes by Building 5 Projects
- 深入淺出Electron:原理、工程與實(shí)踐
- Mastering SVG
- Neo4j Essentials
- Serverless架構(gòu)
- Linux Device Drivers Development
- 數(shù)據(jù)結(jié)構(gòu)案例教程(C/C++版)
- SQL基礎(chǔ)教程(第2版)
- 基于SpringBoot實(shí)現(xiàn):Java分布式中間件開發(fā)入門與實(shí)戰(zhàn)
- 詳解MATLAB圖形繪制技術(shù)
- Python 3.7從入門到精通(視頻教學(xué)版)
- uni-app跨平臺開發(fā)與應(yīng)用從入門到實(shí)踐
- 交互式程序設(shè)計(第2版)