ribbon源码解析-LoadBalancerClient

2018-12-10  本文已影响0人  圆滚滚_8e70

package org.springframework.cloud.client.loadbalancer
类型:interface

说明

代表一个客户端侧的负载均衡器

Represents a client-side load balancer.

类图

LoadBalancerClient类图

类图说明

LoadBalancerClient接口继承了ServiceInstanceChooser接口。
LoadBalancerClient有一个实现类[RibbonLoadcerClient]。

源代码

/**
 * Represents a client-side load balancer.
 * @author Spencer Gibb
 */
public interface LoadBalancerClient extends ServiceInstanceChooser {

    /**
     * Executes request using a ServiceInstance from the LoadBalancer for the specified
     * service.
     * 使用一个从负载均衡器中得到的ServiceInstance执行指定的服务请求
     *
     * @param serviceId The service ID to look up the LoadBalancer. serviceId用来查找负载均衡器
     * @param request Allows implementations to execute pre and post actions, such as
     * incrementing metrics.允许子类进行扩展,例如添加监控等.
     * @return The result of the LoadBalancerRequest callback on the selected
     * ServiceInstance.
     */
    <T> T execute(String serviceId, LoadBalancerRequest<T> request) throws IOException;

    /**
     * Executes request using a ServiceInstance from the LoadBalancer for the specified
     * service.
     * @param serviceId The service ID to look up the LoadBalancer.
     * @param serviceInstance The service to execute the request to. 用来执行请求的服务实例
     * @param request Allows implementations to execute pre and post actions, such as
     * incrementing metrics.
     * @return The result of the LoadBalancerRequest callback on the selected
     * ServiceInstance.
     */
    <T> T execute(String serviceId, ServiceInstance serviceInstance, LoadBalancerRequest<T> request) throws IOException;

    /**
     * Creates a proper URI with a real host and port for systems to utilize.
     * 创建一个合适的URI(有真是的HOST和端口)
     * Some systems use a URI with the logical service name as the host,
     * such as http://myservice/path/to/service.  This will replace the
     * service name with the host:port from the ServiceInstance.
     * @param instance
     * @param original A URI with the host as a logical service name. 带有逻辑服务名称的URI
     * @return A reconstructed URI.
     */
    URI reconstructURI(ServiceInstance instance, URI original);
}
上一篇下一篇

猜你喜欢

热点阅读