Skip to content

Commit 8c9c7f5

Browse files
authored
jdbc-service (#8630)
* jdbc-service * add redkale-block test * trace.enabled
1 parent 9a69933 commit 8c9c7f5

File tree

9 files changed

+141
-10
lines changed

9 files changed

+141
-10
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
/*
2+
* To change this license header, choose License Headers in Project Properties.
3+
* To change this template file, choose Tools | Templates
4+
* and open the template in the editor.
5+
*/
6+
package org.redkalex.benchmark;
7+
8+
import java.util.*;
9+
import java.util.concurrent.*;
10+
import java.util.stream.Stream;
11+
import org.redkale.annotation.*;
12+
import org.redkale.net.http.*;
13+
import org.redkale.service.AbstractService;
14+
import org.redkale.source.DataSource;
15+
16+
/**
17+
* 测试redkale-jdbc, 需要覆盖到原BenchmarkService
18+
*
19+
* @author zhangjx
20+
*/
21+
@RestService(name = " ", repair = false)
22+
public class BenchmarkService extends AbstractService {
23+
24+
private static final byte[] helloBytes = "Hello, world!".getBytes();
25+
26+
@Resource
27+
private DataSource source;
28+
29+
@NonBlocking
30+
@RestMapping(auth = false)
31+
public byte[] plaintext() {
32+
return helloBytes;
33+
}
34+
35+
@NonBlocking
36+
@RestMapping(auth = false)
37+
public Message json() {
38+
return new Message("Hello, World!");
39+
}
40+
41+
@RestMapping(auth = false)
42+
public World db() {
43+
return source.find(World.class, ThreadLocalRandom.current().nextInt(10000) + 1);
44+
}
45+
46+
@RestMapping(auth = false)
47+
public List<World> queries(int q) {
48+
return source.findsList(World.class, random(q));
49+
}
50+
51+
@RestMapping(auth = false)
52+
public List<World> updates(int q) {
53+
int size = Math.min(500, Math.max(1, q));
54+
int[] newNumbers = ThreadLocalRandom.current().ints(size, 1, 10001).toArray();
55+
List<World> words = source.findsList(World.class, random(q));
56+
source.update(World.updateNewNumbers(words, newNumbers));
57+
return words;
58+
}
59+
60+
@RestMapping(auth = false)
61+
public HttpScope fortunes() {
62+
List<Fortune> fortunes = source.queryList(Fortune.class);
63+
fortunes.add(new Fortune(0, "Additional fortune added at request time."));
64+
Collections.sort(fortunes);
65+
return HttpScope.refer("").referObj(fortunes);
66+
}
67+
68+
@NonBlocking
69+
@RestMapping(name = "cached-worlds", auth = false)
70+
public CachedWorld[] cachedWorlds(int q) {
71+
return source.finds(CachedWorld.class, random(q));
72+
}
73+
74+
private Stream<Integer> random(int q) {
75+
int size = Math.min(500, Math.max(1, q));
76+
return ThreadLocalRandom.current().ints(size, 1, 10001).boxed();
77+
}
78+
}

frameworks/Java/redkale/benchmark_config.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,27 @@
9595
"notes": "",
9696
"versus": "Redkale"
9797
},
98+
"block": {
99+
"db_url": "/db",
100+
"query_url": "/queries?q=",
101+
"fortune_url": "/fortunes",
102+
"update_url": "/updates?q=",
103+
"port": 8080,
104+
"approach": "Realistic",
105+
"classification": "Fullstack",
106+
"database": "Postgres",
107+
"framework": "Redkale",
108+
"language": "Java",
109+
"flavor": "None",
110+
"orm": "Raw",
111+
"platform": "Redkale",
112+
"webserver": "Redkale",
113+
"os": "Linux",
114+
"database_os": "Linux",
115+
"display_name": "redkale-block",
116+
"notes": "",
117+
"versus": "Redkale"
118+
},
98119
"vertx": {
99120
"db_url": "/db",
100121
"query_url": "/queries?q=",

frameworks/Java/redkale/conf/application.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
<application port="8585">
44

55
<properties>
6-
<property name="system.property.redkale.trace.enable" value="false"/>
7-
<property name="system.property.redkale.trace.disable" value="true"/>
6+
<property name="system.property.redkale.trace.enabled" value="false"/>
87
<property name="system.property.redkale.http.request.pipeline.sameheaders" value="true"/>
98
<property name="system.property.redkale.http.response.header.server" value="redkale"/>
109
<property name="system.property.redkale.http.response.header.connection" value="none"/>

frameworks/Java/redkale/config.toml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,21 @@ platform = "Redkale"
7070
webserver = "Redkale"
7171
versus = "Redkale"
7272

73+
[block]
74+
urls.db = "/db"
75+
urls.fortune = "/fortunes"
76+
urls.query = "/queries?q="
77+
urls.update = "/updates?q="
78+
approach = "Realistic"
79+
classification = "Fullstack"
80+
database = "Postgres"
81+
database_os = "Linux"
82+
os = "Linux"
83+
orm = "Raw"
84+
platform = "Redkale"
85+
webserver = "Redkale"
86+
versus = "Redkale"
87+
7388
[vertx]
7489
urls.db = "/db"
7590
urls.fortune = "/fortunes"

frameworks/Java/redkale/pom-vertx.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<properties>
99
<main.class>org.redkale.boot.Application</main.class>
1010
<redkale.version>2.8.0-SNAPSHOT</redkale.version>
11-
<vertx.version>4.4.4</vertx.version>
11+
<vertx.version>4.5.0</vertx.version>
1212
<vertx-scram.version>2.1</vertx-scram.version>
1313
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1414
<maven.compiler.source>18</maven.compiler.source>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM maven:3.8.6-openjdk-18-slim as maven
2+
WORKDIR /redkale
3+
COPY src src
4+
COPY conf conf
5+
COPY pom.xml pom.xml
6+
COPY BenchmarkService.java src/main/java/org/redkalex/benchmark/BenchmarkService.java
7+
RUN mvn package -q
8+
9+
FROM openjdk:21-jdk-slim
10+
WORKDIR /redkale
11+
COPY conf conf
12+
COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
13+
14+
EXPOSE 8080
15+
16+
CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

frameworks/Java/redkale/redkale-jdbc.dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ WORKDIR /redkale
33
COPY src src
44
COPY conf conf
55
COPY pom-jdbc.xml pom.xml
6+
COPY BenchmarkService.java src/main/java/org/redkalex/benchmark/BenchmarkService.java
67
RUN mvn package -q
78

89
FROM openjdk:21-jdk-slim

frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/BenchmarkService.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.*;
99
import java.util.concurrent.*;
1010
import java.util.stream.IntStream;
11+
import java.util.stream.Stream;
1112
import org.redkale.annotation.*;
1213
import org.redkale.net.http.*;
1314
import org.redkale.service.AbstractService;
@@ -43,9 +44,7 @@ public CompletableFuture<World> db() {
4344

4445
@RestMapping(auth = false)
4546
public CompletableFuture<List<World>> queries(int q) {
46-
int size = Math.min(500, Math.max(1, q));
47-
IntStream ids = ThreadLocalRandom.current().ints(size, 1, 10001);
48-
return source.findsListAsync(World.class, ids.boxed());
47+
return source.findsListAsync(World.class, random(q));
4948
}
5049

5150
@RestMapping(auth = false)
@@ -69,8 +68,11 @@ public CompletableFuture<HttpScope> fortunes() {
6968

7069
@RestMapping(name = "cached-worlds", auth = false)
7170
public CachedWorld[] cachedWorlds(int q) {
71+
return source.finds(CachedWorld.class, random(q));
72+
}
73+
74+
private Stream<Integer> random(int q) {
7275
int size = Math.min(500, Math.max(1, q));
73-
IntStream ids = ThreadLocalRandom.current().ints(size, 1, 10001);
74-
return source.finds(CachedWorld.class, ids.boxed());
76+
return ThreadLocalRandom.current().ints(size, 1, 10001).boxed();
7577
}
7678
}

frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/CachedWorld.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@
1010
*
1111
* @author zhangjx
1212
*/
13-
@Entity
1413
@Table(name = "world")
15-
@Cacheable(direct = true)
14+
@Entity(cacheable = true, cacheDirect = true)
1615
public final class CachedWorld {
1716

1817
@Id

0 commit comments

Comments
 (0)