azure-sdk-for-java icon indicating copy to clipboard operation
azure-sdk-for-java copied to clipboard

spring-cloud-azure-stream-binder-eventhubs connecting to Azure China eventhub

Open yumingtao opened this issue 3 years ago • 2 comments

I am using spring-cloud-azure-stream-binder-eventhubs connecting to eventhub, I tried to config it in properties, but it always connects to domain "servicebus.windows.net", could you help with this issue, thanks.

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-stream-binder-eventhubs</artifactId>
    <version>4.3.0</version>
</dependency>

the configuraton in properties:

spring.cloud.azure.eventhubs.connection-string=${EVENTHUB_CONNECTION_STRING:Endpoint=sb://xxx.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=***}
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key=${EVENTHUB_CHECKPOINT_ACCESS_KEY:t***}
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name=${EVENTHUB_CHECKPOINT_STORAGE_ACCOUNT:xxx}
spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name=${EVENTHUB_NAME:xxx}
spring.cloud.azure.eventhubs.namespace=mycar-dev-cn-cn3-eventhub-na
spring.cloud.azure.eventhubs.domain-name=**servicebus.chinacloudapi.cn**
spring.cloud.azure.profile.cloud-type=**azure_china**
spring.cloud.azure.eventhubs.processor.checkpoint-store.profile.cloud-type=**azure_china**
spring.cloud.azure.servicebus.domain-name=**servicebus.chinacloudapi.cn**
spring.cloud.azure.eventhubs.profile.cloud-type=**azure_china**
spring.cloud.azure.appconfiguration.profile.cloud-type=**azure_china**

the console output:

reactor.core.Exceptions$ErrorCallbackNotImplemented: com.azure.core.amqp.exception.AmqpException: errorContext[NAMESPACE: mycar-dev-cn-cn3-eventhub-na.servicebus.windows.net. ERROR CONTEXT: N/A]
Caused by: com.azure.core.amqp.exception.AmqpException: errorContext[NAMESPACE: mycar-dev-cn-cn3-eventhub-na.servicebus.windows.net. ERROR CONTEXT: N/A]
	at com.azure.core.amqp.implementation.ExceptionUtil.toException(ExceptionUtil.java:85)
	at com.azure.core.amqp.implementation.handler.ConnectionHandler.notifyErrorContext(ConnectionHandler.java:332)
	at com.azure.core.amqp.implementation.handler.ConnectionHandler.onTransportError(ConnectionHandler.java:235)
	at org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:191)
	at org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)
	at org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:324)
	at org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:291)
	at com.azure.core.amqp.implementation.ReactorExecutor.run(ReactorExecutor.java:91)
	at org.springframework.cloud.sleuth.instrument.reactor.ReactorSleuth.lambda$null$6(ReactorSleuth.java:324)

PS: When using 4.0.0 version, but the artifactid is azure-spring-cloud-stream-binder-eventhubs, it works with a simple configuration in properties.

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>**azure-spring-cloud-stream-binder-eventhubs**</artifactId>
    <version>4.0.0</version>
</dependency>
spring.cloud.azure.eventhubs.connection-string=${EVENTHUB_CONNECTION_STRING:Endpoint=sb://xxx.servicebus.chinacloudapi.cn/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=*****}
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-key=${EVENTHUB_CHECKPOINT_ACCESS_KEY:****}
spring.cloud.azure.eventhubs.processor.checkpoint-store.account-name=${EVENTHUB_CHECKPOINT_STORAGE_ACCOUNT:xxx}
spring.cloud.azure.eventhubs.processor.checkpoint-store.container-name=${EVENTHUB_NAME:dev-wallbox-v2-hub}
spring.cloud.azure.eventhubs.namespace=mycar-dev-cn-cn3-eventhub-na
spring.cloud.azure.profile.cloud-type=**azure_china**
spring.cloud.azure.eventhubs.processor.checkpoint-store.profile.cloud-type=**azure_china**

yumingtao avatar Sep 13 '22 08:09 yumingtao

Thanks @yumingtao for reaching out, we are aware of this issue and it's a bug in the code. I believe this PR https://github.com/Azure/azure-sdk-for-java/pull/30534 will fix it.

saragluna avatar Sep 14 '22 02:09 saragluna

Hi @yumingtao, PR #30534 has been merged. Could you please try the latest version from the main branch to see whether it works?

You could follow this instruction to build the libraries locally https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring#build-from-source.

And then replace the version used in your project with 4.4.0-beta.1:

<dependencies>
  <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-stream-binder-eventhubs</artifactId>
  </dependency>
</dependencies>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.4.0-beta.1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

saragluna avatar Sep 20 '22 07:09 saragluna

GA version 4.4.0 has been released, closing this issue now. Please reopen if you still run into problems

<dependencies>
  <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-stream-binder-eventhubs</artifactId>
  </dependency>
</dependencies>
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-dependencies</artifactId>
      <version>4.4.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

saragluna avatar Sep 28 '22 13:09 saragluna

@saragluna Sorry for replying late due to the vacation, I ran the test sample, and the 4.4.0 version works well for Azure China, thanks.

yumingtao avatar Oct 17 '22 02:10 yumingtao