springboot同时单机和集群配置兼容,一般人我不说哦

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
// 使用StringRedisSerializer来序列化和反序列化redis的key值

template.setKeySerializer(serializer);

//template.setValueSerializer(serializer);

template.setHashKeySerializer(serializer);

template.setHashValueSerializer(serializer);

template.afterPropertiesSet();

return template;

}

@Bean

public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {

StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();

stringRedisTemplate.setConnectionFactory(factory);

return stringRedisTemplate;

}

集群

==

但是随着项目的深入问题还是会出现。单机的最大问题就是如果redis服务因为意外情况发生宕机,那么我们的程序也会被牵连,这造成我们服务直接不可用。

基于这种情况redis集群应运而生。集群好处就是我们不需要担心服务宕机,应为每个节点都是单独服务部署。其中一台宕机其它的会重新进行选举和数据容灾操作。对于我们使用者而言不需要担心宕机的问题了。

还有就是数据,在redis集群中存在主节点和从节点。主节点负责写入数据,从节点负责同步数据。集群内部的数据同步让我们避免了数据丢失的情况。

在单机配置中,能够发现我们在配置RedisTemplate的时候需要RedisConnectionFactory工厂。关于这个工厂没有再上面配置,主要原因是在集群中我们需要改造他。所以就放在集群章节一起配置了。

关于工厂的配置我们主要是配置JedisConnectionFactory 。 点源码我们能够看到一个方法

public JedisConnectionFactory(RedisClusterConfiguration clusterConfig) {

this((RedisClusterConfiguration)clusterConfig, (JedisClientConfiguration)(new JedisConnectionFactory.MutableJedisClientConfiguration()));

}

所以集群配置我们只需要构造RedisClusterConfiguration对象就可以。 如果是单机我们就使用无参构造

@Bean

public JedisConnectionFactory getRedisConnectionFactory() throws CommonException {

JedisConnectionFactory connectionFactory = null;

if (connectionFactory == null && redisProperties != null && redisProperties.getHost() != null) {

// 单机

connectionFactory = new JedisConnectionFactory();

}

if (connectionFactory == null && redisProperties != null && redisProperties.getCluster().getNodes() != null) {

// 集群

connectionFactory = new JedisConnectionFactory(getClusterConfig());

}

if (null == connectionFactory) {

throw new CommonException(“无法初始化redis连接池”);

}

try {

connectionFactory.setUsePool(true);

JedisPoolConfig config = getJedisPoolConfig();

connectionFactory.setPoolConfig(config);

connectionFactory.setHostName(redisProperties.getHost());

connectionFactory.setPort(redisProperties.getPort());

connectionFactory.setDatabase(redisProperties.getDatabase());

connectionFactory.setPassword(redisProperties.getPassword());

} catch (Exception e) {

logger.error(“redis connection factory init failed”);

}

return connectionFactory;

}

写在最后

为了这次面试,也收集了很多的面试题!

以下是部分面试题截图

Java程序员秋招三面蚂蚁金服,我总结了所有面试题,也不过如此
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

[外链图片转存中…(img-TTV1RGMq-1714668740754)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
springboot连接kafka集群配置可以通过以下步骤完成: 1. 首先,在pom.xml文件中导入spring-kafka和kafka-clients的依赖: ```xml <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>3.4.0</version> </dependency> ``` 2. 在kafka配置类中,配置kafka的连接属性。可以通过在application.properties或application.yml文件中设置以下属性: ```properties spring.kafka.bootstrap-servers=your-bootstrap-servers spring.kafka.consumer.group-id=your-group-id spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer ``` 其中,your-bootstrap-servers是kafka集群的地址,your-group-id是kafka消费者的组ID。 3. 构建发布者类,可以使用KafkaTemplate来发送消息到kafka集群: ```java @Autowired private KafkaTemplate<String, String> kafkaTemplate; public void sendMessage(String topic, String message) { kafkaTemplate.send(topic, message); } ``` 4. 构建消费者类,可以使用@KafkaListener注解来监听kafka消息,并进行消息消费: ```java @KafkaListener(topics = "your-topic") public void receiveMessage(String message) { // 进行消息消费的逻辑处理 } ``` 以上就是springboot连接kafka集群配置方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值