avatarSam

Free AI web copilot to create summaries, insights and extended knowledge, download it at here

1645

Abstract

website into commodity module, order module, shopping cart module, message module, payment module, etc. Then we deploy different modules on different machines, and the various modules communicate through methods such as remote service invocation (RPC). Provide services externally as a distributed system.</p><p id="f6e0"><b>Distributed </b>refers to deploying different service modules in multiple different servers, working collaboratively through remote invocations to provide services externally.</p><p id="54b9"><b>Cluster</b> refers to deploying the same application or service module in multiple different servers to form a cluster, and providing services externally through load balancing devices.</p><figure id="0e09"><img src="https://cdn-images-1.readmedium.com/v2/resize:fit:800/1*4IiN5NZ5gY1MpENLcJvPsw.png"><figcaption></figcaption></figure><h1 id="50a2">The characteristics of distributed systems</h1><p id="0582">In a distributed system, communication and coordination among various hosts are mainly carried out through the network. Therefore, there are almost no spatial restrictions on the computers in a distributed system. These computers may be placed in different cabinets, may be deployed in different computer rooms, or may even be in different cities. For large websites, they may even be distributed in different countries and regions.</p><p id="771e">However, regardless of how they are distributed spatially, a standard distributed system should have the following main characteristics:</p><h2 id="8939">Distribution</h2><p id="8b50">In a distributed system, multiple computers can be randomly distributed in spatial

Options

positions. There is no master-slave distinction among multiple computers in the system, that is, there is no host that controls the entire system, nor is there a controlled slave machine.</p><h2 id="2fca">Transparency</h2><p id="4ec9">System resources are shared by all computers. Users of each computer can not only use the resources of their own machine but also the resources of other computers in this distributed system (including CPU, files, printers, etc.).</p><h2 id="cc67">Identity</h2><p id="3ac2">Several computers in the system can collaborate with each other to complete a common task, or a program can be distributed and run in parallel on several computers.</p><h2 id="c1a7">Communication</h2><p id="a5c7">Any two computers in the system can exchange information through communication.</p><p id="146d">Compared with centralized systems, distributed systems have higher cost performance, stronger processing capabilities, higher reliability, and good scalability. However, while distributed systems solve the high concurrency problem of websites, they also bring some other problems. First, the necessary condition for distribution is the network, which may have a certain impact on performance and even service capabilities. Secondly, the larger the number of servers in a cluster, the greater the probability of server downtime. In addition, since the services are distributedly deployed in the cluster, the user’s request will only fall on one of the machines.</p><p id="6ac6">Therefore, if not handled properly, it is very easy to have data consistency problems.</p><p id="076b">Thank you for your reading!</p></article></body>

What is a distributed system? What are the differences between distributed systems and clusters?

Distributed is in contrast to centralized. Let’s talk about centralized first. A centralized system deploys all the functions of an entire system, including the database and so on, all together and provides services externally through a complete system. However, centralized systems have problems such as being large and complex, difficult to maintain, prone to single point of failure, and poor scalability. And these problems can be well solved in distributed systems.

Distributed means splitting a centralized system into multiple systems. Each system provides some functions externally independently, and the entire distributed system provides a complete set of services externally as a whole. For users accessing a distributed system, the perception is like accessing a single computer.

Distributed means that more ordinary computers (compared to expensive mainframes) can be used to form a distributed cluster to provide services externally. The more computers there are, the more CPU, memory, storage resources, etc. there will be, and the greater the concurrent access volume that can be handled. However, there are also problems such as network communication delays and data consistency in distributed systems.

Take an e-commerce website as an example. Generally, we horizontally split an e-commerce website into commodity module, order module, shopping cart module, message module, payment module, etc. Then we deploy different modules on different machines, and the various modules communicate through methods such as remote service invocation (RPC). Provide services externally as a distributed system.

Distributed refers to deploying different service modules in multiple different servers, working collaboratively through remote invocations to provide services externally.

Cluster refers to deploying the same application or service module in multiple different servers to form a cluster, and providing services externally through load balancing devices.

The characteristics of distributed systems

In a distributed system, communication and coordination among various hosts are mainly carried out through the network. Therefore, there are almost no spatial restrictions on the computers in a distributed system. These computers may be placed in different cabinets, may be deployed in different computer rooms, or may even be in different cities. For large websites, they may even be distributed in different countries and regions.

However, regardless of how they are distributed spatially, a standard distributed system should have the following main characteristics:

Distribution

In a distributed system, multiple computers can be randomly distributed in spatial positions. There is no master-slave distinction among multiple computers in the system, that is, there is no host that controls the entire system, nor is there a controlled slave machine.

Transparency

System resources are shared by all computers. Users of each computer can not only use the resources of their own machine but also the resources of other computers in this distributed system (including CPU, files, printers, etc.).

Identity

Several computers in the system can collaborate with each other to complete a common task, or a program can be distributed and run in parallel on several computers.

Communication

Any two computers in the system can exchange information through communication.

Compared with centralized systems, distributed systems have higher cost performance, stronger processing capabilities, higher reliability, and good scalability. However, while distributed systems solve the high concurrency problem of websites, they also bring some other problems. First, the necessary condition for distribution is the network, which may have a certain impact on performance and even service capabilities. Secondly, the larger the number of servers in a cluster, the greater the probability of server downtime. In addition, since the services are distributedly deployed in the cluster, the user’s request will only fall on one of the machines.

Therefore, if not handled properly, it is very easy to have data consistency problems.

Thank you for your reading!

Programmer
Programming
System Design Interview
Distributed Systems
Recommended from ReadMedium