MoleculerJS ์ด๋ํฐ๋ก API Gateway ํจ๊ป์ ์๋์ ํผ์ด ๋ชจ๋์ ํ์ฉ ํ ์ ์์ต๋๋ค.
moleculer-iam - OIDC ๋ฐ Identity Provider๋ฅผ ์ ๊ณตํ๋ IAM ๋ชจ๋, ์ธ์ฆ ์ปจํ ์คํธ์ ์ฐ๋ ๊ฐ๋ฅ
- ํ์ผ ์ ๋ก๋/๋ค์ด๋ก๋/๊ด๋ฆฌ ๋ชจ๋ (GCP Storage bucket backend / File System backend ์ง์)
- ๊ตญ์ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ๋ฐ ์กฐํ ๋ชจ๋ (MySQL/Maria DBMS ํ์)
- ํ์ฅ ๊ฐ๋ฅํ Admin Console WebApp (React.js)
API document component ๊ธฐ๋ณธ ์ ๊ณต ( ํธํ)
IAM component ๊ธฐ๋ณธ ์ ๊ณต ( ํธํ)
File management component ๊ธฐ๋ณธ ์ ๊ณต ( ํธํ)
Translation component ๊ธฐ๋ณธ ์ ๊ณต ( ํธํ)
์์ฒญ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก API ์์ฒญ์ ํ์ฉ๋๋ ์ปค๋ฅํฐ์ ๋๋ค. ์ ๊ทผ ์ ์ด ๋ฐ stateless ์ปค๋ฅํฐ๋ฅผ ์ฐ๊ณ ํ ์ ์์ต๋๋ค.
GraphQL์ Subscription ํ์
์ด๋ WebSocket ํ๋กํ ์ฝ ๋ฑ์ ์ฌ์ฉํ์ง ์๊ฑฐ๋, ๋ถ์ฐ ์์คํ
์ ์ค์ ๋ฉ์์ง ์๋น์ค๋ฅผ ์ ๊ณต ํ ์ ์๋ ๊ฒฝ์ฐ์ publish, subscribe ์ปค๋ฅํฐ๋ฅผ ๊ตฌํํ์ง ์์๋ ๋ฌด๊ดํฉ๋๋ค.
์์ฒญ ์ํ๊ฐ ์๋ ์ปค๋ฅํฐ์ ๋๋ค.
map
์ค์ ๋ฉ์์ง ์๋น์ค์์ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํฉ๋๋ค.
๋ถ์ฐ ์๋น์ค ๋ฐ ์ก์ , ์ค์ ๋ฉ์์ง ์๋น์ค์ ์ํ ํ์ธ์ ์ ๊ณตํฉ๋๋ค.
reporter
O
์ถ์ฒ ๋ ธ๋๋ก ๋๋ฒ๊ทธ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํฉ๋๋ค.
logger
O
Gateway์ ๋ก๊น ์ธ์คํด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ปค๋ฅํฐ
์ด๋ํฐ์ ์์
์ฐ๊ฒฐ ๊ฐ๋ฅํ ์ปค๋ฅํฐ
๊ฐ์
call
O
params, map
๋ถ์ฐ ์๋น์ค ์ก์ ์ ํธ์ถํฉ๋๋ค.
publish
O
params
์ค์ ๋ฉ์์ง ์๋น์ค์ ์ด๋ฒคํธ๋ฅผ ๋ฐํํฉ๋๋ค.
subscribe
์ปค๋ฅํฐ
์ด๋ํฐ์ ์์
๊ฐ์
map
X
Inline JavaScript Function String์ VM์์ ํด์ํ์ฌ ์ฃผ์ด์ง ๊ฐ์ฒด๋ ์๋ต ๊ฐ์ฒด๋ฅผ ๋ณํํฉ๋๋ค.
params
X
์์ฒญ ํ์ด๋ก๋์์ ์์ ํ ์ปค๋ฅํฐ๋ค๋ก ์ ๋ฌ ํ ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
discover
O
๋ถ์ฐ ์๋น์ค์ ์ ๋ฐ์ดํธ๋ ์ข ๋ฃ๋ฅผ ๊ฐ์งํ๊ณ , ๋ ธ๋, ์๋น์ค API Schema, ์ก์ ๋ฐ ์ด๋ฒคํธ ๊ตฌ๋ , ๋ฐํ ์ ๋ณด๋ฅผ ์์งํฉ๋๋ค.
health
O
O
API Gateway๋ ์ต์ด์ Moleculer MSA ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ๊ฐ๋ฐ๋์์ง๋ง, ํ์ฅ์ฑ์ ์ํด์ ๊ฐํ ๋์ปคํ๋ง์ ๋ฐฉ์นจ์ผ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค.
API Gateway๋ ๋ถ์ฐ ์๋น์ค ๋ฐ ์ค์ ๋ฉ์์ง ์๋น์ค์์ ๋คํธ์ํน์ ์๋น์ค ๋ธ๋ก์ปค์๊ฒ ์์ํฉ๋๋ค. ์๋น์ค ๋ธ๋ก์ปค๋ ๋ถ์ฐ ์๋น์ค๋ค์ ๋คํธ์ํน์ ์์ ๋ฐ์ผ๋ฉฐ, call, publish, subscribe, discover, report ๋ฑ์ ์ฃผ์ ๋คํธ์ํน ์ธํฐํ์ด์ค(์ปค๋ฅํฐ)๋ฅผ ๊ฐ์ง ์ด๋ํฐ์ ๊ฒฐํฉ๋ฉ๋๋ค.
Service Broker
์๋น์ค ๋ธ๋ก์ปค๋ ๋ถ์ฐ ์๋น์ค๋ค์ ๋คํธ์ํน์ ์์ ๋ฐ์ผ๋ฉฐ, call, publish, subscribe, discover, report ๋ฑ์ ์ฃผ์ ๋คํธ์ํน ์ธํฐํ์ด์ค(์ปค๋ฅํฐ)๋ฅผ ๊ฐ์ง ์ด๋ํฐ์ ๊ฒฐํฉ๋ฉ๋๋ค.
๋ธ๋ก์ปค๋ ์ ์ปค๋ฅํฐ๋ค์ ํน์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๋จ์ผํ ๊ฐ์ฒด๋ก ๊ตฌํ๋ฉ๋๋ค.
MoleculerAPIGateway ์๋น์ค๋ฅผ minxin์ ํฌํจํด moleculer.ServiceSchema๋ฅผ ํ์ฅ ํ ์ ์์ต๋๋ค.
MoleculerServiceBroker๋ฅผ ์ด์ฉํด ์ง์ moleculer.ServiceSchema๋ฅผ ๊ตฌํ ํ ์ ์์ต๋๋ค.
๊ธฐํ MSA ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฉํด ServiceBroker ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ ํ ์ ์์ต๋๋ค.