Releases: esasmer-dou/rest-sample-dubbo-consumer
Release list
v0.4.0
rest-sample-dubbo-consumer 0.4.0
0.4.0 updates the sample to the generated REST and native Dubbo client line.
What's New
- Uses
rust-java-rest:4.0.0,java-rust-dubbo:0.5.0, and
rest-sample-utility:0.3.0. - Replaces handwritten Dubbo client wrappers with build-time generated native clients.
- Replaces handwritten startup index files with generated component and route metadata.
- Centralizes measured runtime plans and route budgets in explicit immutable configuration classes.
- Keeps full, native-static, and ZooKeeper profiles as separate build/runtime choices.
- Removes the duplicate
/api/v1/catalog/db/customersalias. Use the canonical
/api/v1/customers/dbroute.
Run
mvn clean package
java -jar target/rest-sample-dubbo-consumer-0.4.0.jarREST handlers, validation, response decisions, and service orchestration remain Java code. Rust owns
HTTP I/O and the bounded native Dubbo transport path.
v0.3.2
rest-sample-dubbo-consumer v0.3.2
This patch release aligns with rust-java-rest:3.4.1, java-rust-dubbo:0.4.1,
rest-sample-utility:0.2.0, and rust-sample-model:0.2.0.
What Changed
- The
micro-2x2profile now gives the raw and typed customer-create routes a4request limit
and a250 msqueue wait each. - Both routes share the same two native workers, provider permits, Hikari connections, and
PostgreSQL commit path. The new limits prevent a hidden sixteen-request queue in front of that
shared backend. - A repeatable c16 write gate checks maximum p99, run-to-run p99 spread, and non-2xx rate instead of
accepting one favorable run. - English and Turkish configuration guides explain how route limits add up when endpoints share a
provider and database pool.
Measured Result
Under the same Docker Desktop micro-2x2 limits, the final three-run c16 gate measured:
| Metric | Before | v0.3.2 |
|---|---|---|
| Average RPS | 340.93 |
501.74 |
| Average p99 | 234.45 ms |
132.91 ms |
| Maximum p99 | 485.22 ms |
143.83 ms |
| p99 spread | 329.92 ms |
25.36 ms |
| Non-2xx rate | 0.020% |
0.014% |
These numbers are sample-environment evidence, not a universal production guarantee. Run the gate
with your own provider, PostgreSQL storage, CPU limits, and pod memory limits before changing a
production profile.
Compatibility
Java REST annotations, handler signatures, Dubbo service contracts, JSON payloads, and native ABI
requirements are unchanged. Existing application code does not need to change.
v0.3.1
rest-sample-dubbo-consumer v0.3.1
This sample aligns with rust-java-rest:3.4.1 and java-rust-dubbo:0.4.1.
- Uses the ABI
24/7/6native runtime line. - Adds the native idle-connection TTL to the copy-paste configuration.
- Keeps the memory-first Dubbo profile bounded at two workers and two endpoint connections.
- Keeps route admission explicit so overload returns controlled
503responses instead of growing
an unbounded queue. - Updates Docker/Jlink workspace builds and runtime configuration tests.
- Preserves all Java REST annotations, handlers, Dubbo interfaces, and response payloads.
v0.3.0
rest-sample-dubbo-consumer v0.3.0
This sample aligns with rust-java-rest:3.4.0 and java-rust-dubbo:0.4.0.
- Keeps Java handlers and REST annotations unchanged.
- Uses the ABI
24/6/6native runtime line. - Documents and configures the bounded native Dubbo thread stack.
- Keeps
blockingandtokio-demuxtransport resource planes mutually exclusive. - Updates native-static health diagnostics to report the selected transport and pool counts.
- Refreshes the Jlink workspace images with the current low-memory OpenJ9 options.
v0.2.0
Uses rust-java-rest 3.3.0 and java-rust-dubbo 0.3.0 with declarative startup, shared generated JSON models and isolated full, native-static and ZooKeeper profiles. See the bilingual README for production recipes.