Spring cloud and distributed system
This article is not a tutorial on how to use spring cloud, but discusses what spring cloud is, and the background and significance of its birth.
background
After 2008, with the rapid development of the domestic Internet industry, our demand for software systems is no longer the very low level of "just use it" in the past. Activities such as red envelope grabbing and double 11 continue to force us to break through the performance ceiling of software systems. The traditional IT enterprise development idea of "just use it" can no longer meet the high concurrency of the Internet Performance requirements for large flow. The only way to solve this problem in the field of server development is to move towards distributed system architecture. However, due to the inherent complexity of distributed system, it can not be solved by a pile of frameworks like developing single applications. Therefore, major Internet companies are investing technical forces to develop their own infrastructure. Among them, the more famous are Alibaba's open source project Dubbo and a series of service frameworks developed by Netflix. In this situation of "letting a hundred flowers bloom" and repeatedly building wheels, a unified standard is bound to appear to simplify the development of distributed systems, and spring cloud came into being.
What is spring cloud
Spring cloud is an ordered collection of frameworks. Taking advantage of the development convenience of spring boot, it cleverly simplifies the development of distributed system infrastructure, such as service discovery and registration, configuration center, message bus, load balancing, circuit breaker, data monitoring, etc., which can be started and deployed with one click with the development style of spring boot. Spring does not repeatedly manufacture wheels. It just combines the relatively mature and practical service frameworks developed by various companies, re encapsulates them through the spring boot style, shields the complex configuration and implementation principles, and finally leaves a set of simple, easy to understand, easy to deploy and easy to maintain distributed system development toolkit for developers.
Spring cloud composition
The subprojects of spring cloud can be roughly divided into two categories. One is the encapsulation and abstraction of the existing mature framework "spring boot", which is also the largest number of projects; The second type is the implementation of the infrastructure of some distributed systems. For example, spring cloud stream plays the role of Kafka and ActiveMQ. For developers who want to quickly practice microservices, the first type of subproject is enough, such as:
Spring cloud Netflix encapsulates a set of distributed service framework developed by Netflix, including service discovery and registration, load balancing, circuit breaker, rest client, request routing, etc.
Spring cloud config centralizes and saves configuration information. Configuring spring cloud bus enables dynamic modification of configuration files
Spring cloud bus distributed message queue encapsulates Kafka and MQ
Spring cloud security encapsulates spring security and can be used with Netflix
Spring cloud zookeeper encapsulates zookeeper so that it can be configured for use by other spring cloud subprojects
Prospects for spring cloud
Spring cloud is a blessing for small and medium-sized Internet companies, because such companies often do not have the strength or sufficient capital investment to develop their own distributed system infrastructure. Using spring cloud one-stop solution can greatly reduce the development cost while calmly coping with business development. Meanwhile, with the popularity of microservice architecture and docker container concept in recent years, spring cloud will also have a place in the future more and more "cloud" software development style. In particular, it provides standardized and all-stop technical solutions in the current variety of distributed solutions, which may be as meaningful as the birth of the current servlet specification, Effectively promote the progress of the technical level of the server software system.
summary
The above is all about the brief analysis of spring cloud and distributed system in this paper. I hope it can be helpful to you. If you have any questions, you can leave a message at any time. Xiaobian will reply to you in time. Thank you for your support.