Great value! Introduction to Distributed System Architecture: Knowledge Graph + Mainstream Technology System (thematic collection materials are included)

If you are looking forward to a more comprehensive understanding of distributed systems, and want to understand how each technology is applied in distributed systems, what problems are solved separately, and what excellent implementations are available, it is recommended to read and bookmark this article.

Preface

Distributed systems involve a lot of theoretical knowledge and technical points, so many children's shoes say that learning distributed systems is easy to get started but difficult to go deep. The knowledge points found through network search are relatively scattered, and it is difficult to systematically learn and integrate. In this article, Mike will share from the following aspects, taking everyone to get a glimpse of the whole picture of distributed, hoping to clarify the direction and specific path of distributed learning for everyone.

The above thematic materials and learning map, how to obtain: add the assistant VX below

Theme of this article

  • Distributed system concept

  • The role of distributed systems

  • Characteristics of distributed systems

  • Mainstream Distributed System Technology

  • Collection of Distributed System Topics and Knowledge Graph

Distributed system concept

A distributed system is a system composed of a group of computer nodes that communicate through a network and coordinate work in order to complete common tasks. There is a saying: a distributed system is a combination of several independent computers that provide services to users, but to users, these computers are like a single related system.

The role of the cloth system

The emergence of distributed systems is to use cheap, ordinary machines to complete calculation and storage tasks that a single computer cannot complete. The purpose is to use more machines to process more data.

Characteristics of distributed systems

The characteristics of distributed system mainly include transparency, scalability, availability, reliability, high performance, consistency, etc. These characteristics are the main measurement indicators of distributed systems. To start learning distributed systems, start with understanding the characteristics of distributed systems.

1. Transparency

One of the characteristics of distributed is to hide the internal organizational structure of the system from users, and the differences between various computers and the differences in communication methods are hidden. Users who use a distributed system do not care about how the system is implemented and where the data they see comes from. Users can interact with the distributed system in the same way at any time.

2

Scalability

Scalability means that when tasks are increased or decreased, the processing capacity of the distributed system must be able to increase or decrease easily. That is: it can respond to the increase or decrease in the amount of data by increasing or decreasing the number of machines efficiently and conveniently.

3. Availability

The basic problem of availability of distributed systems, availability refers to the ability of the system to provide services stably under various conditions, that is, a highly available system can work normally at any time.

4. Reliability

Reliability means that the system can run continuously without failure, the calculation result is correct, and the stored data is not lost. The difference with availability is that reliability is defined in terms of time intervals, not at any moment.

5. High performance

High performance is the basic condition that an application system needs. Whether it is a stand-alone or a distributed system, everyone is very concerned about performance. High performance refers to the fast processing speed of the application system for client requests and short response time. For users, it means that the application operates smoothly and has a good user experience. Different systems and different business types have different performance measurement indicators. For example, Taobao trading system can respond in seconds, while online games must ensure response in milliseconds.

6. Consistency

Normally, what we call distributed consistency problems refers to data consistency problems. The core of distributed architecture lies in the realization and compromise of consistency. The stronger the consistency, the more user-friendly, but it will restrict the usability of the system; the lower the consistency, the user may need to be compatible with data inconsistencies, but the system usability will be much higher. The actual business scenario needs to be considered when implementing it. Make trade-offs and choose appropriate design patterns in different scenarios.

The above are the main features of distributed systems (basic theoretical knowledge points). Next, let's understand the mainstream technologies that may be used in the implementation of distributed systems.

Mainstream Distributed System Technology

Regarding the realization of distributed systems, which technologies are mainly used? Here is a brief list for your reference.

• Load balancing: Nginx, LVS, etc.

• webserver:Tomcat、Apache、Jboss等

• service: SOA, microservices, Spring boot, SpringCloud, etc.

• Container: Docker, kubernetes, etc.

• cache : Memcache 、 Redis 等

• Coordination center: Zookeeper, Etcd, etc.

• RPC framework: Grpc, Dubbo, Brpc, etc.

• Message queue: Kafka, RabbitMQ, RocketMQ, QSP, etc.

• Real-time data platform: Storm, Akka, etc.

• Offline data platform: Hadoop, Spark, etc.

• dbproxy: Cobar, etc.

• db:Oracle、Mysql、MongoDB、HBase等

• Search: Elasticsearch, Solr, etc.

• Log: Rsyslog, Elk, Flume, etc.

Collection of Distributed System Topics and Knowledge Graph

Mike has exported a series of technical dry goods related to distributed systems, mainly including: Kafka, Docker, Dubbo, Redis, load balancing and other topics, involving a variety of technologies, theoretical knowledge and protocols. If you are looking forward to a more comprehensive understanding of distributed systems, you want to understand how each technology is applied in a distributed system, what problems it solves, and what excellent implementations, and finally connect related technologies and theories in distributed systems Get up and learn about dozens of distributed system thematic collections and knowledge maps (long-term continuous update) shared by Mike for free.

The above thematic materials and learning map, how to obtain:

After paying attention, add VX in the figure below

 

 

Guess you like

Origin blog.csdn.net/sinat_37903468/article/details/108997817