{"action":"created","issue":{"url":"https://api.github.com/repos/hazelcast/hazelcast/issues/5681","labels_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/5681/labels{/name}","comments_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/5681/comments","events_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/5681/events","html_url":"https://github.com/hazelcast/hazelcast/issues/5681","id":94498978,"number":5681,"title":"any idea with distribute rpc service registry support with hazelcast ? ","user":{"login":"bwzhang2011","id":749788,"avatar_url":"https://avatars.githubusercontent.com/u/749788?v=3","gravatar_id":"","url":"https://api.github.com/users/bwzhang2011","html_url":"https://github.com/bwzhang2011","followers_url":"https://api.github.com/users/bwzhang2011/followers","following_url":"https://api.github.com/users/bwzhang2011/following{/other_user}","gists_url":"https://api.github.com/users/bwzhang2011/gists{/gist_id}","starred_url":"https://api.github.com/users/bwzhang2011/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bwzhang2011/subscriptions","organizations_url":"https://api.github.com/users/bwzhang2011/orgs","repos_url":"https://api.github.com/users/bwzhang2011/repos","events_url":"https://api.github.com/users/bwzhang2011/events{/privacy}","received_events_url":"https://api.github.com/users/bwzhang2011/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-11T18:57:48Z","updated_at":"2015-07-17T05:17:57Z","closed_at":null,"body":"Hi, hz tream. as distribute rpc is widely used in distributed application with rpc interface published to be wired together between system calling among applications. and it relied the rpc framework itself just for how to make some self-defined interfaces to make it rpc enabled. here comes some rpc service registry use cases while most of which integrated with zookeeper and hope to be support in hazelcast as follows:\r\n1. we could call hazelcast or zookeeper to be the registry center (could be cluster)\r\n2. the rpc service could be the interface shared between client and server side and also\r\n    some IDL could be generated for both client or server side.\r\n3. when rpc service for server side starts, it will register the info of the service into the registry center.\r\n4. when client side starts towards the rpc service, it will register the client info like the ip into the register center.\r\n5. as for 4th part, when rpc client side wants to invoke the rpc calling, it will try to search the rpc service whic is alive with the registry center and record the info for connection to the server side. (as rpc calling wrapper maybe short-alive or keep-alive type)\r\n\r\nafter that, the server side will response the client side according the rpc. by the way\r\n6. if register add more nodes, the rpc client side will find the new register center.\r\n7. if the rpc server side add more nodes (like cluster way), when it register the rpc service into the registry center, the register center will push the service info to the client side.\r\n\r\nas my knowledge to hazelcast. I think it could provide some support for the service registry support which is difference compared to the use defined service support in hazelcast. for most application will try to make the pure rpc framework like twitter finagle to be the first choice. so hazelcast could act as the registry center to be responsible for the registry and notification.\r\n\r\nI think it seems to be some new feature for enhancement compared with zookeeper. it will provide some other choice for such support. and hazelcast itself not always force your to connect the cluster to make use of the distribute structure but just for the distribute service registry way as the coordinator."},"comment":{"url":"https://api.github.com/repos/hazelcast/hazelcast/issues/comments/122178056","html_url":"https://github.com/hazelcast/hazelcast/issues/5681#issuecomment-122178056","issue_url":"https://api.github.com/repos/hazelcast/hazelcast/issues/5681","id":122178056,"user":{"login":"noctarius","id":1142801,"avatar_url":"https://avatars.githubusercontent.com/u/1142801?v=3","gravatar_id":"","url":"https://api.github.com/users/noctarius","html_url":"https://github.com/noctarius","followers_url":"https://api.github.com/users/noctarius/followers","following_url":"https://api.github.com/users/noctarius/following{/other_user}","gists_url":"https://api.github.com/users/noctarius/gists{/gist_id}","starred_url":"https://api.github.com/users/noctarius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noctarius/subscriptions","organizations_url":"https://api.github.com/users/noctarius/orgs","repos_url":"https://api.github.com/users/noctarius/repos","events_url":"https://api.github.com/users/noctarius/events{/privacy}","received_events_url":"https://api.github.com/users/noctarius/received_events","type":"User","site_admin":false},"created_at":"2015-07-17T05:17:57Z","updated_at":"2015-07-17T05:17:57Z","body":"I thought about a service discovery built on top of HZ for some time. I don't think this is a HZ project but it could be a nice side-project. \r\n\r\nI guess the biggest missing feature to implement this nicely is ttl on multimap. Otherwise you could just use a ttl of 10secs and an available server needs to \"update\" it every 5secs. That means if a service dies it will be gone after 10 secs (numbers could be changed). If a service goes down gracefully it could remove it's entry directly."}}