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

Service discovery patterns

Microservices-based applications may often scale to such a large number of services that it may not be feasible for each microservice to keep a track of all other active service locations. In such scenarios, the service registry helps in discovering microservices to perform a particular task. There are primarily two patterns for service discovery—client-side discovery and server-side discovery, as shown in the following diagram.

In the client-side discovery pattern, the responsibility for determining the location of services by querying the service registry is on the client. Therefore, the service registry must be accessible to the client to look up the location of the required services. Also, each client must have service discovery implementation built-in for this pattern to work.

On the other hand, in the server-side discovery pattern, the responsibility for connecting with the service registry and looking up the location of services is of a router or a gateway that acts as a load balancer as well. Clients just need to send a request to a router and the router takes care of forwarding the request to the required service. Orchestration tools such as Kubernetes support server-side discovery using proxies.

The server-side discovery pattern must be preferred for a large-scale deployment. It can also be used as a circuit breaker to prevent resource exhaustion by controlling the number of open requests to a service that has encountered consecutive failures or is not available.
主站蜘蛛池模板: 顺义区| 新田县| 平凉市| 黄龙县| 苍山县| 陈巴尔虎旗| 灌云县| 额敏县| 襄垣县| 邻水| 西乌珠穆沁旗| 班戈县| 克东县| 洛南县| 临海市| 昭平县| 武功县| 高尔夫| 扶余县| 辽阳县| 巴中市| 惠水县| 轮台县| 东方市| 梁平县| 武隆县| 邵阳县| 凭祥市| 永寿县| 石首市| 九江县| 黑河市| 柞水县| 泰安市| 永泰县| 南安市| 古浪县| 闽侯县| 灌南县| 沅江市| 普兰县|