- Mastering Microservices with Java 9(Second Edition)
- Sourabh Sharma
- 287字
- 2021-07-02 21:54:42
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 the table-booking service, it would scale the whole application; it cannot scale the table-booking service separately. It does not utilize the 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 gives the flexibility to scale only those services where scale is required and it allows optimal utilization of the resources. As we mentioned previously, when it is 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 platform, people, and product dimensions as we have seen previously. People scaling here refers to an increase or decrease in team size depending on microservices' specific development and focus needs.
Microservice development using RESTful web-service development makes it scalable in the sense that the server-end of REST is stateless; this means that there is not much communication between servers, which makes it horizontally scalable.
- 計算思維與算法入門
- Learning PostgreSQL
- Dynamics 365 Application Development
- Building a Game with Unity and Blender
- C# Programming Cookbook
- C語言程序設計案例式教程
- Learning Selenium Testing Tools(Third Edition)
- Mastering Predictive Analytics with Python
- Express Web Application Development
- Building Wireless Sensor Networks Using Arduino
- Regression Analysis with Python
- Python無監督學習
- 高質量程序設計指南:C++/C語言
- 產品架構評估原理與方法
- 基于Docker的Redis入門與實戰