DB Scalability for a high load application?

折月煮酒 提交于 2020-01-01 16:32:40

问题


I have seen application to have clustered web server(like 10 to 20 server) to have scalability where they can distribute the load among webservers. But i have always seen all webserver using single DB.

Now consider any ecommerce or railways web application where million users are hitting the application at any point of time. To scale at webserver side, we can have server clustering but how we can scale DB ? As we can not have multiple DB like multiple webserver as one dB will have different state than other one :)

UPDATE:- Is scaling the db not possible in relational DBMS but only in NO SQL DB like mongo db etc ?


回答1:


There is two differend kind of scalability on database side. One is read-scalability and other one is write scalability. You can do both with scaling vertically means adding more CPU and RAM to some level. But if you need to scale on very large data more than the limit of a single machine you should use read replicas for need of read-scalability and sharding for write-scalability.

Sharding is not working like putting some entities(shoes) to one server and others(t-shirts) to another servers. It works like putting some of shoes and some of t-shirts to one machine and doing that for the rest of entities also.

Another solution for high volume data management is using microservices which is more similar to your example. I mean having a service for shoes another service for t-shirts. With microservices you divide your code and data to different projects and to different application and database servers. So you can deal with scalability of different part of your data differently.



来源:https://stackoverflow.com/questions/34242610/db-scalability-for-a-high-load-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!