This commit adds a Sync message which is sent as a reply to Connect
message. This should in theory speed up convergence of a (re)connecting
node.
We respond to Sync message by sending a peer message back to the peer
origin of the Sync message. We consequently update our routing table and
peer graph with the data sent in via Sync message.
We now gossip advertse to up to 3 randomly selected peers instead of
sending a multicast message to the network.
Equally, Solicitation i.e. full table adverts are gossipped to a
randomly selected peer. If that fails we send a multicast message to the
network.
* Replace service prefix with FQDN style prefix
According to the k8s documentation, the label and annotation prefixes should be in the format of a FQDN, with dot separated labels of no more than 63 characters. The current label and annotation paramteres are rejected by the k8s api, most likely because they have two forward slashes in them.
* Use go.micro as service and annotation prefix
* Unlock RPC client while actually receiving a message
As receiving a message might block for a long time, unblocking the client allows to let it send messages in the meanwhile without using 'tricks'
* Unlock RPC server while actually receiving a message
As receiving a message might block for a long time, unblocking the client allows to let it send messages in the meanwhile without using 'tricks'
* Protect Close() against race conditions
* Concurrency and Sequence tests
* Update grpc_pool.go
* Update options.go
* Update grpc.go
* Update grpc_pool_test.go
* streams pool for grpc
* use busy list to speed up allocate while pool is very busy
* fix idle bug