This is the first day of my participation in Gwen Challenge
Spring Cloud is an ordered collection of frameworks. It takes advantage of the development convenience of Spring Boot to subtly simplify the development of distributed system infrastructure, such as service discovery registry, configuration center, message bus, load balancing, circuit breakers, data monitoring, etc., which can be started and deployed with one click using Spring Boot’s development style. Spring Cloud does not remanufacture the wheel. It just combines the mature and practical service frameworks developed by various companies and encapsulates them in the Spring Boot style, masking the complex configuration and implementation principles. Finally, a simple and easy to understand, easy to deploy and easy to maintain distributed system development kit was set aside for developers.
- IO: Spring
- IO/Projects /sp…
- IO /projects/sp…
This series will begin by learning about the Spring Cloud family. Welcome to study and exchange.
I. Composition of Spring Cloud
Spring Cloud projects include:
- SpringCloudConfig: A configuration management development kit that allows you to put configuration on a remote server. It currently supports local storage, Git, and Subversion.
- Spring Cloud Bus: An event, message Bus for propagating state changes in clusters (for example, configuration change events), which can be combined with Spring Cloud Config for hot deployment.
- Spring Cloud Netflix: A development kit for a variety of Netflix components, including Eureka, Hystrix, Zuul, Archaius, and more.
- Netflix Eureka: Cloud Load Balancer, a REST-based service for locating services to enable cloud load balancing and mid-tier server failover.
- Netflix Hystrix: Fault tolerance management tool designed to provide greater fault tolerance for delays and failures by controlling the nodes of services and third-party libraries.
- Netflix Zuul: Edge services tool, is to provide dynamic routing, monitoring, flexibility, security and other edge services.
- Netflix Archaius: A set of configuration management apis that provide dynamic typed properties, thread-safe configuration operations, polling framework, callback mechanism, and more.
- Spring Cloud for CloudFoundry: Bind services to CloudFoundry, VMware’s open source PaaS Cloud platform, via the Oauth2 protocol.
- Spring Cloud Sleuth: Log collection toolkit that encapsulates Dapper,Zipkin, and HTrace operations.
- Spring Cloud Data Flow: Big Data manipulation tool that manipulates Data flows through the command line.
- Spring Cloud Security: A Security toolkit for adding Security controls to your applications, mainly OAuth2.
- Spring Cloud Consul: Encapsulates Consul operations. Consul is a service discovery and configuration tool that seamlessly integrates with the Docker container.
- Spring Cloud Zookeeper: A tool package that operates Zookeeper and is used to register and discover services using Zookeeper.
- Spring Cloud Stream: A data Stream package that encapsulates sending and receiving messages with Redis,Rabbit, Kafka, etc.
- Spring Cloud CLI: Based on the Spring Boot CLI, it allows you to quickly build Cloud components from the command line.
Ii. The relationship between microservices, Spring Boot and Spring Cloud
Microservice is a concept of architecture, and the design principle of microservice is put forward, which provides a guiding ideology for specific technology implementation from the theory. The microservice architecture style is a way of developing a single application into a set of small services, each running in its own process and communicating between services using a lightweight communication mechanism (usually using HTTP resource apis). These services are built around business capabilities and can be deployed independently through a fully automated deployment mechanism. These services share a minimal centralized management and can be developed in different languages using different data storage technologies.
The microservice architecture should have the following features: each microservice can run independently in its own process. A series of independent microservices build the system together. Each service is an independent business development, and a microservice focuses on a specific function, such as order management, user management, etc. Microservices communicate with each other through lightweight communication mechanisms, such as invocation through RESTful apis. Can use different languages with data storage technology, automatic deployment mechanism.
Spring Boot is a fast configuration scaffolding that allows you to quickly develop individual microservices based on Spring Boot. Spring Cloud is a service governance toolkit based on Spring Boot. Spring Boot focuses on a single microservice individual that is quickly and easily integrated, while Spring Cloud focuses on a global service governance framework.
For the whole Spring Cloud microservices framework, as long as you divide your microservices components and modules, and define the API interfaces that need to be exposed, the rest of the development is not much different from the traditional way, you develop the components integrated into a distributed and extensible microservices environment. Interface publishing, service registration, service invocation and routing, service monitoring, health monitoring and flow control are all designed by the microservices framework for you. It is because of the mature microservices framework that the focus of microservices architecture design should be shifted from the underlying technology to component partitioning and interface design.
Iii. Development of Spring Cloud
Spring Cloud is a boon for small and medium sized Internet companies, which often do not have the resources or financial resources to develop their own distributed system infrastructure. Using Spring Cloud’s one-stop solution can significantly reduce development costs while taking their business in stride. At the same time, with the popularity of microservice architecture and Docker container concept in recent years, Spring Cloud will also have a neutral place in the future more and more “Cloud” software development style, especially in the current various distributed solutions to provide standardized, full-site technology solutions. The significance may be comparable to the birth of the Servlet specification, effectively promoting the technological level of the server software system.
This is a brief introduction to Spring Cloud, and the next stop is to build a Spring Cloud Demo. Welcome to pay attention to, like, mutual exchange and learning.