Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What is the evolution of server distributed architecture

2025-03-31 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/02 Report--

This article introduces the relevant knowledge of "how the server distributed architecture evolves". Many people will encounter this dilemma in the operation of actual cases. next, let the editor lead you to learn how to deal with these situations. I hope you can read it carefully and be able to achieve something!

What is a distributed architecture?

Distributed system (distributed system) is a software system based on network, which has two typical characteristics:

Cohesion: each database distribution node is highly autonomous and has a local database management system

Transparency: each database distribution node is transparent to the user's application, and it is not clear whether it is local or remote.

In other words, in a distributed system, users do not feel that the data is distributed, do not know whether the data is divided, whether there is a copy, or which node the data exists on.

To put it simply: in a distributed system, a group of independent computers presents users with a unified whole, as if it were a system.

As shown in the figure above, the distributed system provides services to users as a whole, while the internal collaboration of the whole system is transparent to users, who are like using a mysql.

Evolution of distributed Architecture

(1) initial phase architecture

Features: all resources such as applications, databases, files, etc., are placed on one server.

(2) Separation of application services, data services and file services

Explanation: the good times will not last long. As the system traffic increases again, the pressure on the webserver machine will rise to a relatively high level during the peak period. At this time, we will start to consider adding a webserver.

Features: applications, databases, and files are deployed on separate resources.

(3) use caching to improve performance

Description: the characteristics of system access follow the law of 28, that is, 80% of business visits are concentrated on 20% of the data.

Cache is divided into local cache and remote distributed cache. The access speed of local cache is faster, but the amount of cache data is limited. At the same time, there is a situation of contention with applications for memory.

Features: a small part of the data in the database is stored in the cache server, which reduces the access times of the database and reduces the access pressure of the database.

(4) use "application server" cluster

Explanation: after finishing the work of sub-database and sub-table, the pressure on the database has been reduced to a relatively low level, and began to live a happy life of watching the traffic surge every day.

Suddenly, one day, I found that the access to the system began to slow down again. At this time, I first checked the database and everything was normal. Then I checked webserver and found that apache blocked a lot of requests.

The application server is also relatively fast for each request, it seems that the high number of requests leads to the need to wait in line, and the response speed becomes slower.

Features: multiple servers provide services to the outside world at the same time through load balancing to solve the problem of processing capacity and upper limit of storage space of a single server.

Description: the use of clusters is a common means for the system to solve the problems of high concurrency and massive data. By adding resources to the cluster to improve the concurrent processing capacity of the system, the load pressure of the server is no longer the bottleneck of the whole system.

(5) Separation of database read and write

Explanation: after enjoying the happiness of the rapid growth of system visits for a period of time, I found that the system began to slow down again. What is the situation this time?

After searching, it is found that the resource competition of some database connections for these operations of database writing and updating is very fierce, which leads to the slowness of the system.

Features: multiple servers provide services to the outside world at the same time through load balancing to solve the problem of processing capacity and upper limit of storage space of a single server.

Description: the use of clusters is a common means for the system to solve the problems of high concurrency and massive data. By adding resources to the cluster, the load pressure on the server is no longer the bottleneck of the whole system.

(6) reverse proxy and CDN acceleration

Features

CDN and reverse proxy are used to speed up the access of the system.

Description

In order to cope with the complex network environment and the access of users in different regions, CDN and reverse proxy are used to accelerate the speed of user access and reduce the load on the back-end server. The basic principle of CDN and reverse proxy is caching.

(7) "distributed file" system and "distributed database"

Description

With the continuous operation of the system, the amount of data began to increase by a large margin. At this time, it was found that the query would still be a little slow after sub-database, so we began to do the work of sub-table according to the idea of sub-database.

Features: the database adopts distributed database, and the file system adopts distributed file system.

Description: no powerful single server can meet the growing business needs of large-scale systems, and database read-write separation will eventually be unable to meet the needs with the development of business, which needs to be supported by distributed database and distributed file system.

Distributed database is the last method to split the system database, which is used only when the scale of single table data is very large. The more commonly used means of database splitting is business sub-database, which deploys different business databases on different physical servers.

(8) NoSQL and search engine

Features

The system introduces NoSQL database and search engine.

Description

As the business becomes more and more complex, and the demand for data storage and retrieval becomes more and more complex, the system needs to adopt some non-relational databases such as NoSQL and sub-database query technologies such as search engines.

The application server accesses all kinds of data through the unified data access module, which reduces the trouble of the application program managing many data sources.

(9) Business split

Features

The system is split and reformed according to the business, and the application server is deployed separately according to the business differentiation.

Description

In order to deal with the increasingly complex business scenarios, the whole system business is usually divided into different product lines by divide-and-conquer means, the relationship between applications is established through hyperlinks, and data can also be distributed through message queues

Of course, it is more likely to form an associated complete system by accessing the same data storage system.

Vertical split: split a large application into multiple small applications, and if the new business is relatively independent, then directly design and deploy it as an independent Web application system

Vertical split is relatively simple, by combing the business, less related business can be spun off.

Horizontal split: split the reused business and deploy it as distributed services independently. New businesses only need to call these distributed services.

Horizontal splitting needs to identify reusable services, design service interfaces, and standardize service dependencies.

(10) distributed services

Features

The common application module is extracted and deployed on the distributed server for application server to call.

Description

As the business becomes smaller and smaller, the overall complexity of the application system increases exponentially, because all applications have to connect with all database systems, resulting in insufficient database connection resources and denial of service.

What are the problems faced by distributed services?

As there are more and more services, the service URL configuration management becomes very difficult, and the single point of pressure on the F5 hardware load balancer is also increasing.

When further development, the dependency relationship between services becomes complex, and even can not tell which application should be launched before which application, the architect can not fully describe the architectural relationship of the application.

Then, with the increasing call volume of the service, the problem of the capacity of the service is exposed. how many machines do this service need to support? When should I add the machine?

As there are more services, the cost of communication begins to rise. Who should I turn to when transferring a service to fail? What are the conventions for the parameters of the service?

A service has multiple business consumers, how to ensure the quality of service?

With the continuous upgrading of the service, there are always some unexpected things happen, such as memory overflow caused by cache mistakes, failure is inevitable, each core service is hung up, affecting a large area, people panic, how to control the impact of the failure? Can the service be degraded? Or resource deterioration.

This is the end of the content of "how is the evolution of server distributed architecture"? thank you for reading. If you want to know more about the industry, you can follow the website, the editor will output more high-quality practical articles for you!

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report