Browse Source

Update j8 (#6521)

* Update j8

* Update redkale-j8.dockerfile

* Update redkale-j8.dockerfile

* Update 2.4.0
Redkale 4 years ago
parent
commit
f5d261f7ab

+ 10 - 41
frameworks/Java/redkale/benchmark_config.json

@@ -21,7 +21,9 @@
                 "notes": "",
                 "versus": "Redkale"
             },
-            "cache": {
+            "j8": {
+                "plaintext_url": "/plaintext",
+                "json_url": "/json",
                 "cached_query_url": "/cached-worlds?q=",
                 "port": 8080,
                 "approach": "Realistic",
@@ -39,44 +41,8 @@
                 "notes": "",
                 "versus": "Redkale"
             },
-            "db": {
-                "db_url": "/db",
-                "port": 8080,
-                "approach": "Realistic",
-                "classification": "Fullstack",
-                "database": "Postgres",
-                "framework": "Redkale",
-                "language": "Java",
-                "flavor": "None",
-                "orm": "Raw",
-                "platform": "Redkale",
-                "webserver": "Redkale",
-                "os": "Linux",
-                "database_os": "Linux",
-                "display_name": "redkale",
-                "notes": "",
-                "versus": "Redkale"
-            },
-            "query": {
-                "query_url": "/queries?q=",
-                "port": 8080,
-                "approach": "Realistic",
-                "classification": "Fullstack",
-                "database": "Postgres",
-                "framework": "Redkale",
-                "language": "Java",
-                "flavor": "None",
-                "orm": "Raw",
-                "platform": "Redkale",
-                "webserver": "Redkale",
-                "os": "Linux",
-                "database_os": "Linux",
-                "display_name": "redkale",
-                "notes": "",
-                "versus": "Redkale"
-            },
-            "fortune": {
-                "fortune_url": "/fortunes",
+            "cache": {
+                "cached_query_url": "/cached-worlds?q=",
                 "port": 8080,
                 "approach": "Realistic",
                 "classification": "Fullstack",
@@ -93,8 +59,11 @@
                 "notes": "",
                 "versus": "Redkale"
             },
-            "update": {
-                "update_url": "/updates?q=",
+            "postgres": {
+                "db_url": "/db",
+                "query_url2": "/queries?q=", 
+                "fortune_url2": "/fortunes",
+                "update_url2": "/updates?q=",
                 "port": 8080,
                 "approach": "Realistic",
                 "classification": "Fullstack",

+ 7 - 27
frameworks/Java/redkale/config.toml

@@ -14,7 +14,9 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[cache]
+[j8]
+urls.plaintext = "/plaintext"
+urls.json = "/json"
 urls.cached_query = "/cached-worlds?q="
 approach = "Realistic"
 classification = "Fullstack"
@@ -26,8 +28,8 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[db]
-urls.db = "/db"
+[cache]
+urls.cached_query = "/cached-worlds?q="
 approach = "Realistic"
 classification = "Fullstack"
 database = "Postgres"
@@ -38,31 +40,10 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[fortune]
+[postgres]
+urls.db = "/db"
 urls.fortune = "/fortunes"
-approach = "Realistic"
-classification = "Fullstack"
-database = "Postgres"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = "Redkale"
-webserver = "Redkale"
-versus = "Redkale"
-
-[query]
 urls.query = "/queries?q="
-approach = "Realistic"
-classification = "Fullstack"
-database = "Postgres"
-database_os = "Linux"
-os = "Linux"
-orm = "Raw"
-platform = "Redkale"
-webserver = "Redkale"
-versus = "Redkale"
-
-[update]
 urls.update = "/updates?q="
 approach = "Realistic"
 classification = "Fullstack"
@@ -73,4 +54,3 @@ orm = "Raw"
 platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
-

+ 4 - 4
frameworks/Java/redkale/pom.xml

@@ -10,21 +10,21 @@
         <main.class>org.redkale.boot.Application</main.class>
         <stack.version>1.0.0</stack.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
     </properties> 
 
     <dependencies>  
         <dependency>
             <groupId>org.redkale</groupId>
             <artifactId>redkale</artifactId>
-            <version>2.3.0-SNAPSHOT</version>
+            <version>2.4.0-SNAPSHOT</version>
         </dependency>
         
         <dependency>
             <groupId>org.redkalex</groupId>
             <artifactId>redkale-plugins</artifactId>
-            <version>2.3.0-SNAPSHOT</version>
+            <version>2.4.0-SNAPSHOT</version>
         </dependency>
         
         <dependency> 

+ 1 - 1
frameworks/Java/redkale/redkale-cache.dockerfile

@@ -12,4 +12,4 @@ COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-Dbenchmarks.cache=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=80000", "-Dbenchmarks.cache=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 3 - 3
frameworks/Java/redkale/redkale-fortune.dockerfile → frameworks/Java/redkale/redkale-j8.dockerfile

@@ -1,15 +1,15 @@
-FROM maven:3.6.3-openjdk-16-slim as maven
+FROM maven:3.6.3-openjdk-8-slim as maven
 WORKDIR /redkale
 COPY src src
 COPY conf conf
 COPY pom.xml pom.xml
 RUN mvn package -q
 
-FROM openjdk:16-jdk-slim
+FROM openjdk:8u275-jdk-slim
 WORKDIR /redkale
 COPY conf conf
 COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-Dbenchmarks.db=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dbenchmarks.cache=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 1 - 1
frameworks/Java/redkale/redkale-db.dockerfile → frameworks/Java/redkale/redkale-postgres.dockerfile

@@ -12,4 +12,4 @@ COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-Dbenchmarks.db=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=80000", "-Dbenchmarks.db=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 0 - 15
frameworks/Java/redkale/redkale-query.dockerfile

@@ -1,15 +0,0 @@
-FROM maven:3.6.3-openjdk-16-slim as maven
-WORKDIR /redkale
-COPY src src
-COPY conf conf
-COPY pom.xml pom.xml
-RUN mvn package -q
-
-FROM openjdk:16-jdk-slim
-WORKDIR /redkale
-COPY conf conf
-COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
-
-EXPOSE 8080
-
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-Dbenchmarks.db=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 0 - 15
frameworks/Java/redkale/redkale-update.dockerfile

@@ -1,15 +0,0 @@
-FROM maven:3.6.3-openjdk-16-slim as maven
-WORKDIR /redkale
-COPY src src
-COPY conf conf
-COPY pom.xml pom.xml
-RUN mvn package -q
-
-FROM openjdk:16-jdk-slim
-WORKDIR /redkale
-COPY conf conf
-COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.jar
-
-EXPOSE 8080
-
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-Dbenchmarks.db=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 1 - 1
frameworks/Java/redkale/redkale.dockerfile

@@ -12,4 +12,4 @@ COPY --from=maven /redkale/target/redkale-benchmark-1.0.0.jar redkale-benchmark.
 
 EXPOSE 8080
 
-CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=20000", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:AutoBoxCacheMax=80000", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 14 - 2
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/CachedWorld.java

@@ -7,13 +7,13 @@ package org.redkalex.benchmark;
 
 import javax.persistence.*;
 import org.redkale.convert.json.JsonConvert;
-
+import org.redkale.source.*;
 
 /**
  *
  * @author zhangjx
  */
-@Cacheable(direct=true)
+//@Cacheable(direct = true)
 @Table(name = "World")
 public final class CachedWorld implements Comparable<CachedWorld> {
 
@@ -53,4 +53,16 @@ public final class CachedWorld implements Comparable<CachedWorld> {
         return JsonConvert.root().convertTo(this);
     }
 
+    public static class WorldEntityCache {
+
+        private Object[] array;
+
+        public WorldEntityCache(DataSource source) {
+            this.array = source.queryList(CachedWorld.class).toArray();
+        }
+
+        public CachedWorld findAt(int index) {
+            return (CachedWorld) array[index];
+        }
+    }
 }

+ 6 - 0
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Fortune.java

@@ -5,6 +5,7 @@
  */
 package org.redkalex.benchmark;
 
+import java.util.*;
 import javax.persistence.Id;
 import org.redkale.convert.json.JsonConvert;
 
@@ -27,6 +28,11 @@ public final class Fortune implements Comparable<Fortune> {
         this.message = message;
     }
 
+    public static List<Fortune> sort(List<Fortune> fortunes) {
+        Collections.sort(fortunes);
+        return fortunes;
+    }
+
     public int getId() {
         return id;
     }

+ 12 - 18
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java

@@ -11,7 +11,7 @@ import javax.annotation.Resource;
 import org.redkale.net.http.*;
 import org.redkale.service.AbstractService;
 import org.redkale.source.*;
-import org.redkale.util.AnyValue;
+import org.redkalex.benchmark.CachedWorld.WorldEntityCache;
 
 /**
  *
@@ -20,28 +20,21 @@ import org.redkale.util.AnyValue;
 @RestService(name = " ", repair = false)
 public class Service extends AbstractService {
 
-    private static final byte[] helloBytes = "Hello, world!".intern().getBytes();
+    private static final byte[] helloBytes = "Hello, world!".getBytes();
 
     private final Random random = new Random();
 
     @Resource
     private DataSource source;
 
-    private EntityCache<CachedWorld> cache;
-
-    @Override
-    public void init(AnyValue conf) {
-        if (Boolean.getBoolean("benchmarks.cache")) {
-            this.cache = ((DataSqlSource) source).loadCache(CachedWorld.class).array();
-        }
-    }
+    private WorldEntityCache cache;
 
     @RestMapping(name = "plaintext")
     public byte[] getHelloBytes() {
         return helloBytes;
     }
 
-    @RestMapping(name = "json", length = 27)
+    @RestMapping(name = "json")
     public Message getHelloMessage() {
         return Message.create("Hello, World!");
     }
@@ -72,28 +65,29 @@ public class Service extends AbstractService {
             final int index = i;
             futures[index] = source.findAsync(World.class, randomId()).thenAccept(v -> worlds[index] = v.randomNumber(randomId()));
         }
-        return CompletableFuture.allOf(futures).thenCompose(v -> {
-            Arrays.sort(worlds);
-            return source.updateAsync(worlds);
-        }).thenApply(v -> worlds);
+        return CompletableFuture.allOf(futures).thenCompose(v -> source.updateAsync(World.sort(worlds))).thenApply(v -> worlds);
     }
 
     @RestMapping(name = "fortunes")
     public CompletableFuture<HttpResult<String>> queryFortunes() {
         return source.queryListAsync(Fortune.class).thenApply((fortunes) -> {
             fortunes.add(new Fortune(0, "Additional fortune added at request time."));
-            Collections.sort(fortunes);
-            String html = FortunesTemplate.template(fortunes).render().toString();
+            String html = FortunesTemplate.template(Fortune.sort(fortunes)).render().toString();
             return new HttpResult("text/html; charset=utf-8", html);
         });
     }
 
     @RestMapping(name = "cached-worlds")
     public CachedWorld[] cachedWorlds(int q) {
+        if (cache == null) {
+            synchronized (this) {
+                if (cache == null) cache = new WorldEntityCache(source);
+            }
+        }
         final int size = Math.min(500, Math.max(1, q));
         final CachedWorld[] worlds = new CachedWorld[size];
         for (int i = 0; i < size; i++) {
-            worlds[i] = cache.findAt(randomId());
+            worlds[i] = cache.findAt(random.nextInt(10000));
         }
         return worlds;
     }

+ 6 - 0
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/World.java

@@ -5,6 +5,7 @@
  */
 package org.redkalex.benchmark;
 
+import java.util.*;
 import javax.persistence.Id;
 import org.redkale.convert.json.JsonConvert;
 
@@ -24,6 +25,11 @@ public final class World implements Comparable<World> {
         return this;
     }
 
+    public static World[] sort(World[] worlds) {
+        Arrays.sort(worlds);
+        return worlds;
+    }
+
     public int getId() {
         return id;
     }