• Home
Name Date Size #Lines LOC

..--

README.mdD22-Oct-20251.8 KiB5034

backup_poller.ccD22-Oct-20256.2 KiB188143

backup_poller.hD22-Oct-20251.2 KiB3810

client_channel.ccD22-Oct-202558.2 KiB1,4261,102

client_channel.hD22-Oct-20259.4 KiB246153

client_channel_args.hD22-Oct-2025861 224

client_channel_factory.ccD22-Oct-2025976 338

client_channel_factory.hD22-Oct-20251.4 KiB4619

client_channel_filter.ccD22-Oct-2025126.8 KiB3,1482,407

client_channel_filter.hD22-Oct-202522.4 KiB572351

client_channel_internal.hD22-Oct-20253.1 KiB9552

client_channel_plugin.ccD22-Oct-20251.4 KiB4118

client_channel_service_config.ccD22-Oct-20255.1 KiB153100

client_channel_service_config.hD22-Oct-20253.4 KiB11172

config_selector.hD22-Oct-20254.5 KiB12674

connector.hD22-Oct-20252.8 KiB8845

direct_channel.ccD22-Oct-20253.3 KiB8460

direct_channel.hD22-Oct-20253.8 KiB10273

dynamic_filters.ccD22-Oct-20256.6 KiB178122

dynamic_filters.hD22-Oct-20253.7 KiB11064

global_subchannel_pool.ccD22-Oct-20252.1 KiB6636

global_subchannel_pool.hD22-Oct-20252 KiB6328

lb_metadata.ccD22-Oct-20253.7 KiB12173

lb_metadata.hD22-Oct-20251.7 KiB5629

load_balanced_call_destination.ccD22-Oct-202511.8 KiB274199

load_balanced_call_destination.hD22-Oct-20251.6 KiB4922

local_subchannel_pool.ccD22-Oct-20252 KiB6027

local_subchannel_pool.hD22-Oct-20252.1 KiB6021

retry_filter.ccD22-Oct-20256.1 KiB15274

retry_filter.hD22-Oct-20253.8 KiB11570

retry_filter_legacy_call_data.ccD22-Oct-202582.2 KiB1,9461,449

retry_filter_legacy_call_data.hD22-Oct-202518.7 KiB441237

retry_interceptor.ccD22-Oct-202516.2 KiB407334

retry_interceptor.hD22-Oct-20255.1 KiB158112

retry_service_config.ccD22-Oct-20259.5 KiB281208

retry_service_config.hD22-Oct-20254 KiB11782

retry_throttle.ccD22-Oct-20255.3 KiB154101

retry_throttle.hD22-Oct-20252.8 KiB9147

subchannel.ccD22-Oct-202535.5 KiB932707

subchannel.hD22-Oct-202515 KiB395214

subchannel_interface_internal.hD22-Oct-20251.4 KiB4215

subchannel_pool_interface.ccD22-Oct-20252 KiB6333

subchannel_pool_interface.hD22-Oct-20253.4 KiB9849

subchannel_stream_client.ccD22-Oct-202517.7 KiB451356

subchannel_stream_client.hD22-Oct-20258.4 KiB222123

README.md

1Client Configuration Support for GRPC
2=====================================
3
4This library provides high level configuration machinery to construct client
5channels and load balance between them.
6
7Each `grpc_channel` is created with a `Resolver`. It is the resolver's duty
8to resolve a name into a set of arguments for the channel. Such arguments
9might include:
10
11- a list of (ip, port) addresses to connect to
12- a load balancing policy to decide which server to send a request to
13- a set of filters to mutate outgoing requests (say, by adding metadata)
14
15The resolver provides this data as a stream of `grpc_channel_args` objects to
16the channel. We represent arguments as a stream so that they can be changed
17by the resolver during execution, by reacting to external events (such as
18new service configuration data being pushed to some store).
19
20
21Load Balancing
22--------------
23
24Load balancing configuration is provided by a `LoadBalancingPolicy` object.
25
26The primary job of the load balancing policies is to pick a target server
27given only the initial metadata for a request. It does this by providing
28a `ConnectedSubchannel` object to the owning channel.
29
30
31Sub-Channels
32------------
33
34A sub-channel provides a connection to a server for a client channel. It has a
35connectivity state like a regular channel, and so can be connected or
36disconnected. This connectivity state can be used to inform load balancing
37decisions (for example, by avoiding disconnected backends).
38
39Configured sub-channels are fully setup to participate in the grpc data plane.
40Their behavior is specified by a set of grpc channel filters defined at their
41construction. To customize this behavior, transports build
42`ClientChannelFactory` objects, which customize construction arguments for
43concrete subchannel instances.
44
45
46Naming for GRPC
47===============
48
49See [/doc/naming.md](gRPC name resolution).
50