- Spring WebFlux
- Spring Cloud Eureka Client
- Kafka
- R2DBC
- MySQL
- Firebase 클라우드 메시징
-
device 관리
- 조건으로 device 정보 찾기
- userId로 찾기
- userId + client type으로 찾기
- device 갱신하기
- client 정보를 통해 mobile/web 구분하여 갱신
- device 삭제하기
- 조건으로 device 정보 찾기
-
push
- Kafka를 사용하여 chat 서버에서 채팅 메시지가 올 때마다 기기에게 PUSH 보내기
- FCM을 사용하여 특정 기기에게 PUSH 보내기
- 사용 버전
- JDK 11
- application.yml
spring:
application:
name: push-service
r2dbc:
url: {{ your database url }}
username: {{ your database username }}
password: {{ your database password }}
kafka:
topic: push
consumer:
bootstrap-servers: {{ your kafka server }}
group-id: push-server
auto-offset-reset: latest
key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
producer:
bootstrap-servers: {{ your kafka server }}
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer
eureka:
instance:
instance-id: {{ eureka client id }}
hostname: {{ eureka client hostname }}
ip-address: {{ eureka client ip address }}
prefer-ip-address: true # optional
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: {{ eureka server url }} # A client is registered by sending a POST request to it.
fcm:
api-url: {{ your fcm api call url }}
notification-icon: {{ web notification icon img }}
frontend-url: {{ your frontend server url }} # 웹 푸시 클릭 이벤트 용
management:
endpoints:
web:
exposure:
include: health, info, metrics, prometheus
metrics:
tags:
application: ${spring.application.name}
-
kafka 관련 api는 테스트 용입니다.