Explain the Spring Cloud version problem in detail

Table of contents

1. The troublesome multi-version number system

2. Directory relationship

3. Why there are multiple version number systems


1. The troublesome multi-version number system

Due to historical reasons, spring cloud is divided into two systems: Alibaba and Netflix.

Students who want to understand the reason and the ins and outs of the entire spring cloud system can read my other article:

Introduction to SpringCloud__BugMan's Blog-CSDN Blog

After knowing the above, let's take a look at how messy the version number of spring cloud is:

Open the official website and first have a version list of the total project:

816beaa091e24517a57a9542c842aa77.png

Then scroll down, the adaptation relationship between Netflix's spring cloud and spring boot versions:

In other words, the version number of Netflix should be as in the list.

111f8a1db3964fe38ff2533f6fb63def.png

But when we click into the Netflix project, we will find that its version number list is like this:

301e09d07afd4d189354c7709412a255.png

Ok, the little friends who just started getting started at this time will be deceived, and there will be the following doubts:

  • Since it is divided into two systems, Alibaba and Netflix, why does the general project list of spring cloud still have a version number
  • Why is the Netflix version number list displayed in the adaptation list of spring boot different from the version number list seen in Netflix? Why are there two sets of Netflix version numbers?
  • Which maven coordinates should I use when I want to use spring cloud?

This article will start with the component relationship, clarify the project directory structure of spring cloud, and then clarify the version number issue along the way.

2. Directory relationship

First of all, we need to clarify the relationship between components in the entire spring cloud ecosystem, that is, why the directory on the official website looks like that.

To implement microservices, the core issues are:

  • Service Registration and Discovery
  • fault tolerance

The two systems of Netflix and Alibaba have given their own different implementations of the above two points. In general, they have launched different registry components and fault-tolerant components. In addition, in terms of easy capability expansion, it is realized through integration and access to third-party components, such as gateways, buses, and configuration centers.

With this understanding, we will not be so dizzy when we look at the entire spring cloud project list.

When we enter the spring official website, we can see the two sub-projects of Alibaba and Netflix, and many sub-projects at the same level as them. The projects of Alibaba and Netflix contain their own registry components and fault-tolerant components, which are at the same level as Alibaba and Netflix. It is some extended tripartite components such as gateway (gateway), config (configuration center), bus (bus) and so on.

da26199db2d946c29b60837aaec1c894.png

3. Why there are multiple version number systems

In fact, after the component relationship is clarified, the issue of the version number is easy to understand. Although due to historical reasons, spring cloud is divided into Alibaba and Netflix, but spring cloud was first created by Netflix, so the official website still uses Netflix as the center to describe the entire spring cloud. The real version of the family bucket launched by Netflix is ​​actually the version listed in the adaptation list:

3f8f4dbefeac4469a679290b22388c73.png

Let's click into a version of Netflix's family bucket at random, and we can see that it is actually the registration center (Spring Cloud Netflix) + other components:

5b0fdac0d2f94b1c8f598171393bd2d0.png

 After the core R&D personnel of Netflix's spring cloud left, the company contributed its spring cloud to the official spring cloud community, and the official community iterated the spring cloud of the Netflix system. Therefore, the list of version numbers on the general project is the iteratively updated version after the spring cloud official community receives the Netflix system:

504a874fb18745b9b9ecf2442c5dc6c5.png

Just click into a version, and you can see that it is actually a family bucket given around Netflix:

3cfa20129ade4270978f065ffadb1e51.png

Then the spring cloud Netflix subproject on the official website only maintains the eureka version:

a40200da6840464d9af609f26c3ccbf5.png

We click into any version, and we can see that it is very simple eureka:

37ff52e4ccff4914ba532e1e7e57a37b.png

 As for spring cloud Alibaba, it is very indifferent to the world, and it simply maintains its own version number:

0abee8c2ec214b54acee599c7c0a286c.png

Maintain your own nacos and sentinel:

90bc044f6b3846169507320c96cbebcd.png

Guess you like

Origin blog.csdn.net/Joker_ZJN/article/details/131019270
Recommended