Supporting configuration for azure container apps
- Dominant language
- Go
- Stars
- 30.1k
- Forks
- 4.6k
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 39
Description
Hey All,
I use consul as a service registry for my spring boot applications and they are all deployed on azure container apps. The problem here is, that I'm unable to scale up the consul servers because the servers need to be inter-joined and to do so, we do not have a static IP, consul deployed on ACA will have dynamic IP's that concludes we cannot make use of retry join mechanism. Anyways I have faced lot of challenges and now I'm able to join the servers using the host address of the ACA, I fetch the IP address of the node that ACA is routing to, using url generated by ACA itself and join the servers using consul join method. Since the services will get registered to a specific node and when the traffic routes to different node, it will throw an error
2024-09-21 04:35:38.748 ERROR [fmpGateway,,,] 1 --- [pool-3-thread-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
com.ecwid.consul.v1.OperationException: OperationException(statusCode=404, statusMessage='Not Found', statusContent='Unknown check ID "service:fmpgateway-dae6c10643c84e69ff35b3a050277569". Ensure that the check ID is passed, not the check name.')
at com.ecwid.consul.v1.agent.AgentConsulClient.agentCheckPass(AgentConsulClient.java:211)
at com.ecwid.consul.v1.agent.AgentConsulClient.agentCheckPass(AgentConsulClient.java:198)
at com.ecwid.consul.v1.agent.AgentConsulClient.agentCheckPass(AgentConsulClient.java:193)
at com.ecwid.consul.v1.ConsulClient.agentCheckPass(ConsulClient.java:259)
at org.springframework.cloud.consul.discovery.TtlScheduler$ConsulHeartbeatTask.run(TtlScheduler.java:95)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
So inorder to rectify this problem, is there any solution that is already present?
Contributor guide
Research direction
Start by reviewing Consul's configuration for Azure Container Apps and the Spring Cloud Consul TTL heartbeat flow shown in the stack trace. Compare retry-join and service-check behavior with ACA's dynamic routing; done means identifying an existing supported configuration or defining a clearly scoped change.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, java, spring-boot
- Domain
- cloud, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100