برنامه نویسی

استقرار 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 بنویسم!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا