MicroServices are a very hot architecture or concept at the moment, and they are the architectural way to build large-scale Internet projects.
1. Single Structure
A monolithic architecture is the application of a well-developed project into a war package, which is then published to a container such as Tomcat.
Assuming you are preparing to develop a taxi scheduling software that competes with Uber and Hailo, you may start this new project manually or using a spring Boot, play, or Maven-based generator, through preliminary meetings and requirements analysis, and its hexagonal architecture is modular, with the following framing:
The application core is the business logic, which is done by the module that defines the services, domain objects, and events. Around the core is the adapter that deals with the outside world. Adapters include database access components, message components that produce and process messages, and Web modules that provide API or UI access support.
? Although it is also modular logic, it will eventually be packaged and deployed as a standalone application. The specific format depends on the application language and framework. For example, many Java applications are packaged in the war format, deployed on Tomcat or jetty, while others are packaged in a self-contained jar format, and rails and node. JS are packaged into a hierarchical directory.
This style of application development is common because Ides and other tools are good at developing a simple application that is easy to debug, and simply runs the application, with selenium linking the UI to complete end-to-end testing. Monolithic applications are also easy to deploy, simply by copying packaged applications to the server side, and by running multiple copies on the backend of the load balancer, you can easily implement application extensions. This kind of application works very well in the early days.
2. Problems with the monolithic architecture
3. What is micro-service?
4. Features of the microservices architecture
5. MicroServices Architecture Example
6.SpringCloud Introduction
1.SpringCloud Sub-Project
Component |
Camden.sr7 |
Dalston.sr3 |
Edgware.m1 |
Finchley.m2 |
Finchley.build-snapshot |
Note |
Spring-cloud-aws |
1.1.4.RELEASE |
1.2.1.RELEASE |
1.2.1.RELEASE |
2.0.0.m1 |
2.0.0.build-snapshot |
Components for simplifying the integration of Amazonwebservice |
Spring-cloud-bus |
1.2.2.RELEASE |
1.3.1.RELEASE |
1.3.1.RELEASE |
2.0.0.m1 |
2.0.0.build-snapshot |
event, message bus, used to propagate state changes or events in a cluster. |
Spring-cloud-cli |
1.2.4.RELEASE |
1.3.4.RELEASE |
1.4.0.m1 |
2.0.0.m1 |
2.0.0.build-snapshot |
Used to create Springcloud apps on the groovy platform. |
Spring-cloud-commons |
1.1.9.RELEASE |
1.2.3.RELEASE |
1.3.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
Service discovery, load balancing, and fusing mechanisms this mode provides a common abstraction layer for spring cloud clients. |
Spring-cloud-contract |
1.0.5.RELEASE |
1.1.3.RELEASE |
1.2.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
|
Spring-cloud-config |
1.2.3.RELEASE |
1.3.2.RELEASE |
1.4.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
Configuration management tools that support the use of Git, SVN, and other storage profiles. And in support of client configuration information refresh, encryption and decryption configuration content. |
Spring-cloud-netflix |
1.2.7.RELEASE |
1.3.4.RELEASE |
1.4.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
Core components to consolidate multiple Netflixoss open source suites. |
Spring-cloud-security |
1.1.4.RELEASE |
1.2.1.RELEASE |
1.2.1.RELEASE |
2.0.0.m1 |
2.0.0.build-snapshot |
Security Toolkit. |
Spring-cloud-cloudfoundry |
1.0.1.RELEASE |
1.1.0.RELEASE |
1.1.0.RELEASE |
2.0.0.m1 |
2.0.0.build-snapshot |
Integrated with Pivotal Cloudfoundry (the industry's first open source PAAs cloud platform) supported by VMware. |
Spring-cloud-consul |
1.1.4.RELEASE |
1.2.1.RELEASE |
1.2.1.RELEASE |
2.0.0.m1 |
2.0.0.build-snapshot |
Service discovery and Configuration management tools |
Spring-cloud-sleuth |
1.1.3.RELEASE |
1.2.4.RELEASE |
1.3.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
Distributed tracking implementation of Spring cloud applications. |
Spring-cloud-stream |
Brooklyn.sr3 |
Chelsea.sr2 |
Ditmars.m2 |
Elmhurst.m1 |
Elmhurst.build-snapshot |
Messaging MicroServices implemented through Redis, RabbitMQ, and Kafka. |
Spring-cloud-zookeeper |
1.0.4.RELEASE |
1.1.2.RELEASE |
1.2.0.m1 |
2.0.0.m1 |
2.0.0.build-snapshot |
Zookeeper-based service discovery and configuration management components. |
Spring-boot |
1.4.5.RELEASE |
1.5.4.RELEASE |
1.5.6.RELEASE |
2.0.0.m3 |
2.0.0.m3 |
|
Spring-cloud-task |
1.0.3.RELEASE |
1.1.2.RELEASE |
1.2.0.RELEASE |
2.0.0.m1 |
2.0.0.RELEASE |
Applications that are used to quickly build data processing. |
Spring-cloud-vault |
|
1.0.2.RELEASE |
1.1.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
|
Spring-cloud-gateway |
|
|
1.0.0.m1 |
2.0.0.m2 |
2.0.0.build-snapshot |
Springcloud gateway-related integration implementations. |
2. Release Notes
3. Springcloud Frame Features
7. Relationship with Springboot
Spring boot is a set of spring's fast-provisioning scaffolding that can quickly develop a single microservices based on spring boot, a spring Cloud application development tool based on the spring boot implementation;
Spring boot focuses on a single individual that is fast and easy to integrate, and spring Cloud is a global service governance framework;
Spring boot uses a default greater than the configuration concept, many integration options have been selected for you, can not be configured without configuration, Spring Cloud is a large part of the spring boot to implement, can not be based on spring boot? No.
Spring boot can leave spring cloud to use the development project independently, but spring cloud is dependent on spring boot.
Spring, Spring booot > Spring Cloud.
Advantages of 8.springCloud
There are so many frameworks for microservices such as: Dubbo, why use Spring cloud?
- Spring in the production of the family, spring in the enterprise-level development framework of no one can rival, a big, can guarantee the subsequent update, perfect. For example, Dubbo is almost dead now.
- Spring boot this independent gan can save a lot of things, big and small live spring boot are doing quite well.
- As a micro-service governance of the big guy, considered very comprehensive, almost all aspects of service governance are taken into account, easy to develop out of the box.
- Spring Cloud is highly active, the tutorials are rich, and it's easy to find a solution when you encounter problems
- A few lines of code to complete the fuse, the balance of responsibility, service center of the various platform functions
A little understanding of the concept of Springcloud microservices architecture