๐๐ฅ๐ฅ ๋ผ์ผ๋ฆฌ์ ์ฝ๋ ๋ถ์ค๋ฌ๊ธฐ ๐๐ฅ๐ฅ
Installation and Update 1. NVM ์ค์น Git Repo์ NVM์ README ํ์ผ์ ์ฐธ๊ณ ํ๋ค. https://github.com/nvm-sh/nvm 1 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash 2. NVM ํ๊ฒฝ์ค์ .bashrc ํน์ .zshrc ์ ์ถ๊ฐํ๋ค. source ~/.bashrc ๋ก ์ ์ฉ ๋๋ ํฐ๋ฏธ๋์ ์ฌ์์ํ๋ค. 1 2 export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm 3. nvm ๋ฒ์ ํ์ธ ๋ฐ ์ค์น ๊ฐ๋ฅ Nodejs ๋ฆฌ์คํธ ํ์ธ 1 2 3 4 5 # nvm ๋ฒ์ ํ์ธ nvm --version # ์ค์น ๊ฐ๋ฅ NodeJs ๋ฒ์ ํ์ธ nvm ls-remote 4.
์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ ํ์ต ๋ด์ฉ ์ ๋ฆฌํ ํฌ์คํ
์
๋๋ค.
1.1 SQL์ ์ง์ ๋ค๋ฃฐ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ฝ๋์ ๋ฐ๋ณต์์ฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ์ฒด ๊ตฌ์กฐ์๋ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ ์ค์ฌ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋๋ค. ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ CRUD ํ๊ธฐ ์ํด์๋ ๋๋ฌด ๋ง์ SQL๊ณผ JDBC API๋ฅผ ์ฌ์ฉํ์ฌ ๋ณํ์์
์ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค. SQL ์ ์์กด์ ์ธ ๊ฐ๋ฐ ๊ฐ์ฒด๋ค์ด ์ด๋ค ์ํฐํฐ๋ฅผ ์ฐธ์กฐํ๊ณ ์๋์ง DAO(๋ฐ์ดํฐ ์ ๊ทผ ๊ณ์ธต)์ ์ด์ด SQL๋ฅผ ํ์ธํด์ผ๋ง ํ๋ค. SQL๊ณผ JDBC API๋ฅผ DAO์ ์๋ํํ์์ง๋ง ๋
ผ๋ฆฌ์ ์ผ๋ก๋ ์ํฐํฐ์ ์์ฃผ ๊ฐํ ์์กด๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์คํ๋ง 5.0 ๋ง์คํฐ ์คํฐ๋ ์คํ๋ง 5.0 ๋ง์คํฐ ์คํฐ๋ ํ์ต ๋ด์ฉ ์ ๋ฆฌ์
๋๋ค. 1. ์คํ๋ง ๋ถํธ์ ๊ธฐ๋ณธ ์์ธ์ฒ๋ฆฌ ์คํ๋ง๋ถํธ์ ๊ธฐ๋ณธ ์์ธ ํ์์ throw ๋ ์์ธ ๋ฉ์ธ์ง ์ ํจ๊ป JSON ํํ๋ก ์๋ฌ๋ฅผ ๋ฆฌํดํ๋ค. ๋ธ๋ผ์ฐ์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ ์ค๋ฅ ํ์ด์ง (Whilelabel Error Page) ๋ฅผ ์ถ๋ ฅํ๋ค. 1 2 3 4 5 6 7 { "timestamp": "2018-12-07T05:01:26.483+0000", "status": 500, "error": "Internal Server Error", "message": "Some Exception Occurred", "path": "/users/dummy-service" } 2. ์คํ๋ง ์ฌ์ฉ์ ์ ์ ์์ธ์ฒ๋ฆฌ ์คํ๋ง์์๋ ์ค๋ฅ์ ๋ํ ์๋ต์ ์ฌ์ฉ์๊ฐ ์ ์ํ๋ ์ฌ๋ฌ ์ต์
์ ์ ๊ณตํ๋ค.
1. ์ธ๋ฑ์ค ์์ฑํ๊ธฐ ์ธ๋ฑ์ค๋ ๋ฌธ์document์ ๋ชจ์์ด๋ค. ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ Index Settings๋ฅผ ์ ์ํ๋ค. Index Mappings๋ฅผ ์ ์ํ๋ค. ์ฌ์ฉ์ ์ ์๋ ๋ํ๋จผํธ๋ฅผ ์ธ๋ฑ์ฑํ๋ค. 2. ์ธ๋ฑ์ค์ settings Static Index Settings index.number_of_shards : ์ธ๋ฑ์ค๊ฐ ๊ฐ์ ธ์ผ ํ๋ Primary ์ค๋์ ๊ฐ์ ์ค์ . ๊ธฐ๋ณธ๊ฐ 5 Dynamic Index Settings index.number_of_replicas : ๊ฐ ๊ธฐ๋ณธ ์ค๋์ ๋ณต์ ๋ณธ (Replica ์ค๋ ๊ฐ์ ์ค์ ). ๊ธฐ๋ณธ๊ฐ์ 1 index.refresh_interval : ๊ฒ์ commit point ๋ฅผ ๋ง๋๋ refresh interval ์ค์ (์๋ก ๊ณ ์นจ ์์
์ํ ๋น๋). -1 ๋นํ์ฑํ. ๊ธฐ๋ณธ๊ฐ 1s index.routing.allocation.enable : ์ธ๋ฑ์ค์ ์ค๋๋ค์ ๋ผ์ฐํ
ํ์ฉ ์ค์ Other Settings Analysis, Mapping, Slowlog … 3.
limits.conf Elasticsearch ๋ ๋ง์ ํ์ผ์ ์ฐ๊ฑฐ๋ ํธ๋ค๋งํ๊ฒ ๋๋ค. ์ด ์ ์๋ File descriptor๊ฐ ๋ถ์กฑํ๋ฉด ๋ฐ์ดํฐ์ ์์ค๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ ์คํํ ์ ์๋ ์ต๋ File Descriptor ๋ฅผ 65,536 ๊ฐ ์ด์์ผ๋ก ์ค์ ํ๋๋ก ํ๋ค.
vi /etc/security/limits.conf
1 2 elasticsearch soft nofile 65536 elasticsearch hard nofile 65536 Thread ์ Elasticsearch ๋ ์ฌ๋ฌ ์ ํ์ ์์
์ ๋ํด ๋ง์ Thread Pool์ ์ฌ์ฉํ๊ฒ ๋๋ค. Elasticsearch ์ฌ์ฉ์๊ฐ ๋ง๋ค ์ ์๋ Thread ๊ฐ 4096 ๊ฐ ์ด์์ธ์ง ํ์ธํ๋ค.
1 2 elasticsearch soft noproc 4096 elasticsearch hard noproc 4096 Sysconfig file RPM ๋๋ Debian ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ
์ค์ ๋ฐ ํ๊ฒฝ ๋ณ์๋ฅผ ์ง์ ํ ์ ์๋ค.
log4j2.properties Elasticsearch๋ ๋ก๊น
์ ์ํด Log4j2๋ฅผ ์ฌ์ฉํ๋ค. Log4j2๋ log4j2.properties ํ์ผ์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์๋ค.
๋ก๊ทธ์ฐธ์กฐ ํ์ผ ${sys:es.logs.base_path} ๋ก๊ทธ์ Base ๋๋ ํ ๋ฆฌ elasticsearch.yml ์ path.log์ ์ค์ ๋ ๊ฒฝ๋ก ${sys:es.logs.cluster_name} ํด๋ฌ์คํธ ์ด๋ฆ์ ๋ํ๋ธ๋ค. elasticsearch.yml ์ cluster.name์ผ๋ก ์ค์ ํ ์ ์๋ค. ${sys:es.logs.node_name} ๋
ธ๋์ ์ด๋ฆ์ ๋ํ๋
๋๋ค. elasticsearch.yml ์ node.name์ผ๋ก ์ค์ ํ ์ ์๋ค. 1 2 ${sys:es.logs.base_path}${sys:file.separator}${sys:es.logs.cluster_name}.log /var/log/elasticsearch/mycluster.log