From f046bb4a91f765321018f873d4181aadbf8a1bed Mon Sep 17 00:00:00 2001 From: zhouhao Date: Wed, 15 Apr 2020 21:17:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=95=E9=AA=8C=E6=80=A7=E5=8A=9F=E8=83=BD:?= =?UTF-8?q?=E5=86=85=E5=B5=8Credis=E5=90=AF=E5=8A=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- jetlinks-standalone/pom.xml | 7 +++ .../EmbeddedRedisConfiguration.java | 45 +++++++++++++++++ .../main/resources/META-INF/spring.factories | 2 + .../src/main/resources/application-docker.yml | 36 ------------- .../main/resources/application-embedded.yml | 50 +++++++++++++++++++ .../src/main/resources/application.yml | 1 + pom.xml | 10 ++++ 7 files changed, 115 insertions(+), 36 deletions(-) create mode 100644 jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/configuration/EmbeddedRedisConfiguration.java create mode 100644 jetlinks-standalone/src/main/resources/META-INF/spring.factories delete mode 100644 jetlinks-standalone/src/main/resources/application-docker.yml create mode 100644 jetlinks-standalone/src/main/resources/application-embedded.yml diff --git a/jetlinks-standalone/pom.xml b/jetlinks-standalone/pom.xml index 8bd5eee5..65b23cc6 100644 --- a/jetlinks-standalone/pom.xml +++ b/jetlinks-standalone/pom.xml @@ -81,6 +81,13 @@ + + + com.github.tonivade + claudb + 1.7.1 + true + io.netty diff --git a/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/configuration/EmbeddedRedisConfiguration.java b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/configuration/EmbeddedRedisConfiguration.java new file mode 100644 index 00000000..45622745 --- /dev/null +++ b/jetlinks-standalone/src/main/java/org/jetlinks/community/standalone/configuration/EmbeddedRedisConfiguration.java @@ -0,0 +1,45 @@ +package org.jetlinks.community.standalone.configuration; + +import com.github.tonivade.claudb.ClauDB; +import com.github.tonivade.claudb.DBConfig; +import com.github.tonivade.resp.RespServer; +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.event.ApplicationPreparedEvent; +import org.springframework.context.ApplicationListener; +import org.springframework.core.Ordered; +import org.springframework.core.env.Environment; + +import java.io.File; + +public class EmbeddedRedisConfiguration implements ApplicationListener, Ordered { + + @Override + public void onApplicationEvent(ApplicationPreparedEvent event) { + Environment environment = event.getApplicationContext().getEnvironment(); + if (!environment.getProperty("spring.redis.embedded.enabled", Boolean.class, false)) { + return; + } + + String dataPath = environment.getProperty("spring.redis.embedded.data-path", "./data/redis"); + new File(dataPath).mkdirs(); + DBConfig config = new DBConfig(); + config.setPersistenceActive(true); + config.setAofFile(dataPath.concat("/jetlinks.aof")); + config.setRdbFile(dataPath.concat("/jetlinks.rdb")); + + RespServer server = ClauDB.builder() + .port(environment.getProperty("spring.redis.embedded.port", Integer.class, 6379)) + .host(environment.getProperty("spring.redis.embedded.host", "0.0.0.0")) + .config(config) + .build(); + server.start(); + + } + + @Override + public int getOrder() { + return Ordered.HIGHEST_PRECEDENCE; + } + +} \ No newline at end of file diff --git a/jetlinks-standalone/src/main/resources/META-INF/spring.factories b/jetlinks-standalone/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000..a9d5699d --- /dev/null +++ b/jetlinks-standalone/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.context.ApplicationListener=\ +org.jetlinks.community.standalone.configuration.EmbeddedRedisConfiguration \ No newline at end of file diff --git a/jetlinks-standalone/src/main/resources/application-docker.yml b/jetlinks-standalone/src/main/resources/application-docker.yml deleted file mode 100644 index f4353b65..00000000 --- a/jetlinks-standalone/src/main/resources/application-docker.yml +++ /dev/null @@ -1,36 +0,0 @@ -spring: - redis: - host: redis - port: 6379 - r2dbc: - url: r2dbc:postgresql://postgres:5432/jetlinks - username: postgres - password: jetlinks -management: - metrics: - export: - elastic: - host: http://elasticsearch:9200 - index: jetlinks-metrics -elasticsearch: - client: - host: elasticsearch - port: 9200 -hsweb: - file: - upload: - static-file-path: ./static/upload - static-location: http://127.0.0.1:8844/upload - cache: - type: redis - redis: - local-cache-type: guava -logging: - level: - org.jetlinks: info - rule.engine: info - org.hswebframework: warn - org.springframework.transaction: warn - org.springframework.data.r2dbc.connectionfactory: warn - io.micrometer: warn - org.hswebframework.expands: warn diff --git a/jetlinks-standalone/src/main/resources/application-embedded.yml b/jetlinks-standalone/src/main/resources/application-embedded.yml new file mode 100644 index 00000000..29e4bc73 --- /dev/null +++ b/jetlinks-standalone/src/main/resources/application-embedded.yml @@ -0,0 +1,50 @@ +spring: + resources: + static-locations: file:./index/, file:./static/,/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/, classpath:/public/ + redis: + embedded: + enabled: true # 使用内置的redis,不建议在生产环境中使用. + host: 127.0.0.1 + port: 6379 + data-path: ./data/redis + host: 127.0.0.1 + port: 6379 + lettuce: + pool: + max-active: 1024 + timeout: 20s + r2dbc: + url: r2dbc:h2:file:///./data/h2db/jetlinks + username: sa + password: + pool: + max-size: 32 +easyorm: + default-schema: PUBLIC # 数据库默认的schema + dialect: h2 #数据库方言 +elasticsearch: + embedded: + enabled: true # 为true时使用内嵌的elasticsearch,不建议在生产环境中使用 + data-path: ./data/elasticsearch + port: 9200 + host: 0.0.0.0 + client: + host: localhost + port: 9200 + max-conn-total: 128 + connect-timeout: 5000 + socket-timeout: 5000 + connection-request-timeout: 8000 + index: + default-strategy: time-by-month #默认es的索引按月进行分表, direct则为直接操作索引. + settings: + number-of-shards: 1 # es 分片数量 + number-of-replicas: 0 # 副本数量 +device: + message: + writer: + time-series: + enabled: true #写出设备消息数据到elasticsearch +logging: + level: + com.github.tonivade: error \ No newline at end of file diff --git a/jetlinks-standalone/src/main/resources/application.yml b/jetlinks-standalone/src/main/resources/application.yml index 8df23c91..46787d3a 100644 --- a/jetlinks-standalone/src/main/resources/application.yml +++ b/jetlinks-standalone/src/main/resources/application.yml @@ -106,6 +106,7 @@ logging: org.jetlinks.gateway: debug org.springframework: warn org.elasticsearch: error + config: classpath:logback-spring.xml vertx: max-event-loop-execute-time-unit: seconds max-event-loop-execute-time: 30 diff --git a/pom.xml b/pom.xml index 9b1865d8..5c4df802 100644 --- a/pom.xml +++ b/pom.xml @@ -347,6 +347,16 @@ https://repo.spring.io/milestone + + + + + + + + + +