π Habr ΡΡΠ°ΡΡΡ
βοΈ Email: andrey@brombin.ru
- ΠΠ±Π·ΠΎΡ
- Π€ΡΠ½ΠΊΡΠΈΠΈ
- Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
- Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
- ΠΠ°ΠΏΡΡΠΊ
- ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ
Incident Service β ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ², ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ.
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ²
- ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°, ΠΊοΏ½οΏ½ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΡΡΠ°ΡΡΡΠ° ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ
- Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΎ Π½ΠΎΠ²ΡΡ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ°Ρ
- ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· Kafka
- ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎ JWT Bearer ΡΠ΅ΡΠ΅Π· Keycloak
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Image Service ΠΈ UserService (Π½Π° Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ΅)
β
CRUD API Π΄Π»Ρ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠΎΠ²
β
gRPC-Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ
β
Kafka-ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
β
Keycloak Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ/Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
β
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· Swagger/OpenAPI
| ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ | Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ |
|---|---|
| Π―Π | Java 21 |
| Backend | Spring Boot, Spring Security, gRPC |
| ΠΠ | PostgreSQL + Liquibase |
| ΠΡΠΎΠΊΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ | Apache Kafka + Kafka UI |
| DevOps | Docker, Docker Compose |
| ΠΠ°ΠΏΠΏΠΈΠ½Π³ | MapStruct, Lombok |
| ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ API | Swagger/OpenAPI |
- Docker
- JDK 21+
- PostgreSQL (Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΅ΡΠ΅Π· Docker)
- Kafka (Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΅ΡΠ΅Π· Docker)
- Keycloak (Π΅ΡΠ»ΠΈ Π½Π΅ ΡΠ΅ΡΠ΅Π· Docker)
git clone https://github.com/br0mberg/SupportDesk-IncidentService
cd SupportDesk-IncidentServiceΠ£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π½Π°ΡΡΡΠΎΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² Π²Π°ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ application.properties, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² src/main/resources/.
docker network create support-networkΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ docker-compose.yml Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
docker-compose up --buildΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π·Π°ΠΏΡΡΡΠΈΡ Incident Service, Kafka, Postgres ΠΈ Π²ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ . ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ImageService ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ.
- The Incident Service API will be accessible at http://localhost:8081.
- Kafka UI will be available at http://localhost:8383 for managing Kafka messages.
- Keycloak will be accessible at http://localhost:8080 for user authentication.
- Swagger UI will be accessible at http://localhost:8081/swagger-ui.html for api doc.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΈΠ»ΠΈ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ²ΡΠΆΠΈΡΠ΅ΡΡ ΡΠΎ ΠΌΠ½ΠΎΠΉ:
βοΈ Email: andrey@brombin.ru
ΠΡΠΈΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ! π