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

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.
主站蜘蛛池模板: 巴中市| 无为县| 东宁县| 泉州市| 泰安市| 精河县| 潮安县| 武汉市| 大理市| 奉化市| 靖西县| 禹州市| 电白县| 南城县| 信宜市| 平阳县| 独山县| 白朗县| 桂平市| 垦利县| 深泽县| 常山县| 包头市| 建阳市| 丹凤县| 元氏县| 长宁区| 湾仔区| 乌拉特前旗| 新晃| 治多县| 格尔木市| 西丰县| 东明县| 昆明市| 安多县| 商城县| 竹山县| 德惠市| 屏边| 铜梁县|