Commit 3b5011f6 authored by tangwei's avatar tangwei

增加redis 集群,es 分片

parent 3120e68a
......@@ -14,7 +14,7 @@ import org.springframework.data.elasticsearch.annotations.Mapping;
*
*/
@Data
@Document(indexName = "org", type = "_doc", shards = 1, replicas = 0)
@Document(indexName = "org", type = "_doc", shards = 3, replicas = 1)
public class ESOrgUsrDto {
/**部门主键 */
......
......@@ -21,7 +21,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "jcs", type = "alertCalled", shards = 1, replicas = 0)
@Document(indexName = "jcs", type = "alertCalled", shards = 3, replicas = 1)
public class ESAlertCalled {
/** 主键 */
......
......@@ -16,7 +16,7 @@ import org.springframework.data.elasticsearch.annotations.FieldType;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "jcs", type = "car", shards = 1, replicas = 0)
@Document(indexName = "jcs", type = "car", shards = 3, replicas = 1)
public class ESCar {
@Id
private String id;
......
......@@ -13,7 +13,7 @@ import java.util.List;
@Data
@Accessors(chain = true)
@Document(indexName = "knowledgebase", type = "doc", shards = 1, replicas = 0)
@Document(indexName = "knowledgebase", type = "doc", shards = 3, replicas = 1)
public class ESDocEntity {
/** 主键 */
......
......@@ -10,7 +10,7 @@ import org.springframework.data.elasticsearch.annotations.Parent;
@Data
@Accessors(chain = true)
@Document(indexName = "knowledgebase",type = "tag", shards = 1, replicas = 0)
@Document(indexName = "knowledgebase",type = "tag", shards = 3, replicas = 1)
public class ESTagEntity {
/** 主键 */
......
package com.yeejoin.equipmanage.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -36,12 +36,27 @@ public class ElasticSearchClientConfig {
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost);
builder.setHttpClientConfigCallback(httpClientBuilder -> {
String url = uris.replace("http://", "");
String[] urls= url.split(",");
HttpHost[] httpHosts = new HttpHost[urls.length];
try {
// String url = uris.replace("http://", "");
// final String[] parts = StringUtils.split(url, ":");
// HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
// RestClientBuilder builder = RestClient.builder(httpHost);
for (int i = 0; i < urls.length; i++) {
final String[] parts = StringUtils.split(urls[i], ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
httpHosts[i]=httpHost;
}
RestClientBuilder builder = RestClient.builder(httpHosts);
builder.setHttpClientConfigCallback(httpClientBuilder -> {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
});
......
package com.yeejoin.amos.boot.module.jcs.biz.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -33,12 +33,28 @@ public class ElasticSearchClientConfig {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost);
String url = uris.replace("http://", "");
String[] urls= url.split(",");
HttpHost[] httpHosts = new HttpHost[urls.length];
try {
// String url = uris.replace("http://", "");
// final String[] parts = StringUtils.split(url, ":");
// HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
// RestClientBuilder builder = RestClient.builder(httpHost);
for (int i = 0; i < urls.length; i++) {
final String[] parts = StringUtils.split(urls[i], ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
httpHosts[i]=httpHost;
}
RestClientBuilder builder = RestClient.builder(httpHosts);
builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
......
package com.yeejoin.amos.knowledgebase.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -113,6 +113,11 @@
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.latentdanger.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -118,6 +118,11 @@
<groupId>cn.jpush.api</groupId>
<artifactId>jpush-client</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.maintenance.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -108,6 +108,11 @@
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.patrol.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -163,5 +163,10 @@
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</dependency>
</dependencies>
</project>
package com.yeejoin.amos.supervision.config;
import com.yeejoin.amos.boot.biz.config.RedisConfigProperties;
import io.lettuce.core.ClientOptions;
import io.lettuce.core.cluster.ClusterClientOptions;
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import java.time.Duration;
@Configuration
public class RedisClusterConfig {
@Autowired
private RedisConfigProperties redisConfigProperties;
@Bean
@ConditionalOnProperty(name = "spring.redis.mode", havingValue = "cluster")
public RedisConnectionFactory redisConnectionFactory() {
// 开启自适应集群拓扑刷新和周期拓扑刷新,不开启相应槽位主节点挂掉会出现服务不可用,直到挂掉节点重新恢复
ClusterTopologyRefreshOptions clusterTopologyRefreshOptions = ClusterTopologyRefreshOptions.builder()
.enableAllAdaptiveRefreshTriggers() // 开启自适应刷新,自适应刷新不开启,Redis集群变更时将会导致连接异常
.adaptiveRefreshTriggersTimeout(Duration.ofSeconds(30)) //自适应刷新超时时间(默认30秒),默认关闭开启后时间为30秒
.enablePeriodicRefresh(Duration.ofSeconds(20)) // 默认关闭开启后时间为60秒 ClusterTopologyRefreshOptions.DEFAULT_REFRESH_PERIOD 60 .enablePeriodicRefresh(Duration.ofSeconds(2)) = .enablePeriodicRefresh().refreshPeriod(Duration.ofSeconds(2))
.build();
ClientOptions clientOptions = ClusterClientOptions.builder()
.topologyRefreshOptions(clusterTopologyRefreshOptions)
.build();
// 客户端读写分离配置
LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
.clientOptions(clientOptions)
.build();
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(
redisConfigProperties.getCluster().getNodes());
return new LettuceConnectionFactory(redisClusterConfiguration, clientConfig);
}
}
......@@ -16,13 +16,14 @@ spring.redis.password=1234560
## ES properties:
biz.elasticsearch.address=172.16.11.201
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=${biz.elasticsearch.address}:9300
spring.elasticsearch.rest.uris=http://${biz.elasticsearch.address}:9200
spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.rest.uris=http://127.0.0.1:9201,http://127.0.0.1:9202,http://127.0.0.1:9203
spring.data.elasticsearch.client.reactive.connection-timeout=3000
spring.data.elasticsearch.client.reactive.socket-timeout=3000
elasticsearch.username= elastic
elasticsearch.password= 123456
## emqx properties:
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
......
......@@ -38,9 +38,13 @@ eureka.instance.metadata-map.management.api-docs=http://localhost:${server.port}
#ES
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=39.100.239.237:9300
spring.elasticsearch.rest.uris=http://39.100.239.237:9200
spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.rest.uris=http://127.0.0.1:9201,http://127.0.0.1:9202,http://127.0.0.1:9203
spring.data.elasticsearch.client.reactive.connection-timeout=3000
spring.data.elasticsearch.client.reactive.socket-timeout=3000
elasticsearch.username= elastic
elasticsearch.password= 123456
#emqx v4.0
......@@ -74,5 +78,3 @@ amos.feign.gennerator.feign-dir=C:/Users/Administrator/IdeaProjects/knowledge-ba
file.url=http://39.98.45.134:9000/
elasticsearch.username= elastic
elasticsearch.password= 123456
\ No newline at end of file
......@@ -22,7 +22,7 @@ import java.util.Date;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "tzs", type = "tzsAlertCalled", shards = 1, replicas = 0)
@Document(indexName = "tzs", type = "tzsAlertCalled", shards = 3, replicas = 1)
public class ESAlertCalled {
/** 主键 */
......
......@@ -15,7 +15,7 @@ import org.springframework.data.elasticsearch.annotations.GeoPointField;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "cylinder", replicas = 0)
@Document(indexName = "cylinder", shards = 3, replicas = 1)
public class EsCylinder {
/**
......
......@@ -15,7 +15,7 @@ import org.springframework.data.elasticsearch.annotations.GeoPointField;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "elev", type = "tzsElevator", shards = 1, replicas = 0)
@Document(indexName = "elev", type = "tzsElevator", shards = 3, replicas = 1)
public class EsElevator {
......
......@@ -33,12 +33,28 @@ public class ElasticSearchClientConfig {
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
try {
String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost);
String url = uris.replace("http://", "");
String[] urls= url.split(",");
HttpHost[] httpHosts = new HttpHost[urls.length];
try {
// String url = uris.replace("http://", "");
// final String[] parts = StringUtils.split(url, ":");
// HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
// RestClientBuilder builder = RestClient.builder(httpHost);
for (int i = 0; i < urls.length; i++) {
final String[] parts = StringUtils.split(urls[i], ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
httpHosts[i]=httpHost;
}
RestClientBuilder builder = RestClient.builder(httpHosts);
builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
......@@ -46,6 +62,7 @@ public class ElasticSearchClientConfig {
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
});
builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
// 该方法接收一个RequestConfig.Builder对象,对该对象进行修改后然后返回。
@Override
......
......@@ -33,7 +33,7 @@ import org.springframework.scheduling.annotation.EnableAsync;
@EnableFeignClients
@EnableAsync
@EnableEurekaClient
@ComponentScan({"com.yeejoin.amos"})
@ComponentScan({"com.yeejoin.amos","springfox.documentation.schema"})
public class JpushApplication {
private static final Logger logger = LoggerFactory.getLogger(JpushApplication.class);
......
package com.yeejoin.amos.jpush.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
......@@ -24,5 +25,10 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
.anyRequest().authenticated().and()
.formLogin();
}
@Bean
public HttpFirewall httpFirewall() {
return new DefaultHttpFirewall();
}
}
......@@ -33,13 +33,28 @@ public class ElasticSearchClientConfig {
@Bean
@Qualifier("highLevelClient")
public RestHighLevelClient restHighLevelClient() {
try {
String url = uris.replace("http://", "");
final String[] parts = StringUtils.split(url, ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
RestClientBuilder builder = RestClient.builder(httpHost);
//增加安全配置,使用kibana,勿删
String url = uris.replace("http://", "");
String[] urls= url.split(",");
HttpHost[] httpHosts = new HttpHost[urls.length];
try {
// String url = uris.replace("http://", "");
// final String[] parts = StringUtils.split(url, ":");
// HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
// RestClientBuilder builder = RestClient.builder(httpHost);
for (int i = 0; i < urls.length; i++) {
final String[] parts = StringUtils.split(urls[i], ":");
HttpHost httpHost = new HttpHost(parts[0], Integer.parseInt(parts[1]), "http");
httpHosts[i]=httpHost;
}
RestClientBuilder builder = RestClient.builder(httpHosts);
//增加安全配置,使用kibana,勿删
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,
new UsernamePasswordCredentials(username, password));
......
......@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
*/
@Data
@Accessors(chain = true)
@Document(indexName = "video", type = "videoOriginal", shards = 1, replicas = 0)
@Document(indexName = "video", type = "videoOriginal", shards = 3, replicas = 1)
public class EsVideoOriginal {
/** 主键 */
@Id
......
......@@ -12,13 +12,14 @@ spring.redis.host=172.16.10.85
spring.redis.port=6379
spring.redis.password=amos2019Redis
## ES properties:
biz.elasticsearch.address=172.16.10.66
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=${biz.elasticsearch.address}:9300
spring.elasticsearch.rest.uris=http://${biz.elasticsearch.address}:9200
spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.rest.uris=http://127.0.0.1:9201,http://127.0.0.1:9202,http://127.0.0.1:9203
spring.data.elasticsearch.client.reactive.connection-timeout=3000
spring.data.elasticsearch.client.reactive.socket-timeout=3000
elasticsearch.username= elastic
elasticsearch.password= 123456
##biz custem properties
biz.hk.video.url=http://11.11.16.12:9017/artemis-web/debug
biz.hk.video.APPkey=25907430
......
......@@ -77,7 +77,7 @@
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>3.8.2</version>
<version>3.16.1</version>
</dependency>
<dependency>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment