Home Help Center

IceStorm failover, resolving endpoints during runtime

Oleh BabyakOleh Babyak Member Oleh BabyakOrganization: Skype AGProject: Baboon
In my project I plan to provide IceStorm failover so this service could run on any host and all subscribers/publishers resolve IceStorm service endpoints during runtime. Could you suggest the best way to do so not using indirect proxies and/or locators? Note: IceGrid will be not used intentionally because of internal requirements.
Thanks in advance.

Comments

  • benoitbenoit Rennes, FranceAdministrators, ZeroC Staff Benoit FoucherOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    Hi,

    The indirection mechanism that Ice provides to resolve endpoints at runtime is the Ice::Locator interface which is implemented by IceGrid. If you can't use it, you either have to implement your own mechanism or use another indirection mechanism.

    You could for instance implement a small registry service where you register the endpoints of the running IceStorm service and your publishers/subscribers would first contact this registry to get the IceStorm endpoints. This service could be replicated for higher reliability.

    Another option would be to use a DNS hostname. Your publishers/subscribers would always contact the IceStorm service with for example the endpoint: "tcp -h icestorm.dummy.com -p 15000" and you would update the DNS each time the IceStorm service is relocated to another host.

    Finally, you could also use a proxy with multiple endpoints for the IceStorm topic manager. Each endpoint would point to a potential location of the IceStorm service (e.g.: "tcp -h 192.168.0.1 -p 15000:tcp -h 192.168.0.2 -p 15000:tcp -h 192.168.0.3 -p 15000").

    Cheers,
    Benoit.
Sign In or Register to comment.