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

Supports polyglot architecture

With microservices, architects and developers get flexibility in choosing the most suitable technology and architecture for a given scenario. This gives the flexibility to design better fit solutions in a more cost-effective way.

Since microservices are autonomous and independent, each service can run with its own architecture or technology, or different versions of technologies.

The following image shows a simple, practical example of polyglot architecture with microservices:

There is a requirement to audit all system transactions and record transaction details such as request and response data, users who initiated the transaction, the service invoked, and so on.

As shown in the preceding diagram, while core services like Order microservice and Product microservice use a relational data store, the Audit microservice persists data in a Hadoop File System (HDFS). A relational data store is neither ideal nor cost effective to store large data volumes, like in the case of audit data. In the monolithic approach, the application generally uses a shared, single database that stores the Order, Product, and Audit data.

In this example, audit service is a technical microservice using a different architecture. Similarly, different functional services could also use different architectures.

In another example, there could be a Reservation microservice running on Java 7, while a Search microservice could be running on Java 8. Similarly, an Order microservice could be written on Erlang, whereas a Delivery microservice could be on the Go language. None of these are possible with a monolithic architecture.

主站蜘蛛池模板: 红河县| 霍城县| 揭阳市| 嘉义市| 渑池县| 昌吉市| 新竹市| 溧水县| 桂东县| 定边县| 工布江达县| 琼结县| 宁都县| 什邡市| 桃源县| 泉州市| 德州市| 浪卡子县| 原平市| 洛浦县| 六安市| 嘉荫县| 宁城县| 门源| 广饶县| 万载县| 中牟县| 华阴市| 聊城市| 江陵县| 确山县| 昭苏县| 苗栗市| 保定市| 古丈县| 长白| 沙河市| 巴东县| 浙江省| 南皮县| 长阳|