Computer >> Máy Tính >  >> Lập trình >> Redis

Di chuyển cơ sở dữ liệu trực tuyến từ Amazon ElastiCache sang Redis Enterprise Cloud được thực hiện đơn giản

Hầu hết các công cụ di chuyển cơ sở dữ liệu hiện có ở bản chất ngoại tuyến. Chúng phức tạp và cần sự can thiệp thủ công.

Ví dụ:nếu bạn muốn di chuyển dữ liệu của mình từ Amazon ElastiCache sang Redis Enterprise Cloud, quy trình thông thường là sao lưu dữ liệu ElastiCache của bạn vào một nhóm Amazon S3 và sau đó nhập dữ liệu của bạn bằng giao diện người dùng Redis Enterprise Cloud. Quá trình này có thể yêu cầu thời gian chết và có thể dẫn đến mất dữ liệu. Các kỹ thuật có sẵn khác bao gồm tạo ảnh chụp nhanh tại thời điểm của máy chủ Redis nguồn và áp dụng các thay đổi cho máy chủ đích để giữ cho cả hai máy chủ được đồng bộ hóa. Điều đó nghe có vẻ như là một cách tiếp cận tốt, nhưng nó có thể là một thách thức khi bạn phải duy trì hàng tá tập lệnh để thực hiện chiến lược di chuyển.

Vì vậy, chúng tôi đã đưa ra một cách tiếp cận khác:

Giới thiệu RIOT

RIOT là một công cụ di chuyển trực tuyến mã nguồn mở được xây dựng bởi Julien Ruaux, một Kiến trúc sư Giải pháp tại Redis. RIOT triển khai nhân rộng phía khách hàng bằng cách tiếp cận nhà sản xuất / người tiêu dùng. Trình sản xuất là sự kết hợp của các trình đọc khóa và giá trị có kết nối với ElastiCache. Thành phần trình đọc khóa xác định các khóa sẽ được sao chép bằng cách sử dụng thông báo quét và không gian phím. Đối với mỗi khóa, thành phần đọc giá trị thực hiện DUMP và xử lý khóa + byte kết quả cho người tiêu dùng (người viết), thành phần này thực hiện KHÔI PHỤC trên kết nối Redis Enterprise.

Di chuyển cơ sở dữ liệu trực tuyến từ Amazon ElastiCache sang Redis Enterprise Cloud được thực hiện đơn giản

Bài đăng trên blog này sẽ chỉ ra cách thực hiện di chuyển cơ sở dữ liệu trực tuyến liền mạch từ ElastiCache sang Redis Enterprise Cloud.

Đừng bỏ lỡ:6 Tính năng chính cần xem xét khi chọn nhà cung cấp DBaaS Cách Redis Enterprise Cloud đáp ứng nhu cầu của khách hàng doanh nghiệp đang trưởng thành trên AWS

Điều kiện tiên quyết:

Bạn sẽ cần một số tài nguyên để sử dụng công cụ di chuyển:

  1. Đăng ký Redis Enterprise Cloud
  2. Amazon ElastiCache (một điểm cuối chính trong trường hợp một EC chính và một điểm cuối cấu hình trong trường hợp một EC nhóm:Tham khảo Tìm điểm cuối kết nối trên tài liệu ElastiCache để tìm hiểu thêm)
  3. Phiên bản Amazon EC2 dựa trên Linux

Thiết lập phiên bản Amazon EC2

Bạn có thể tạo một phiên bản EC2 mới hoặc tận dụng một phiên bản hiện có. Trong ví dụ của chúng tôi, trước tiên chúng tôi sẽ tạo một phiên bản trên Amazon Web Services (AWS). Tình huống phổ biến nhất là truy cập một cụm ElastiCache từ một phiên bản Amazon EC2 trong cùng Đám mây riêng ảo Amazon (Amazon VPC). Chúng tôi đã sử dụng Ubuntu 16.04 LTS cho thiết lập này, nhưng bạn có thể chọn bản phân phối Ubuntu hoặc Debian mà bạn chọn.

Sử dụng SSH để kết nối với phiên bản EC2 mới này từ máy tính của bạn như được hiển thị ở đây:

ssh -i “public key” <AWS EC2 Instance>

Cài đặt công cụ redis-cli trên phiên bản mới này bằng cách chạy lệnh sau:

$ sudo apt update
# sudo apt install -y redis-tools

Sử dụng redis-cli để xác minh kết nối với cơ sở dữ liệu ElastiCache

