JGroups ARM (1)

xiaoxiao2021-03-06  19

JGroups / ARM (1)

Written in accordance and writing according to HEIN MLING and Alberto Montresor

Foreword

Entering a distributed era, we usually 1) reliable high availability 2) fault tolerant 3) Load balancing is defined as three basic conditions for distributed systems. Distributed systems do not refer to the operating system, which plays a set of bridges between various operating systems and applications, which can do i) does not depend on specific hardware, software and operating systems Not limited to system architecture and software system II) achieve maximum cost performance on the basis of leaving cheap hardware and software.

When discussing a distributed system, let's take a look at the challenges of our traditional centralized systems:

1,

Server hardware failure (hard disk corruption)

2,

Network failure (switch, router crash)

3,

Operating system failure (Windows crash)

4,

Software failure (memory disclosure)

Distributed systems need to resolve problems caused by centralized systems, need to start from two aspects

1)

A set of system frames are provided that implements multiple data replication between the servers and is automatically recovered when the administrator is required when there is a failure.

2)

A set of interfaces allows users to develop reliable, high-availability distributed applications on this basis.

Let me see the past distributed system framework

l

Corba

l

DCOM / .NET

l

Java RMI / Jini / EJB

These three system frames have the following features

1,

Object-oriented

2,

Ideology based on Client / Server remote method call

3,

Modularity

4,

High reuse

5,

Interoperability

6,

Portability (DCOM is limited to Windows platform)

Below, the Java RMI remote method is called as an example to describe the problems existing in the traditional distributed framework.

Java RMI (Remote Method Invocation Remote Method) is implemented with Java in JDK1.1, which greatly enhances the ability of Java development distributed applications. RMI is one of the core solutions of a network distributed application system of 100%, in fact it can be seen as a Java version of RPC. However, traditional RPCs do not be well applied to distributed object systems. Java RMI supports communication between program-level objects stored in different address spaces to implement seamless remote calls between remote objects. RMI currently communicates with Java Remote Messaging Protocol using Java Remote Messaging Protocol. JRMP is a protocol designed for Java remote objects. Application systems developed with Java RMI can be deployed on any platform that supports JRE (Java Run Environment Java, Run Environment). However, since JRMP is designed for Java objects, RMI is insufficient for application systems developed with non-Java language. You cannot communicate with objects written in non-Java language.

When the RMI makes JVM1 and JVM2, it is very good to block the details of the underlying operating system, but if the above architecture is changed to a pair mode (a client to multiple servers), the client still avoids the system. The network details of each server (ie the client calls to the server are not transparent), and there is still a problem with the server to maintain call consistency.

In short, the distributed frameworks such as RMI and DCOM do not have a good demand for reliability and high availability. Thus, a new concept is proposed here - an Object Group. Component groups can be understood this: it is a dynamic collection based on server objects and components, all component objects in the collection and maintaining each component consistency, and they provide consistent, reliable and high availability services.

Component groups depends on three services to architecture to distribute architecture frameworks, before describing the framework, first agreed, group (group) is a combination of components, and components can be abstracted as group members, and groups happen usually. :

a)

Join

b)

Leave

c)

Merge

d)

Partition

e)

Crash

1,

Group Management Services (Group Membership Service)

Because groups are dynamic, some group members will join (Join) to group, some group members will be separated from (Leave), some group members will be separated from (Crash) because of the failure, sometimes there is 2 groups Incorporation (Partition), etc., therefore, the group must have the ability to deal with these events.

2,

Reliable multicast service

In a distributed group environment, we have achieved high availability through a pair of ways (with HA actually the same concept), the current key is how our group is reliable.

The answer is simple - multicast. Concepts about group multicast can be referred to:

http://blog.9cbs.net/huangzhq/archive/2005/02/18/291761.aspx

3,

State Transfer Service

The purpose of state transmission is that the information synchronization of group members, that is, the structure of the group member A and the group member B is consistent. That is, the group member is a unified view of the group through this service.

转载请注明原文地址:https://www.9cbs.com/read-40564.html

New Post(0)