Languages/Java

[Java] Spring Data R2DBC μ†Œκ°œ

MOONCO 2022. 12. 23. 15:14

πŸ‘‰ R2DBC λž€?

Java와 DBλ₯Ό μ—°κ²°ν•˜λŠ” λ“œλΌμ΄λ²„ 쀑 ν•˜λ‚˜.

 

Spring Framework version 5

- Spring WebFlux μΆ”κ°€

 

2019.12

- Spring Data R2DBCμ—μ„œ, λ°˜μ‘ν˜• κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ λ“œλΌμ΄λ²„ μΆœμ‹œ!!

 

- μ‘λ‹΅μ‹œκ°„μ΄ 더 λΉ λ₯΄κ³ , μ²˜λ¦¬λŸ‰μ΄ λ†’λ‹€.

- μš”μ²­λ‹Ή λ©”λͺ¨λ¦¬μ™€ CPUλ₯Ό 덜 μ‚¬μš©ν•œλ‹€.

- JAR 파일의 μš©λŸ‰μ„ 쀄일 수 μžˆλ‹€.

 

πŸ‘‰ ν…ŒμŠ€νŒ…

 

1. CPU : 4μ½”μ–΄ ν• λ‹Ή

2. 컀λ„₯μ…˜ ν’€ : 100개

3. HTTP μš”μ²­

- GET

- SELECT 10 λ ˆμ½”λ“œ, JSON λ°˜ν™˜

4. 프라이밍 ( μ„œλΉ„μŠ€μ— λΆ€ν•˜ μ£ΌκΈ° ) : 2초

5. ν…ŒμŠ€νŒ… 반볡수 : 5번 ( 평균 ꡬ함 )

였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šμ€ μ‹€ν–‰λ§Œ μ‚΄νŽ΄λ΄„

 

6. ν…ŒμŠ€νŒ… 툴 : wrk

https://github.com/wg/wrk

 

GitHub - wg/wrk: Modern HTTP benchmarking tool

Modern HTTP benchmarking tool. Contribute to wg/wrk development by creating an account on GitHub.

github.com

 

7. ν…ŒμŠ€νŒ… κΈ°μ€€

- 응닡 μ‹œκ°„

μ²˜λ¦¬λŸ‰ ( μš”μ²­ 수 )

ν”„λ‘œμ„ΈμŠ€ CPU μ‚¬μš©λŸ‰ (  /proc/PID/stat 기반 )

λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ ( /proc/PID/maps 기반 ) - μ‹€ν–‰μ’…λ£Œμ‹œ ν”„λ‘œμ„ΈμŠ€ μ „μš© λ©”λͺ¨λ¦¬

 

8. ν…ŒμŠ€νŠΈ 슀크립트

https://github.com/MaartenSmeets/db_perftest/blob/r2dbc/test_scripts/run_test.py

 

GitHub - MaartenSmeets/db_perftest: Materials related to testing different ways/drivers to access databases

Materials related to testing different ways/drivers to access databases - GitHub - MaartenSmeets/db_perftest: Materials related to testing different ways/drivers to access databases

github.com

 

9. λ°±μ—”λ“œ ν™˜κ²½ κ΅¬ν˜„

https://github.com/MaartenSmeets/db_perftest/tree/r2dbc/test_apps

 

GitHub - MaartenSmeets/db_perftest: Materials related to testing different ways/drivers to access databases

Materials related to testing different ways/drivers to access databases - GitHub - MaartenSmeets/db_perftest: Materials related to testing different ways/drivers to access databases

github.com

 

10. κ²°κ³Ό 뢄석

  MVC & JDBC WebFlux & JDBC MVC & R2DBC WebFlux & R2DBC
평균 μ‘λ‹΅μ‹œκ°„       κ°€μž₯ 빠름
2λΆ„κ°„ 처리 μš”μ²­ 수 κ°€μž₯ 적음     κ°€μž₯ 많음
CPU μ‚¬μš©λŸ‰ κ°€μž₯ 적음     또이또이
μš”μ²­λ‹Ή CPU μ‚¬μš©λŸ‰ μˆœμœ„ 2 1 3 4
λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰     κ°€μž₯ 많음 κ°€μž₯ 적음
JAR μš©λŸ‰   κ°€μž₯ 많음   κ°€μž₯ 적음

 

 

λ°˜μ‘ν˜•