Cú pháp:

$ redis-cli -h <Elasticache Primary Endpoint > -p 6379

Lệnh:

$ sudo redis-cli -h <elasticache primary endpoint> -p 6379

Đảm bảo rằng lệnh trên cho phép bạn kết nối thành công với cơ sở dữ liệu Redis từ xa.

Sử dụng công cụ di chuyển RIOT

Di chuyển cơ sở dữ liệu trực tuyến từ Amazon ElastiCache sang Redis Enterprise Cloud được thực hiện đơn giản

Chạy các lệnh bên dưới để thiết lập công cụ di chuyển.

Điều kiện tiên quyết:

Cài đặt Java:Chúng tôi khuyên bạn nên sử dụng OpenJDK 11 trở lên:

sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update -q && sudo apt install -y openjdk-11-jdk

Cài đặt RIOT

Giải nén gói và đảm bảo rằng các mã nhị phân RIOT đã ở đúng vị trí, như được hiển thị ở đây:

wget https://github.com/Redislabs-Solution-Architects/riot/releases/download/v2.0.8/riot-redis-2.0.8.zip



unzip riot-redis-2.0.8.zip
cd riot-redis-2.0.8/bin/

Bạn có thể kiểm tra phiên bản RIOT bằng cách chạy lệnh bên dưới:

./riot-redis --version
RIOT version "2.0.8"


 bin/riot-redis --help
Usage: riot-redis [OPTIONS] [COMMAND]
  -q, --quiet         Log errors only
  -d, --debug         Log in debug mode (includes normal stacktrace)
  -i, --info          Set log level to info
  -h, --help          Show this help message and exit.
  -V, --version       Print version information and exit.
Redis connection options
  -r, --redis=<uri>   Redis connection string (default: redis://localhost:6379)
  -c, --cluster       Connect to a Redis Cluster
  -m, --metrics       Show metrics
  -p, --pool=<int>    Max pool connections (default: 8)
Commands:
  replicate, r  Replicate a source Redis database in a target Redis database
  info, i       Display INFO command output
  latency, l    Calculate latency stats
  ping, p       Execute PING command

Sau khi Java và RIOT được cài đặt, tất cả chúng ta sẽ bắt đầu quá trình di chuyển bằng lệnh bên dưới, lệnh này sẽ sao chép dữ liệu trực tiếp từ nguồn (ElastiCache) sang đích (Redis Enterprise Cloud).

Cuối cùng, đã đến lúc sao chép dữ liệu từ ElastiCache sang Redis Enterprise Cloud bằng cách chạy lệnh dưới đây:

sudo ./riot-redis -r redis://<source Elasticache endpoint>:6379 replicate -r redis://password@<Redis Enterprise Cloud endpoint>:port --live

ElastiCache cho phép bạn cấu hình theo hai cách:phân cụm và không phân cụm. Trong biểu đồ bên dưới, hàng đầu tiên hiển thị các lệnh bạn nên thực hiện đối với kịch bản không phân cụm, trong khi hàng thứ hai hiển thị lệnh cho kịch bản được phân nhóm với một không gian tên cơ sở dữ liệu cụ thể:

Di chuyển cơ sở dữ liệu trực tuyến từ Amazon ElastiCache sang Redis Enterprise Cloud được thực hiện đơn giản

Như bạn có thể thấy, bất cứ khi nào bạn có ElastiCache được phân cụm, bạn cần phải chuyển tùy chọn –cluster trước khi chỉ định điểm cuối ElastiCache nguồn.

Ghi chú quan trọng

  • Thực hiện kiểm tra sự chấp nhận của người dùng đối với quá trình di chuyển trước khi sử dụng nó trong sản xuất.
  • Sau khi quá trình di chuyển hoàn tất, hãy đảm bảo rằng lưu lượng ứng dụng được chuyển hướng thành công đến điểm cuối Redis Enterprise.
  • Thực hiện quá trình di chuyển trong khoảng thời gian lưu lượng truy cập thấp để giảm thiểu nguy cơ mất dữ liệu.

Kết luận

Nếu bạn đang tìm kiếm một công cụ di chuyển trực tiếp đơn giản và dễ sử dụng có thể giúp bạn di chuyển dữ liệu từ Amazon ElastiCache sang Redis Enterprise Cloud mà không mất thời gian chết, RIOT là một lựa chọn đầy hứa hẹn.

Tài liệu tham khảo:

  • RIOT - Làm lại các công cụ đầu vào / đầu ra