Skip to content

Document multiple EquivalentAddressGroups vs multiple SocketAddresses in NameResolver #5263

Open
@ST-DDT

Description

@ST-DDT

Currently the javadocs don't state when to use multiple EquivalentAddressGroups or multiple SocketAddresses in a single EquivalentAddressGroup.

io.grpc.EquivalentAddressGroup

A group of SocketAddresses that are considered equivalent when channel makes connections.

Usually the addresses are addresses resolved from the same host name, and connecting to any of them is equally sufficient. They do have order. An address appears earlier on the list is likely to be tried earlier.

io.grpc.NameResolver.Listener.onAddresses(List, Attributes)

Handles updates on resolved addresses and attributes.

Implementations will not modify the given servers.

Parameters:

  • servers the resolved server addresses. An empty list will trigger onError
  • attributes extra information from naming system.
  • Do I use multiple SocketAddresses if there are multiple paths to one and the same server, such as 10.1.2.3 , 127.0.0.1 or ::1? (Would that ever happen?)
  • Or do I always create new EquivalentAddressGroups for each address? (But then why am I able to list more addresses?)

It is also unsure when (and for what) the attributes on the single EquivalentAddressGroup is used and when (and for what) the attributes from the onAddresses call is used, and finally whether they are merged somehow or not.

Affects

  • grpc-core

Related

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions