AbstractRoutingDataSource ๊ด€๋ จ ์งˆ๋ฌธ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1,072 views
Skip to first unread message

ํ™ฉ์ง€ํ™˜

unread,
Mar 8, 2011, 10:00:22โ€ฏPM3/8/11
to Korea Spring User Group
์•ˆ๋…•ํ•˜์„ธ์š”?

multiple datasource ์ฒ˜๋ฆฌ ๊ด€๋ จํ•ด์„œ,
์ œ ๊ฒฝํ—˜์€, ๊ณผ๊ฑฐ์— model ๊ฐ์ฒด์˜ ์ƒ์œ„ ๊ฐ์ฒด์— target datasource ๊ตฌ๋ถ„ ์ธ์ž๋ฅผ ๋‘ฌ์„œ, ๋กœ์ง์„ ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ,
http://blog.springsource.com/2007/01/23/dynamic-datasource-routing/
์ด๋Ÿฐ ๋‚ด์šฉ์ด ์žˆ์–ด์„œ ์ฐธ ๊ณ ๋ง™๊ฒŒ ์ƒ๊ฐ ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ transaction ์ฒ˜๋ฆฌ์— ๊ด€ํ•œ ์งˆ๋ฌธ์„ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•  ๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ธ๋ฐ์š”,
์ด๋Ÿด๋•Œ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ์ „๋žต์„ ์–ด๋–ป๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋Š”๊ฒŒ ์ข‹์„์ง€ ์˜๋ฌธ์ž…๋‹ˆ๋‹ค.
a db์—์„œ๋Š” read ๋ฐ ์ฒ˜๋ฆฌํ›„, b db์— insert ๋˜๋Š” batch ์ƒํ™ฉ์˜ ์„ค๋ช…์ด ์ข‹์„๊ฑฐ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์•„์šธ๋Ÿฌ model ๊ฐ์ฒด๋“ค์˜ ์ƒ์œ„์— ์–ด๋–ค property ๋ฅผ ๊ด€๋ฆฌ ํ•˜๋Š” ์ƒ์† ๊ด€๊ณ„์—์„œ,
์ œ ์ƒ๊ฐ์—” is-a ๊ด€๊ณ„๊ฐ€ ์ข€ ๋ถˆ๋ช…ํ™• ํ•œ๊ฑฐ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ธ๋ฐ์š”,
์ด์— ์˜๊ฒฌ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ณ‘ํ›ˆ

unread,
Mar 8, 2011, 11:10:50โ€ฏPM3/8/11
to ks...@googlegroups.com
์•ˆ๋…•ํ•˜์„ธ์š”?
์ œ๊ฐ€ AbstractRoutingDataSource ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ ๊ฒฝํ—˜์— ์˜ํ•˜๋ฉด
๋™์ผํ•œ Schema ๋ฅผ ๊ฐ€์ง„ DB ๋ฅผ ์ตœ์ดˆ์— ํ•œ๋ฒˆ ๋™์ ์œผ๋กœ ์…‹ํŒ…ํ•˜๋Š” ์šฉ๋„๋กœ๋Š” ๋”ํ•  ๋‚˜์œ„ ์—†์ด ํ›Œ๋ฅญํ•˜์ง€๋งŒ
๋งŒ์•ฝ ๋ฉ€ํ‹ฐ DB(์ฃผ๋กœ ๋™์ผํ•œ Schema) ์— ๋™์‹œ์— access ํ•  ํ•„์š”์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅ? ํ•ฉ๋‹ˆ๋‹ค.
์ตœ์ดˆ์— ํ•œ๋ฒˆ ๋งบ์–ด์ง„ connection ์ด ThreadLocal ์— ์œ ์ง€๋˜๋ฉฐ ์žฌ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ์ค‘๊ฐ„์— abstractRoutingDataSource ์šฉ Flag (๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ThreadLocal ์— ์„ค์ •) ๋ฅผ ์žฌ์„ค์ •ํ•œ๋‹ค ํ•˜๋”๋ผ๋„ connection ์„ ๋‹ค์‹œ ๋งบ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ ๋ฉ€ํ‹ฐ DB ์— read -> write ํ•˜๋ ค๋Š” ๋ชฉ์ ์ด๋ฉด ๋‹น์—ฐํžˆ JTA ํŠธ๋žœ์žญ์…˜ ์š”๊ฑด์ผ ํ…Œ๊ตฌ์š”.. (๋ฌผ๋ก  ์—ฌ๋Ÿฌ JNDI dataSource ๋ฅผ abstractRoutingDataSource ๋กœ ๋žฉํ•‘ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์œ„์—์„œ ๋งํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด connection ์„ ์ƒˆ๋กœ ๋งบ์ง€ ์•Š์œผ๋ฏ€๋กœ ์ค‘๊ฐ„์— DB ๋ณ€๊ฒฝ์€ ์•ˆ๋˜๋”๊ตฐ์š”)
๊ฒฐ๊ตญ dataSource ๋ณ„๋กœ ๋ฏธ๋ฆฌ ์ค€๋น„๋œ persistence service ๋ฅผ Map ํ˜•ํƒœ๋กœ ๋“ค๊ณ  ์žˆ๋‹ค๊ฐ€ Flag ์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋„๋ก ์ž์ฒด ๊ตฌํ˜„์„ ํ•˜์˜€์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ•ด๋‹น ์„œ๋น„์Šค๋“ค์€ JTA transaction ์œผ๋กœ ์„ค์ •ํ•˜์˜€๊ตฌ์š”.

