У меня есть приложение Java Spring, которое я хочу развернуть в службе приложений Azure, которая будет подключаться к Redis для Azure. Я уже сделал это с тем же приложением в другой подписке. Я создал AppService и соединение Redis в Azure. Я получил строки подключения от Redis и добавил в свое Java-приложение, а также создал bean-компонент следующим образом:
@Bean
public JedisConnectionFactory connectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName(this.jedisHost);
if (this.jedisPassword != null && !this.jedisPassword.isEmpty()) {
jedisConnectionFactory.setPassword(this.jedisPassword);
}
jedisConnectionFactory.setPort(jedisPort);
jedisConnectionFactory.getPoolConfig().setMaxIdle(30);
jedisConnectionFactory.getPoolConfig().setMinIdle(10);
// jedisConnectionFactory.setUsePool(true);
return jedisConnectionFactory;
}
когда я запускаю приложение в своей локальной среде, все работает нормально. Приложение запускается, а также может подключаться к Redis.
Но когда я развернул его в лазурном облаке, я получил:
Caused by: java.net.SocketTimeoutException: connect timed out
JedisConnectionException: Failed connecting to host valuegoredis.redis.cache.windows.net:6380
JedisConnectionException: Could not get a resource from the pool
Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'
У меня также были такие же проблемы при запуске локально, но я добавил правило брандмауэра, чтобы включить мой IP.
Я также добавил IP-адрес appService, найденный с помощью nslookup .azurewebsite.net, но здесь ничего не изменилось.
Я схожу с ума, пытаясь понять, как я могу заставить это работать.
Редактировать: я пробовал оба порта джедаев 6379 и 6380
Голубой кружок - это IP-адрес службы приложения, а красный - мой локальный IP-адрес.
Я разрешаю SSL и не SSL-соединение на 6380 и 6379, но, похоже, ничего не работает