Browse Source

Update dockerfile (#6440)

* Update benchmark_config.json

* Update and rename redkale-json.dockerfile to redkale-cache.dockerfile

* Update config.toml

* Update benchmark_config.json

* Update config.toml

* Update redkale-cache.dockerfile

* Update redkale.dockerfile

* Update redkale-postgres.dockerfile

* Update redkale-io.dockerfile

* Update World.java

* Update Message.java

* Update Fortune.java

* Update CachedWorld.java

* Update redkale-cache.dockerfile

* Update application.xml

* Update persistence.xml

* Update persistence.xml

* Update persistence.xml

* Update persistence.xml

* Update application.xml

* Update Service.java

* Update Service.java

* Update Service.java
Redkale 4 years ago
parent
commit
d2b9f667e3

+ 82 - 81
frameworks/Java/redkale/benchmark_config.json

@@ -1,83 +1,84 @@
 {
-  "framework": "redkale",
-  "tests": [{
-    "default": {
-      "plaintext_url": "/plaintext",   
-      "json_url": "/json",   
-      "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"
-    },
-	"postgres": {
-      "db_url": "/db",
-      "fortune_url": "/fortunes",
-      "query_url": "/queries?q=",
-      "update_url": "/updates?q=",
-      "cached_query_url": "/cached-worlds?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"
-    },
-	"io": {
-      "plaintext_url": "/plaintext",   
-      "json_url": "/json",   
-      "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"
-    },
-	"json": { 
-      "json_url": "/json",   
-      "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"
-    }
-  }]
+    "framework": "redkale",
+    "tests": [
+        {
+            "default": {
+                "plaintext_url": "/plaintext",
+                "json_url": "/json",
+                "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"
+            },
+            "cache": {
+                "cached_query_url": "/cached-worlds?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"
+            },
+            "postgres": {
+                "db_url": "/db",
+                "fortune_url": "/fortunes",
+                "query_url": "/queries?q=",
+                "update_url": "/updates?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"
+            },
+            "io": {
+                "plaintext_url": "/plaintext",
+                "json_url": "/json",
+                "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-io",
+                "notes": "",
+                "versus": "Redkale"
+            }
+        }
+    ]
 }

+ 1 - 1
frameworks/Java/redkale/conf/application.xml

@@ -10,7 +10,7 @@
         </properties>
     </resources> 
         
-    <server protocol="HTTP" lazy="true" port="8080">      
+    <server protocol="HTTP" iogroup="" lazy="true" port="8080">      
         <response>
             <contenttype plain="text/plain" json="application/json"/>  
             <date period="1000"/>

+ 9 - 10
frameworks/Java/redkale/config.toml

@@ -14,11 +14,7 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[postgres]
-urls.db = "/db"
-urls.fortune = "/fortunes"
-urls.query = "/queries?q="
-urls.update = "/updates?q="
+[cache]
 urls.cached_query = "/cached-worlds?q="
 approach = "Realistic"
 classification = "Fullstack"
@@ -30,12 +26,14 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[io]
-urls.plaintext = "/plaintext"
-urls.json = "/json"
+[postgres]
+urls.db = "/db"
+urls.fortune = "/fortunes"
+urls.query = "/queries?q="
+urls.update = "/updates?q="
 approach = "Realistic"
 classification = "Fullstack"
-database = "None"
+database = "Postgres"
 database_os = "Linux"
 os = "Linux"
 orm = "Raw"
@@ -43,7 +41,8 @@ platform = "Redkale"
 webserver = "Redkale"
 versus = "Redkale"
 
-[json]
+[io]
+urls.plaintext = "/plaintext"
 urls.json = "/json"
 approach = "Realistic"
 classification = "Fullstack"

+ 1 - 1
frameworks/Java/redkale/redkale-json.dockerfile → 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=80000", "-XX:BiasedLockingStartupDelay=500", "-Djson.direct.test=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-io.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=80000", "-XX:BiasedLockingStartupDelay=500", "-Dio.direct.fd=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-Dio.direct.fd=true", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 1 - 1
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=80000", "-XX:BiasedLockingStartupDelay=500", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-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=80000", "-XX:BiasedLockingStartupDelay=500", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]
+CMD ["java", "-server", "-XX:+UseNUMA", "-XX:+UseParallelGC", "-XX:+AggressiveOpts", "-DAPP_HOME=./", "-jar", "redkale-benchmark.jar"]

+ 39 - 1
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/CachedWorld.java

@@ -6,6 +6,8 @@
 package org.redkalex.benchmark;
 
 import javax.persistence.*;
+import org.redkale.convert.json.JsonConvert;
+
 
 /**
  *
@@ -13,6 +15,42 @@ import javax.persistence.*;
  */
 @Cacheable(direct=true)
 @Table(name = "World")
