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

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.

主站蜘蛛池模板: 仙游县| 中山市| 枣庄市| 革吉县| 平凉市| 乐都县| 永德县| 灵山县| 庐江县| 葫芦岛市| 丘北县| 开化县| 九寨沟县| 邵阳县| 驻马店市| 汾西县| 平江县| 温泉县| 北流市| 卓尼县| 吴江市| 临清市| 久治县| 营口市| 扬州市| 江华| 东海县| 抚顺市| 阳谷县| 汝南县| 西峡县| 石门县| 江阴市| 公安县| 佛山市| 信阳市| 郧西县| 莱西市| 乳山市| 钟山县| 镇江市|