feat: migration complète vers WebSockets Next + Kafka pour temps réel
- Migration de Jakarta WebSocket vers Quarkus WebSockets Next - Implémentation de l'architecture Kafka pour événements temps réel - Ajout des DTOs d'événements (NotificationEvent, ChatMessageEvent, ReactionEvent, PresenceEvent) - Création des bridges Kafka → WebSocket (NotificationKafkaBridge, ChatKafkaBridge, ReactionKafkaBridge) - Mise à jour des services pour publier dans Kafka au lieu d'appeler directement WebSocket - Suppression des classes obsolètes (ChatWebSocket, NotificationWebSocket) - Correction de l'injection des paramètres path dans WebSockets Next (utilisation de connection.pathParam) - Ajout des migrations DB pour bookings, promotions, business hours, amenities, reviews - Mise à jour de la configuration application.properties pour Kafka et WebSockets Next - Mise à jour .gitignore pour ignorer les fichiers de logs
This commit is contained in:
@@ -24,3 +24,67 @@ quarkus.http.port=8080
|
||||
# ====================================================================
|
||||
quarkus.http.body.uploads-directory=/tmp/uploads
|
||||
quarkus.http.limits.max-body-size=10M
|
||||
|
||||
# ====================================================================
|
||||
# WebSockets Next (commun à tous les environnements)
|
||||
# ====================================================================
|
||||
quarkus.websockets-next.server.enabled=true
|
||||
|
||||
# ====================================================================
|
||||
# Kafka Configuration (commun à tous les environnements)
|
||||
# ====================================================================
|
||||
kafka.bootstrap.servers=${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
|
||||
|
||||
# ====================================================================
|
||||
# Kafka Topics - Outgoing (Services → Kafka)
|
||||
# ====================================================================
|
||||
# Topic: Notifications
|
||||
mp.messaging.outgoing.notifications.connector=smallrye-kafka
|
||||
mp.messaging.outgoing.notifications.topic=notifications
|
||||
mp.messaging.outgoing.notifications.key.serializer=org.apache.kafka.common.serialization.StringSerializer
|
||||
mp.messaging.outgoing.notifications.value.serializer=io.quarkus.kafka.client.serialization.JsonbSerializer
|
||||
|
||||
# Topic: Chat Messages
|
||||
mp.messaging.outgoing.chat-messages.connector=smallrye-kafka
|
||||
mp.messaging.outgoing.chat-messages.topic=chat.messages
|
||||
mp.messaging.outgoing.chat-messages.key.serializer=org.apache.kafka.common.serialization.StringSerializer
|
||||
mp.messaging.outgoing.chat-messages.value.serializer=io.quarkus.kafka.client.serialization.JsonbSerializer
|
||||
|
||||
# Topic: Reactions (likes, comments, shares)
|
||||
mp.messaging.outgoing.reactions.connector=smallrye-kafka
|
||||
mp.messaging.outgoing.reactions.topic=reactions
|
||||
mp.messaging.outgoing.reactions.key.serializer=org.apache.kafka.common.serialization.StringSerializer
|
||||
mp.messaging.outgoing.reactions.value.serializer=io.quarkus.kafka.client.serialization.JsonbSerializer
|
||||
|
||||
# Topic: Presence Updates
|
||||
mp.messaging.outgoing.presence.connector=smallrye-kafka
|
||||
mp.messaging.outgoing.presence.topic=presence.updates
|
||||
mp.messaging.outgoing.presence.key.serializer=org.apache.kafka.common.serialization.StringSerializer
|
||||
mp.messaging.outgoing.presence.value.serializer=io.quarkus.kafka.client.serialization.JsonbSerializer
|
||||
|
||||
# ====================================================================
|
||||
# Kafka Topics - Incoming (Kafka → WebSocket Bridge)
|
||||
# ====================================================================
|
||||
# Consommer depuis Kafka et router vers WebSocket pour notifications
|
||||
mp.messaging.incoming.kafka-notifications.connector=smallrye-kafka
|
||||
mp.messaging.incoming.kafka-notifications.topic=notifications
|
||||
mp.messaging.incoming.kafka-notifications.group.id=websocket-notifications-bridge
|
||||
mp.messaging.incoming.kafka-notifications.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
|
||||
mp.messaging.incoming.kafka-notifications.value.deserializer=io.quarkus.kafka.client.serialization.JsonbDeserializer
|
||||
mp.messaging.incoming.kafka-notifications.enable.auto.commit=true
|
||||
|
||||
# Consommer depuis Kafka et router vers WebSocket pour chat
|
||||
mp.messaging.incoming.kafka-chat.connector=smallrye-kafka
|
||||
mp.messaging.incoming.kafka-chat.topic=chat.messages
|
||||
mp.messaging.incoming.kafka-chat.group.id=websocket-chat-bridge
|
||||
mp.messaging.incoming.kafka-chat.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
|
||||
mp.messaging.incoming.kafka-chat.value.deserializer=io.quarkus.kafka.client.serialization.JsonbDeserializer
|
||||
mp.messaging.incoming.kafka-chat.enable.auto.commit=true
|
||||
|
||||
# Consommer depuis Kafka et router vers WebSocket pour réactions
|
||||
mp.messaging.incoming.kafka-reactions.connector=smallrye-kafka
|
||||
mp.messaging.incoming.kafka-reactions.topic=reactions
|
||||
mp.messaging.incoming.kafka-reactions.group.id=websocket-reactions-bridge
|
||||
mp.messaging.incoming.kafka-reactions.key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
|
||||
mp.messaging.incoming.kafka-reactions.value.deserializer=io.quarkus.kafka.client.serialization.JsonbDeserializer
|
||||
mp.messaging.incoming.kafka-reactions.enable.auto.commit=true
|
||||
|
||||
Reference in New Issue
Block a user