-public class CachedWorld extends World {
+public final class CachedWorld implements Comparable<CachedWorld> {
+
+    @Id
+    private int id;
+
+    private int randomNumber;
+
+    public CachedWorld randomNumber(int randomNumber) {
+        this.randomNumber = randomNumber;
+        return this;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public int getRandomNumber() {
+        return randomNumber;
+    }
+
+    public void setRandomNumber(int randomNumber) {
+        this.randomNumber = randomNumber;
+    }
+
+    @Override
+    public int compareTo(CachedWorld o) {
+        return Integer.compare(id, o.id);
+    }
+
+    @Override
+    public String toString() {
+        return JsonConvert.root().convertTo(this);
+    }
 
 }

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

@@ -12,7 +12,7 @@ import org.redkale.convert.json.JsonConvert;
  *
  * @author zhangjx
  */
-public class Fortune implements Comparable<Fortune> {
+public final class Fortune implements Comparable<Fortune> {
 
     @Id
     private int id;

+ 1 - 1
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Message.java

@@ -12,7 +12,7 @@ import org.redkale.convert.json.JsonConvert;
  *
  * @author zhangjx
  */
-public class Message {
+public final class Message {
 
     @ConvertSmallString
     private String message;

+ 22 - 26
frameworks/Java/redkale/src/main/java/org/redkalex/benchmark/Service.java

@@ -13,7 +13,7 @@ import javax.annotation.Resource;
 import org.redkale.net.http.*;
 import org.redkale.service.AbstractService;
 import org.redkale.source.*;
-import org.redkale.util.StringWrapper;
+import org.redkale.util.AnyValue;
 
 /**
  *
@@ -22,13 +22,22 @@ import org.redkale.util.StringWrapper;
 @RestService(name = " ", repair = false)
 public class Service extends AbstractService {
 
-    private static final byte[] helloBytes = "Hello, world!".getBytes();
+    private static final byte[] helloBytes = "Hello, world!".intern().getBytes();
 
     private final ThreadLocal<Random> localRandom = ThreadLocal.withInitial(Random::new);
 
     @Resource
     private DataSource source;
 
+    private EntityCache<CachedWorld> entityCache;
+
+    @Override
+    public void init(AnyValue conf) {
+        if (source instanceof DataSqlSource) {
+            this.entityCache = ((DataSqlSource) source).loadCache(CachedWorld.class);
+        }
+    }
+
     @RestMapping(name = "plaintext")
     public byte[] getHelloBytes() {
         return helloBytes;
@@ -41,7 +50,7 @@ public class Service extends AbstractService {
 
     @RestMapping(name = "db")
     public CompletableFuture<World> findWorldAsync() {
-        return source.findAsync(World.class, randomId());
+        return source.findAsync(World.class, 1 + localRandom.get().nextInt(10000));
     }
 
     @RestMapping(name = "queries")
@@ -51,7 +60,7 @@ public class Service extends AbstractService {
         final World[] worlds = new World[size];
 
         final AtomicInteger index = new AtomicInteger();
-        final Function<?, CompletableFuture> func = f -> source.findAsync(World.class, randomId(random))
+        final Function<?, CompletableFuture> func = f -> source.findAsync(World.class, 1 + random.nextInt(10000))
             .thenAccept(v -> worlds[index.getAndIncrement()] = v);
         CompletableFuture future = func.apply(null);
         for (int i = 1; i < size; i++) {
@@ -67,20 +76,24 @@ public class Service extends AbstractService {
         final World[] worlds = new World[size];
 
         final AtomicInteger index = new AtomicInteger();
-        final Function<?, CompletableFuture> func = f -> source.findAsync(World.class, randomId(random))
-            .thenAccept(v -> worlds[index.getAndIncrement()] = v.randomNumber(randomId(random)));
+        final Function<?, CompletableFuture> func = f -> source.findAsync(World.class, 1 + random.nextInt(10000))
+            .thenAccept(v -> worlds[index.getAndIncrement()] = v.randomNumber(1 + random.nextInt(10000)));
         CompletableFuture future = func.apply(null);
         for (int i = 1; i < size; i++) {
             future = future.thenCompose(func);
         }
-        return future.thenCompose(v -> source.updateAsync(sort(worlds))).thenApply(v -> worlds);
+        return future.thenCompose(v -> {
+            Arrays.sort(worlds);
+            return source.updateAsync(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."));
-            String html = FortunesTemplate.template(sort(fortunes)).render().toString();
+            Collections.sort(fortunes);
+            String html = FortunesTemplate.template(fortunes).render().toString();
             return new HttpResult("text/html; charset=utf-8", html);
         });
     }
@@ -91,26 +104,9 @@ public class Service extends AbstractService {
         final Random random = localRandom.get();
         final CachedWorld[] worlds = new CachedWorld[size];
         for (int i = 0; i < size; i++) {
-            worlds[i] = source.find(CachedWorld.class, randomId(random));
+            worlds[i] = entityCache.find(1 + random.nextInt(10000));
         }
         return worlds;
     }
 
-    private World[] sort(World[] words) {
-        Arrays.sort(words);
-        return words;
-    }
-
-    private List<Fortune> sort(List<Fortune> fortunes) {
-        Collections.sort(fortunes);
-        return fortunes;
-    }
-
-    private int randomId() {
-        return 1 + localRandom.get().nextInt(10000);
-    }
-
-    private int randomId(Random random) {
-        return 1 + random.nextInt(10000);
-    }
 }

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

@@ -12,7 +12,7 @@ import org.redkale.convert.json.JsonConvert;
  *
  * @author zhangjx
  */
-public class World implements Comparable<World> {
+public final class World implements Comparable<World> {
 
     @Id
     private int id;