استقرار Rails با Yugabyte – انجمن DEV

اخیراً، من در این مورد با فرانک پاچوت در مورد پایگاه های داده صحبت کرده ام. و او در مورد YugabyteDB و مزایای SQL توزیع شده به من گفت.
این مقاله نحوه استقرار پایگاه داده Yugabyte را به صورت محلی نشان می دهد. و سپس یک برنامه Rails را به آن وصل کنید.
بیایید ببینیم این چقدر روان است!
بیایید این را به صورت محلی مستقر کنیم
مستندات به خوبی توضیح داده شده است تا پایگاه داده Yugabyte شما را به صورت محلی مستقر کنید.
من یک docker-compose.yml ایجاد کردم تا از تکرار و تکرار یک فرمان جلوگیری کنم.
services:
yuga:
image: "yugabytedb/yugabyte:2.17.3.0-b152"
ports:
- "7001:7000"
- "9042:9042"
- "5433:5433"
- "9000:9000"
command: "bin/yugabyted start --daemon=false"
بفرمایید. اکنون می توانید سعی کنید به پایگاه داده متصل شوید:
در مستندات گفته اند که با این دستور می توانید به YugabyteDB متصل شوید:
با دویدن
docker exec -it yugabyte-yuga-1 /home/yugabyte/bin/ysqlsh --echo-queries
اما معلوم شد که این خطا را دریافت می کنم:
ysqlsh: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting
TCP/IP connections on port 5433?
could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5433?
پس از تحقیق در مورد یک راه حل، این راه حل را از فرانک پاچوت پیدا کردم.
docker exec -it yugabyte-yuga-1 bash -c 'ysqlsh --echo-queries
-h $(hostname) -p 5433'
بیایید با برنامه Rails ارتباط برقرار کنیم
برای آزمایش این پایگاه داده Yugabyte، می خواستم یک برنامه Rails ایجاد کنم.
rails new yugapp -d postgres
Yugabyte یک پایگاه داده سازگار با PostgreSQL است. استفاده از آداپتور برای Postgres با برنامه rails ما باید کار کند. به همین دلیل من آن را قرار دادم -d postgres
گزینه.
اکنون باید فایل database.yml را کمی تغییر دهیم.
در واقع همانطور که در بالا دیدیم، برخلاف Postgres، Yugabyte اتصال در پورت را نمی پذیرد 5432
اما در 5433
.
من موفق شدم با تنظیمات زیر به پایگاه داده به صورت محلی متصل شوم:
default: &default
adapter: postgresql
encoding: unicode
host: localhost -
port: 5432 |__________ added by myself
username: "postgres" |
password: "" -
وظیفه رنک پایگاه داده خود را برای ایجاد، انتقال و بذر پایگاه داده خود اجرا کنید.
rails db:create db:migrate db:seed
ملاحظات
وظیفه رنک با Yugabyte نسبت به Postgres کندتر است.
اما این طبیعی است. در واقع، موتور توزیع شده باید اطمینان حاصل کند که همه چیز همگام شده است. بنابراین عملیات نوشتن لزوما کندتر است.
و بس. اکنون می توانید سرور خود را اجرا کنید و به خوبی کار می کند.
نتیجه
استقرار پایگاه داده Yugabyte با برنامه Rails شما ساده است.
مطمئناً چیزهای بیشتری از Yugabyte در آینده وجود دارد. این یک فناوری واقعاً جالب است و SQL توزیع شده موضوعی پرشور است.
امیدوارم به زودی در مورد الگوریتم RAFT بنویسم!