lengmodkx commented on issue #13584:
URL: https://github.com/apache/dubbo/issues/13584#issuecomment-4881470203

   I can confirm this is a real and blocking gap. Here is a concrete use case:
   
   We have a Python-based OMR (Optical Mark Recognition) service that needs to 
be called by Java microservices (Spring Boot 3 + Dubbo 3.3.6, Nacos service 
discovery).
   
   **What we tried**:
   - Registered the Python service to Nacos via `nacos-sdk-python`, manually 
constructing all Dubbo 3 metadata fields (`interface`, `path`, `methods`, 
`category`, `service-name-mapping`, `metadata-type`, `prefer.serialization`, 
etc.) to match what a Java Dubbo provider would emit
   - Aligned protocol (`tri`), version (`""`), and migration mode 
(`APPLICATION_FIRST`) on both sides
   
   **The exact roadblock**: Dubbo 3 consumer-side `InterfaceRouter` requires 
`MetadataService.getServiceMapping()` to resolve `interface → application` 
mapping. Since Python has no MetadataService implementation (and no protobuf 
spec to implement against), the consumer fails with:
   
   > `No interface-apps mapping found in local cache`
   
   Manually seeding `~/.dubbo/.mapping.{app}.dubbo.cache` worked as a hack, but 
this is not production-viable.
   
   **The broader issue**: Even with the protobuf definition provided in the 
comment above, implementing MetadataService in a non-Java language still 
requires:
   1. A clear spec of which metadata fields are mandatory for application-level 
vs interface-level discovery
   2. The `service-name-mapping` protocol between MetadataService and Nacos 
registration
   3. Consistent behavior across Dubbo versions (we found that 
`FORCE_INTERFACE` vs `APPLICATION_FIRST` migration modes have different 
metadata requirements)
   
   **Current status**: We abandoned the Dubbo approach and fell back to raw 
HTTP calls, which works but loses all Dubbo benefits (load balancing, circuit 
breaking, grayscale routing via `dubbo.tag`).
   
   Happy to contribute testing or documentation if this moves forward.


-- 
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]

Reply via email to