Name Date Size #Lines LOC

..--

.clang-formatH A D25-Apr-20251.6 KiB5453

README.mdH A D25-Apr-20251.8 KiB5034

backup_poller.ccH A D25-Apr-20255.8 KiB179135

backup_poller.hH A D25-Apr-20251.2 KiB3810

client_channel_channelz.ccH A D25-Apr-20252.9 KiB9457

client_channel_channelz.hH A D25-Apr-20252.8 KiB8647

client_channel_factory.ccH A D25-Apr-2025976 338

client_channel_factory.hH A D25-Apr-20251.4 KiB4719

client_channel_filter.ccH A D25-Apr-2025147.4 KiB3,6652,844

client_channel_filter.hH A D25-Apr-202524.5 KiB629390

client_channel_internal.hH A D25-Apr-20252.6 KiB8039

client_channel_plugin.ccH A D25-Apr-20251.9 KiB5630

client_channel_service_config.ccH A D25-Apr-20255.1 KiB154100

client_channel_service_config.hH A D25-Apr-20253.4 KiB11372

config_selector.ccH A D25-Apr-20251.9 KiB6132

config_selector.hH A D25-Apr-20254.4 KiB12671

connector.hH A D25-Apr-20252.8 KiB8845

dynamic_filters.ccH A D25-Apr-20256.3 KiB175116

dynamic_filters.hH A D25-Apr-20253.7 KiB11164

global_subchannel_pool.ccH A D25-Apr-20252.1 KiB6636

global_subchannel_pool.hH A D25-Apr-20252 KiB6428

http_proxy_mapper.ccH A D25-Apr-202510.8 KiB305243

http_proxy_mapper.hH A D25-Apr-20251.7 KiB5424

local_subchannel_pool.ccH A D25-Apr-20252 KiB6127

local_subchannel_pool.hH A D25-Apr-20252.1 KiB6021

retry_filter.ccH A D25-Apr-20256.3 KiB16180

retry_filter.hH A D25-Apr-20254 KiB12374

retry_filter_legacy_call_data.ccH A D25-Apr-202584.3 KiB2,0551,554

retry_filter_legacy_call_data.hH A D25-Apr-202518.7 KiB444238

retry_service_config.ccH A D25-Apr-20259.5 KiB284209

retry_service_config.hH A D25-Apr-20253.4 KiB10670

retry_throttle.ccH A D25-Apr-20254.9 KiB14088

retry_throttle.hH A D25-Apr-20252.7 KiB9447

subchannel.ccH A D25-Apr-202531.1 KiB813626

subchannel.hH A D25-Apr-202514.8 KiB388207

subchannel_interface_internal.hH A D25-Apr-20251.4 KiB4215

subchannel_pool_interface.ccH A D25-Apr-20252.1 KiB6734

subchannel_pool_interface.hH A D25-Apr-20253.5 KiB10150

subchannel_stream_client.ccH A D25-Apr-202518.1 KiB465368

subchannel_stream_client.hH A D25-Apr-20258.5 KiB226125

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