- Spring Microservices
- Rajesh RV
- 353字
- 2021-07-02 16:28:25
Principles of microservices
In this section, we will examine some of the principles of the microservices architecture. These principles are a "must have" when designing and developing microservices.
Single responsibility per service
The single responsibility principle is one of the principles defined as part of the SOLID design pattern. It states that a unit should only have one responsibility.
This implies that a unit, either a class, a function, or a service, should have only one responsibility. At no point should two units share one responsibility or one unit have more than one responsibility. A unit with more than one responsibility indicates tight coupling.

As shown in the preceding diagram, Customer, Product, and Order are different functions of an e-commerce application. Rather than building all of them into one application, it is better to have three different services, each responsible for exactly one business function, so that changes to one responsibility will not impair others. In the preceding scenario, Customer, Product, and Order will be treated as three independent microservices.
Microservices are autonomous
Microservices are self-contained, independently deployable, and autonomous services that take full responsibility of a business capability and its execution. They bundle all dependencies, including library dependencies, and execution environments such as web servers and containers or virtual machines that abstract physical resources.
One of the major differences between microservices and SOA is in their level of autonomy. While most SOA implementations provide service-level abstraction, microservices go further and abstract the realization and execution environment.
In traditional application developments, we build a WAR or an EAR, then deploy it into a JEE application server, such as with JBoss, WebLogic, WebSphere, and so on. We may deploy multiple applications into the same JEE container. In the microservices approach, each microservice will be built as a fat Jar, embedding all dependencies and run as a standalone Java process.

Microservices may also get their own containers for execution, as shown in the preceding diagram. Containers are portable, independently manageable, lightweight runtime environments. Container technologies, such as Docker, are an ideal choice for microservices deployment.
- Dynamics 365 Application Development
- Visual Basic 6.0程序設計計算機組裝與維修
- Learn to Create WordPress Themes by Building 5 Projects
- Manga Studio Ex 5 Cookbook
- PostgreSQL技術內幕:事務處理深度探索
- jQuery從入門到精通 (軟件開發視頻大講堂)
- ArcGIS By Example
- C++新經典
- Unity 3D/2D移動開發實戰教程
- Building Serverless Architectures
- 物聯網系統架構設計與邊緣計算(原書第2版)
- 深度學習程序設計實戰
- R的極客理想:量化投資篇
- LabVIEW數據采集
- R語言數據分析從入門到實戰