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

Asynchronous events

Getting data via service endpoints synchronously may become overwhelming for services that maintain a widely used database, like the users database. Therefore, it is recommended for services to maintain a read-only cache for such databases and keep it up to date asynchronously using events, as shown in the following diagram:

For example, instead of looking up the address or order count using service endpoints synchronously, services such as User Service and Orders Service can publish the events of interest on a message queue in order of occurrence. The User Service can then receive the orders event from the Orders Service via the Message Broker and update its database with the orders count or cache it. Similarly, the Orders Service can receive any address update event from the User Service, keep the address up to date for the user within its cache, and refer to it as and when required to generate orders for users.

Microservices should always have an isolated database, but it is not recommended to create separate services to isolate immutable databases such as geolocations, PIN codes, domain knowledge, and so on. Since these database do not change that often, it is fair enough to share and cache these across microservices.
主站蜘蛛池模板: 宿迁市| 丽水市| 北碚区| 丹巴县| 缙云县| 高陵县| 钦州市| 石门县| 方城县| 马尔康县| 平原县| 嫩江县| 太保市| 南皮县| 八宿县| 崇仁县| 太仓市| 西乌珠穆沁旗| 临汾市| 平顶山市| 威海市| 东山县| 威远县| 威宁| 福鼎市| 华阴市| 随州市| 彩票| 万年县| 山东省| 荥阳市| 信宜市| 新龙县| 惠来县| 贵定县| 沽源县| 和硕县| 苏尼特左旗| 崇义县| 汶上县| 铁力市|