ํ˜น์‹œ ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋Ÿฐ ์š”๊ฑด์˜ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ


2011๋…„ 3์›” 9์ผ ์˜คํ›„ 12:00, ํ™ฉ์ง€ํ™˜ <hjh...@naver.com>๋‹˜์˜ ๋ง:

--
Google ๊ทธ๋ฃน์Šค 'Korea Spring User Group' ๊ทธ๋ฃน์— ๊ฐ€์ž…ํ–ˆ์œผ๋ฏ€๋กœ ๋ณธ ๋ฉ”์ผ์ด ์ „์†ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ทธ๋ฃน์— ๊ฒŒ์‹œํ•˜๋ ค๋ฉด ks...@googlegroups.com(์œผ)๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜๋ ค๋ฉด ksug+uns...@googlegroups.com๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์„ธ์š”.
๋” ๋งŽ์€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด http://groups.google.com/group/ksug?hl=ko์—์„œ ๊ทธ๋ฃน์„ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.


๋ฐ•์„ฑ์šฐ

unread,
Jul 15, 2014, 1:13:12โ€ฏAM7/15/14
to ks...@googlegroups.com
์ €๋„ ์œ ์‚ฌํ•œ ๊ตฌ์„ฑ์œผ๋กœ ๋ฉ€ํ‹ฐ DB๋ฅผ ์‚ฌ์šฉ์ค‘์ธ๋ฐ์š”.ย 

"๋ฌผ๋ก  ํ•ด๋‹น ์„œ๋น„์Šค๋“ค์€ JTA transaction ์œผ๋กœ ์„ค์ •" => ์ด ๋ถ€๋ถ„์„ ์–ด๋–ค์‹์œผ๋กœ ์ž‘์—…ํ•˜์…จ๋Š”์ง€ ์กฐ๊ธˆ ๊ตฌ์ฒด์ ์œผ๋กœ ์–˜๊ธฐํ•ด์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?ย 
์ œ ๊ฒฝ์šฐ์—๋Š” AOP ๋กœ ThreadLocal ์— abstractRoutingDataSource ์šฉ Flag ๋ฅผ ์„ค์ •ํ•˜๋Š”๋ฐ... ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ 2๊ฐœ ์ด์ƒ์˜ service ๋ฅผ transaction ์œผ๋กœ ๋ฌถ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋”๋ผ๊ตฌ์š”.ย 

์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‚˜์š”?ย 

2011๋…„ 3์›” 9์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 1์‹œ 10๋ถ„ 50์ดˆ UTC+9, seekEnhancement ๋‹˜์˜ ๋ง:

์ „ํ˜•๋ฏผ

unread,
Jul 15, 2014, 2:59:45โ€ฏAM7/15/14
to ks...@googlegroups.com

์ด๊ฑฐ ํ•œ๋ฒˆ ํ™•์ธํ•ด ๋ณด์‹œ์ฃ ..

DataSource ๊ฐ€ 2๊ฐœ ์ด์ƒ์ธ ๊ฒฝ์šฐ ( ๋ถ„์‚ฐ Transction )ย 

์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”..

๊ตฌํ˜„์€.. DataSource์—์„œ connection์„ ๊ฑฐ์ ธ ์˜ฌ๋•Œ TransactionManager ์— ํ•ด๋‹น dataSource๋ฅผ ๋“ฑ๋กํ•ด์„œ..

๋งˆ์ง€๋ง‰์— TransactionManager ๊ฐ€ ๋“ฑ๋ก๋œ Connection์„ ๋ชจ๋‘ commit ํ•˜๋Š” ๊ตฌ์กฐ ์ž…๋‹ˆ๋‹ค.

RoutingDataSource ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•ด ๋ณด์ง€๋Š” ์•Š์•˜์ง€๋งŒ,..

Routing ๋  DataSource๋ฅผ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด.. ์ ์šฉ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ทธ๋Ÿผ ๋„์›€์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.



------------------------------------
๋‹น์‹ ์˜ ๊ณผ๊ฑฐ๊ฐ€ ๋‹น์‹ ์„ ๋งŒ๋“ ๋‹ค.


2014๋…„ 7์›” 15์ผ ์˜คํ›„ 2:13, ๋ฐ•์„ฑ์šฐ <xun...@gmail.com>๋‹˜์ด ์ž‘์„ฑ:

--
์ด ๋ฉ”์ผ์€ Google ๊ทธ๋ฃน์Šค 'Korea Spring User Group Q&A' ๊ทธ๋ฃน์— ๊ฐ€์ž…ํ•œ ๋ถ„๋“ค์—๊ฒŒ ์ „์†ก๋˜๋Š” ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค.
์ด ๊ทธ๋ฃน์—์„œ ํƒˆํ‡ดํ•˜๊ณ  ๋” ์ด์ƒ ์ด๋ฉ”์ผ์„ ๋ฐ›์ง€ ์•Š์œผ๋ ค๋ฉด ksug+uns...@googlegroups.com์— ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์„ธ์š”.
http://groups.google.com/group/ksug์—์„œ ์ด ๊ทธ๋ฃน์„ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
์›น์—์„œ ์ด ํ† ๋ก ์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/msgid/ksug/e491219d-5040-40f3-a442-82d19d89ba14%40googlegroups.com์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
๋” ๋งŽ์€ ์˜ต์…˜์„ ๋ณด๋ ค๋ฉด https://groups.google.com/d/optout์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.

Reply all
Reply to author
Forward
0 new messages