-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Register API service to multiple different API ML clusters #2425
Comments
I have this requirement as well. I have a service in an environment where there is more than one instance of the API ML running for purposes of isolation. As a consequence, a service can only be associated with one API ML instance which creates operational issues. Rather than spinning up the service more than once a natural extension would be the ability to register with multiple instances simultaneously. |
Such an API that is registered to more than one API ML will have to accept Zowe JWT issued from different gateways. ZAAS client will have to support it and communicate with the correct gateway that sent the JWT and is trusted. Thanks @pj892031 for mentioning this. |
And as another note, we are talking about the clusters. Registering to multiple different clusters of API ML (the cluster can have one instance.) |
Potential ZAAS Client issue. How do you specify the work? |
The use case we have is there are multiple API ML instances that are running on a system and we wanted to provide visibility to the other. I think registering to different clusters would work for our use case. |
It is possible to create multiple DiscoveryClient objects within the enabler(java and spring), authentication needs to be done in the application itself as ZaaS client is a separate component. Further tests need to be done to fully understand the impact of such changes. This functionality seems to be in contrast to how Eureka was designed, multiple Eureka servers are meant to serve only as a fallback. https://cloud.spring.io/spring-cloud-netflix/multi/multi__service_discovery_eureka_clients.html#_registering_with_eureka |
Some of the information in the issue may be a bit confusing. The actual use case isn't about multiple instances but multiple clusters (a cluster could be represented by one instance). The service should be properly visible in multiple clusters that intentionally don't communicate with each other. E.g., because of different stability requirements. An example would be multiple API ML clusters. One for development purposes and one for production purposes. The southbound service is considered stable and isn't concerned with development usage. This service wants to be onboarded to multiple API ML clusters. The reason is that they don't want to set up another cluster just for development purposes. |
The issue was addressed partially by providing a possibility to register gateway service to multiple discovery services. Support for the rest of the services will be done later. |
Is your feature request related to a problem? Please describe.
Can an API service register to more than one instance of API ML? I have two independent Zowe instances and I would like my API service (the same instance, using the Plain Java Enabler) to be available in both of the Zowe API ML instances.
Describe the solution you'd like
I would like to have a way to specify a list of discovery service URLs (including multiple instances of Discovery Services for one Zowe instance) and have my service to be registered to all of them.
Describe alternatives you've considered
The documentation (https://docs.zowe.org/stable/extend/extend-apiml/onboard-plain-java-enabler#eureka-discovery-service) talks about
discoveryServiceUrls
. But that seems to work for failover and load balancing between connected Eureka instances. It registers to the first available peer. In my use case, I would like to register into all Discovery services that I will provide.The text was updated successfully, but these errors were encountered: