ghkdqhrbals / spring-chatting-server

In this project, we develop a chat server with automatic distribution, automatic scale in/out, and maintenance functions! For more information, please visit https://ghkdqhrbals.github.io/portfolios/docs/project
MIT License
39 stars 3 forks source link

RedisConnection fails #132

Closed ghkdqhrbals closed 10 months ago

ghkdqhrbals commented 11 months ago

Description

When I save userTransaction in Redis, it fails

front-server                      | 2023-10-15 08:13:51.919 TRACE [ http-nio-8000-exec-4 ] [ c.c.w.filters.filter.URLCheckFilter ] - Request in POST /user/register
front-server                      | 2023-10-15 08:13:51.931 TRACE [ http-nio-8000-exec-5 ] [ c.c.w.filters.filter.URLCheckFilter ] - Request in GET /login
user-server                       | 2023-10-15T08:13:52.992Z TRACE 1 --- [     parallel-1] c.e.s.web.api.UserController             : addUser method is called
user-server                       | 2023-10-15T08:13:53.000Z TRACE 1 --- [     parallel-1] c.e.s.web.util.reactor.Reactor           : sink is added
user-server                       | 2023-10-15T08:13:53.003Z TRACE 1 --- [     parallel-1] c.e.s.web.util.reactor.Reactor           : try to get sink
user-server                       | 2023-10-15T08:13:53.018Z TRACE 1 --- [       Thread-5] c.e.s.d.u.s.UserCommandQueryServiceImpl  : newUserEvent method is called
user-server                       | 2023-10-15T08:13:53.026Z  INFO 1 --- [     parallel-1] r.Flux.SinkManyEmitterProcessor.1        : onSubscribe(SinkManyEmitterProcessor.EmitterInner)
user-server                       | 2023-10-15T08:13:53.032Z  INFO 1 --- [     parallel-1] r.Flux.SinkManyEmitterProcessor.1        : request(1)
user-server                       | 2023-10-15T08:13:53.164Z  INFO 1 --- [       Thread-5] r.Flux.SinkManyEmitterProcessor.1        : onNext(UserTransactions(eventId=f0fcc2df-7cba-410b-9664-43f1c45f23b3, userId=ab123432, userStatus=USER_INSERT_APPEND, chatStatus=USER_INSERT_APPEND, customerStatus=USER_INSERT_APPEND, userStatusMessage=null, chatStatusMessage=null, customerStatusMessage=null, createdAt=2023-10-15T08:13:53.020131, email=1234, userName=1234, userPw=$2a$10$Jad270covYby/LoNi0eLeOrOYfj7D4w69DTdtqM3VL5xjQkE.KZEu, role=ROLE_USER))
user-server                       | 2023-10-15T08:13:53.275Z TRACE 1 --- [       Thread-5] c.e.s.d.u.s.UserCommandQueryServiceImpl  : UserTransaction save to redis
user-server                       | 2023-10-15T08:13:53.294Z  INFO 1 --- [   XNIO-1 I/O-2] r.Flux.SinkManyEmitterProcessor.1        : request(1)
front-server                      | 2023-10-15 08:13:53.314 INFO  [ reactor-http-epoll-6 ] [ reactor.Flux.MonoFlatMapMany.7 ] - onNext(ServerSentEvent [id = 'null', event='null', retry=null, comment='null', data={eventId=f0fcc2df-7cba-410b-9664-43f1c45f23b3, userId=ab123432, userStatus=USER_INSERT_APPEND, chatStatus=USER_INSERT_APPEND, customerStatus=USER_INSERT_APPEND, userStatusMessage=null, chatStatusMessage=null, customerStatusMessage=null, createdAt=[2023, 10, 15, 8, 13, 53, 20131000], email=1234, userName=1234, userPw=$2a$10$Jad270covYby/LoNi0eLeOrOYfj7D4w69DTdtqM3VL5xjQkE.KZEu, role=ROLE_USER}])
front-server                      | 2023-10-15 08:13:53.314 INFO  [ reactor-http-epoll-6 ] [ c.chat.web.user.UserController ] - ServerSentEvent [id = 'null', event='null', retry=null, comment='null', data={eventId=f0fcc2df-7cba-410b-9664-43f1c45f23b3, userId=ab123432, userStatus=USER_INSERT_APPEND, chatStatus=USER_INSERT_APPEND, customerStatus=USER_INSERT_APPEND, userStatusMessage=null, chatStatusMessage=null, customerStatusMessage=null, createdAt=[2023, 10, 15, 8, 13, 53, 20131000], email=1234, userName=1234, userPw=$2a$10$Jad270covYby/LoNi0eLeOrOYfj7D4w69DTdtqM3VL5xjQkE.KZEu, role=ROLE_USER}]
user-server                       | 2023-10-15T08:13:54.105Z TRACE 1 --- [       Thread-5] c.e.s.web.api.UserController             : exception is occurred: org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis
user-server                       | 2023-10-15T08:13:54.108Z TRACE 1 --- [       Thread-5] c.e.s.web.util.reactor.Reactor           : emit error with complete to ab123432 and remove from sinkMap
user-server                       | 2023-10-15T08:13:54.109Z ERROR 1 --- [       Thread-5] r.Flux.SinkManyEmitterProcessor.1        : onError(CustomException= {ErrorCode= SERVER_ERROR, detail= 서버가 정상적으로 동작하지 않습니다})
user-server                       | 2023-10-15T08:13:54.112Z ERROR 1 --- [       Thread-5] r.Flux.SinkManyEmitterProcessor.1        : 
user-server                       | 
user-server                       | com.example.shopuserservice.web.error.CustomException: null
user-server                       |     at com.example.shopuserservice.web.api.UserController.lambda$addUser$2(UserController.java:120) ~[classes!/:na]
user-server                       |     at java.base/java.util.concurrent.CompletableFuture.uniExceptionally(CompletableFuture.java:990) ~[na:na]
user-server                       |     at java.base/java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(CompletableFuture.java:974) ~[na:na]
user-server                       |     at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:510) ~[na:na]
user-server                       |     at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1773) ~[na:na]
user-server                       |     at java.base/java.lang.Thread.run(Thread.java:831) ~[na:na]
user-server                       | 
user-server                       | 2023-10-15T08:13:54.137Z TRACE 1 --- [       Thread-5] c.e.s.w.c.ControllerExceptionAdvice      : [Filter custom error] : CustomException= {ErrorCode= SERVER_ERROR, detail= 서버가 정상적으로 동작하지 않습니다}
ghkdqhrbals commented 11 months ago

Solved

Original Code

  # Service
  user-server:
    container_name: user-server
    build:
      context: ./shop-user-service
      dockerfile: Dockerfile
    image: main-service_user-server:latest
    ports:
      - "8010:8010"
    links:
      - user-redis
    environment:
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      SPRING_MAIN_web-application-type: reactive
      SPRING_RABBITMQ_HOST: "43.202.52.177"
      SPRING_CLOUD_CONFIG_URI: http://43.202.52.177:8888
      eureka_client_service-url_defaultZone: http://discovery-server:8761/eureka
      spring_datasource_hikari_maximum-pool-size: 30
      spring_datasource_url: jdbc:postgresql://user-db:5435/user
      spring_datasource_hikari_username: postgres
      spring_datasource_hikari_password: password
      SERVER_PORT: 8010
      spring_redis_host: user-redis
      spring_redis_port: 6379
      server_undertow_no-request-timeout: 100
    depends_on:
      - kafka1
      - user-db
      - discovery-server
      - user-redis
    restart: always

As you can see that in prod.yaml, user-server change their redis host and port as spring_redis_host: user-redis, spring_redis_port: 6379.

But we want to know change spring.data.redis.host, spring.data.redis.port.

So need to change like this. spring_redis_host: user-redis -> spring_data_redis_host: user-redis