官术网_书友最值得收藏!

Microservices architecture

Microservices is not a new word, the term was coined in 2005 by Dr Peter Rodgers. It was first called micro web services and based on SOAP. The term microservice is meant to convert large software into a number of pieces. Each piece focuses on a particular point of business. It is just like a little service with a microscopic scope for a specific target, compared to existing monolithic applications where the scope is very broad.

So, it pides the monolithic application into smaller microservices and manages and deploys these services as a single business goal; communication across these distributed services is a difficult task for developers. Use Spring Cloud to simplify integration between these distributed services.

Nowadays, industries are working on new functionality implementations and innovations every day or every week, constantly growing the application to a large size. A lot of complexity and coupling between various systems makes it difficult to change anything in the application. So various modules' teams must take care regarding impact on various parts of the application, either for large changes or the tiniest changes.

Let's look at the following diagram of a monolithic application without the microservices architecture:

As you can see, the preceding diagram shows, the Banking Application using a monolithic architecture without microservices. It's an all-in-one application, which means all modules, such as AccountService, CustomerService, and Notification Service, are in a single application.

Suppose you change CustomerService, you have to ensure the functionality of other modules' notification and account services is not impacted by the style of the architecture.

Let's pide this monolithic application into separate pieces according to the modules, and create with the microservice architecture. See the following diagram:

As you can see, we've now created the Banking Application with the microservices-based architecture. Here, the main application has been pided in a set of sub-applications, called microservices.

As core Spring concepts are applied to application architecture, Spring enables a separation of concerns between the application components, such as loose coupling, which means the effect of the change is isolated, and tight cohesion, which means the code performs a single, well-defined task. Similarly, microservices exhibit the same strengths, that is, loose coupling between the collaborating services of the application, and you can change these services independently. Another strength is tight cohesion, which means an application service that deals with a single view of data; it also known as Bounded Contexts or Domain-driven design (DDD).

Let's look at the following benefits of the microservice architecture.

主站蜘蛛池模板: 保定市| 涪陵区| 卓资县| 苗栗市| 扶余县| 定南县| 黄梅县| 商丘市| 宿迁市| 建德市| 浦东新区| 高唐县| 邵武市| 铁岭市| 长顺县| 苍山县| 启东市| 佛教| 兴业县| 望都县| 金堂县| 信丰县| 越西县| 新化县| 玉环县| 安化县| 石河子市| 安顺市| 石首市| 五大连池市| 海阳市| 博罗县| 大荔县| 铁力市| 远安县| 南澳县| 兴义市| 昂仁县| 抚顺县| 明溪县| 花垣县|