Distributed System

Principles

  • Availability
  • Performance
  • Reliability
  • Scalability
  • Manageability
  • Cost-Effective

How to distributed?

What is the basic computer structure?

VonNeumann

It's clear to see three main parts:

  • Controller
  • ALU
  • Storage

Extend the basic one computer model to multiple machine

The distributed system is also combined with those three parts.To design a system with distributed thinking can easier to extend based on the original Von Neumann structure.

Controller

Controlled the action and behavior between nodes in entire distributed system. Make nodes in system work collaboratively. There are several ways to achieve this point:

Hardware
  • F5
Software

Transparent proxy: Both sides don't know each others. Only rely on the middle proxy. Cause two problems:1) Traffic overload; 2) The horrible situation when proxy machine is down;

  • Linux Virtual System
Naming Service
Rule Server
Master-Workers

Load Balancer Algorithms

  • Round Robin

    调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

  • Weighted Round Robin

    调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

  • Least Connections

    调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。

  • Weighted Least Connections

    在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

  • Locality-Based Least Connections

    "基于局部性的最少链接" 调度算法是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器 是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用"最少链接"的原则选出一个可用的服务 器,将请求发送到该服务器。

  • Locality-Based Least Connections with Replication

    "带复制的基于局部性最少链接"调度算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个 目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务 器组,按"最小连接"原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器,若服务器超载;则按"最小连接"原则从这个集群中选出一 台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的 程度。

  • Destination Hashing

    "目标地址散列"调度算法根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

  • Source Hashing

    "源地址散列"调度算法根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。

ALU

Arithmetic Logical Unit can be regarded as the application logical services in distributed system.

  • Vertical Partition: Break up a service into several services
  • Horizontal Partition: Hold more machines to deal with the same service

Data Storage

results matching ""

    No results matching ""