Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-02 Thread via GitHub


wlgusqkr commented on issue #3359:
URL: https://github.com/apache/dubbo-go/issues/3359#issuecomment-4608878052

   Thanks for the update! No need to apologize at all. I'm just glad to hear 
it's resolved. Have a great day


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-02 Thread via GitHub


Alanxtl commented on issue #3359:
URL: https://github.com/apache/dubbo-go/issues/3359#issuecomment-4608837917

   Sorry, I took another look and realized this is not actually a bug in the 
way I originally described.
   
   The metadata service protocol is recorded in the service instance metadata, 
and the registry itself does not need to understand or be compatible with the 
metadata RPC protocol. The consumer just needs the corresponding protocol 
capability when it calls the provider metadata service.
   
   So this is more about sample/import setup than a framework bug. I’ll close 
this issue and the related PR. Thanks for looking into it and sorry for the 
confusion.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-02 Thread via GitHub


Alanxtl closed issue #3359: [BUG] REST application-level service discovery 
requires importing Dubbo protocol to fetch metadata
URL: https://github.com/apache/dubbo-go/issues/3359


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-02 Thread via GitHub


wlgusqkr commented on issue #3359:
URL: https://github.com/apache/dubbo-go/issues/3359#issuecomment-4601361262

   @Alanxtl  Could you please take a look when you have time?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-01 Thread via GitHub


Alanxtl commented on issue #3359:
URL: https://github.com/apache/dubbo-go/issues/3359#issuecomment-4591752879

   > Hi, I'd like to work on this. Could it be assigned to me? Thanks!
   
   sure


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



Re: [I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-01 Thread via GitHub


wlgusqkr commented on issue #3359:
URL: https://github.com/apache/dubbo-go/issues/3359#issuecomment-4591733155

   Hi, I'd like to work on this. Could it be assigned to me? Thanks!
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


-
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



[I] [BUG] REST application-level service discovery requires importing Dubbo protocol to fetch metadata [dubbo-go]

2026-06-01 Thread via GitHub


Alanxtl opened a new issue, #3359:
URL: https://github.com/apache/dubbo-go/issues/3359

   
   ## Title
   
   REST application-level service discovery requires importing Dubbo protocol 
to fetch metadata
   
   ## Problem
   
   A REST consumer using application-level service discovery fails unless it 
also imports the Dubbo protocol extension:
   
   ```go
   _ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
   ```
   
   Without this import, the consumer panics:
   
   ```text
   panic: protocol for [dubbo] is not existing
   ```
   
   This is surprising because the user-facing service protocol is REST. The 
Dubbo protocol is only used internally by the service discovery path to call 
`org.apache.dubbo.metadata.MetadataService`.
   
   ## Minimal Reproduction
   
   There is currently no ready-made REST service-discovery sample in the 
repository, so this was reproduced with a small local REST provider/consumer 
sample.
   
   ### 1. Shared REST mapping
   
   Create a REST service with one method:
   
   - interface: `org.apache.dubbo.samples.rest.GreetingService`
   - method: `GetGreeting`
   - REST path: `POST /api/v1/users/{userID}/greeting`
   - args:
 - arg 0 -> path param `userID`
 - arg 1 -> query param `name`
 - arg 2 -> header `X-Trace-ID`
 - arg 3 -> JSON body
   
   Both provider and consumer install the same REST method config through:
   
   ```go
   restconfig.SetRestProviderServiceConfigMap(...)
   restconfig.SetRestConsumerServiceConfigMap(...)
   ```
   
   ### 2. Provider setup
   
   The provider is configured as a REST service and uses application-level 
registration:
   
   ```go
   ins, err := dubbo.NewInstance(
   dubbo.WithName("dubbo_rest_basic_server"),
   dubbo.WithProtocol(
   protocol.WithREST(),
   protocol.WithIp("127.0.0.1"),
   protocol.WithPort(20080),
   ),
   dubbo.WithRegistry(
   registry.WithZookeeper(),
   registry.WithAddress("127.0.0.1:2181"),
   registry.WithoutUseAsConfigCenter(),
   registry.WithRegisterService(),
   ),
   )
   ```
   
   Then register the REST service:
   
   ```go
   srv, _ := ins.NewServer()
   err = srv.RegisterService(
   &GreetingProvider{},
   
dubboserver.WithInterface("org.apache.dubbo.samples.rest.GreetingService"),
   )
   err = srv.Serve()
   ```
   
   Required provider imports include REST protocol, registry protocol, service 
discovery, metadata mapping/report, and ZooKeeper registry.
   
   ### 3. Consumer setup that fails
   
   The consumer also uses application-level service discovery:
   
   ```go
   ins, err := dubbo.NewInstance(
   dubbo.WithName("dubbo_rest_basic_client"),
   dubbo.WithRegistry(
   registry.WithZookeeper(),
   registry.WithAddress("127.0.0.1:2181"),
   registry.WithoutUseAsConfigCenter(),
   registry.WithRegisterService(),
   ),
   )
   
   cli, err := ins.NewClient(client.WithClientNoCheck())
   conn, err := cli.Dial(
   "org.apache.dubbo.samples.rest.GreetingService",
   client.WithProtocol(constant.RESTProtocol),
   )
   ```
   
   The consumer imports REST protocol and service discovery related packages, 
but intentionally does **not** import Dubbo protocol:
   
   ```go
   _ "dubbo.apache.org/dubbo-go/v3/protocol/rest"
   _ "dubbo.apache.org/dubbo-go/v3/registry/protocol"
   _ "dubbo.apache.org/dubbo-go/v3/registry/servicediscovery"
   _ "dubbo.apache.org/dubbo-go/v3/registry/directory"
   _ "dubbo.apache.org/dubbo-go/v3/registry/zookeeper"
   _ "dubbo.apache.org/dubbo-go/v3/metadata/mapping/metadata"
   _ "dubbo.apache.org/dubbo-go/v3/metadata/report/zookeeper"
   ```
   
   Run:
   
   ```bash
   go run ./server
   go run ./client
   ```
   
   The consumer fails with:
   
   ```text
   panic: protocol for [dubbo] is not existing
   ```
   
   ### 4. Workaround
   
   Adding this import to the REST consumer fixes the issue:
   
   ```go
   _ "dubbo.apache.org/dubbo-go/v3/protocol/dubbo"
   ```
   
   After that, the REST call succeeds. The consumer discovers the provider 
application, fetches metadata through:
   
   ```text
   dubbo://127.0.0.1:/org.apache.dubbo.metadata.MetadataService
   ```
   
   and reconstructs a REST provider URL like:
   
   ```text
   rest://127.0.0.1:20080/org.apache.dubbo.samples.rest.GreetingService
   ```
   
   ## Expected Behavior
   
   A REST consumer should not need to manually import Dubbo protocol just 
because it uses application-level service discovery.
   
   If the metadata service internally uses Dubbo protocol, that dependency 
should be hidden by the service discovery / metadata module, or the error 
should clearly explain the required import.
   
   ## Actual Behavior
   
   The REST consumer fails at runtime because service discovery tries to call 
the metadata service through `dubbo://...`, but the Dubbo protocol extension is 
not registered.
   
   ## Why This Matters
   
   This leaks an internal