sách gpt4 ăn đã đi

RocketMQConnect xây dựng nền tảng xử lý dữ liệu phát trực tuyến

In lại Tác giả: Tôi là chú chim nhỏ Thời gian cập nhật: 2022-12-16 14:31:27 37 4
mua khóa gpt4 giày nike

Tác giả của bài viết này: Sun Xiaojian, Người ủy thác Apache RocketMQ.

01 Kết nối RocketMQ 。

hình ảnh

RocketMQ Connect là một công cụ có thể mở rộng để truyền dữ liệu trực tuyến giữa RocketMQ và các hệ thống khác, đồng thời có thể dễ dàng tích hợp RocketMQ với các công nghệ lưu trữ khác. RocketMQ Connect sử dụng loại trình cắm Nguồn cụ thể để gửi dữ liệu đến Chủ đề RocketMQ và lắng nghe Chủ đề thông qua Sink để ghi dữ liệu vào bộ lưu trữ dữ liệu xuôi dòng được chỉ định. Trong quá trình sử dụng, Connector có thể được cấu hình thông qua JSON mà không cần mã hóa. Quá trình truyền dữ liệu được bắc cầu từ nguồn đến đích thông qua RocketMQ.

hình ảnh

RocketMQ Connect có các tính năng sau:

① Tính phổ biến: Connect đã phát triển các API tiêu chuẩn, bao gồm Trình kết nối, Tác vụ, Trình chuyển đổi và Chuyển đổi. Nhà phát triển có thể mở rộng các plug-in của riêng mình thông qua API tiêu chuẩn để đáp ứng nhu cầu của riêng họ.

② Quản lý tự động Offset (tiếp tục điểm dừng): Khía cạnh nguồn - khi phát triển Connect, người dùng có thể lấy dữ liệu gia tăng thông qua Offset. Hệ thống sẽ tự động quản lý Offset nội bộ và lưu giữ thông tin Offset cuối cùng được lấy ra. Lần tiếp theo khi tác vụ khởi động lại, bạn có thể tiếp tục kéo dữ liệu tăng dần qua Offset được gửi cuối cùng mà không cần phải đồng bộ hóa dữ liệu từ đầu. Dựa trên chiến lược gửi Offset của RocketMQ, nó sẽ triển khai phương thức gửi tự động trong nội bộ và khi tác vụ được thực hiện; đang chạy Nó sẽ được xử lý tự động, cho phép người dùng định cấu hình khoảng thời gian gửi khoản bù; nếu phần bù tích hợp của hệ thống đã có thể đáp ứng nhu cầu thì không cần phải duy trì phần bù riêng nếu phần bù tích hợp của hệ thống không thể đáp ứng; cần, nó có thể được duy trì thông qua API tác vụ. API tác vụ đi kèm với khả năng bảo trì Offset và bạn có thể quyết định logic duy trì Offset trong Connect, chẳng hạn như duy trì nó với MySQL hoặc Redis. Lần tiếp theo khi tác vụ được bắt đầu, Offset thực thi tiếp theo có thể được tự động lấy từ vị trí lưu trữ Offset và có thể tiếp tục kéo tăng dần.

③Phân tán, có thể mở rộng và có khả năng chịu lỗi: Nó có thể được triển khai theo cách phân tán và có khả năng chịu lỗi tích hợp. Khi một Công nhân ngừng hoạt động hoặc một Công nhân được thêm vào, các nhiệm vụ sẽ tự động được phân phối lại và chạy để cân bằng giữa các Công nhân trong mỗi cụm. Sau khi nhiệm vụ thất bại, nó sẽ tự động được thử lại. Sau khi thử lại, nó có thể được tự động cân bằng lại sang một máy Worker khác.

④ Vận hành, bảo trì và giám sát: Connect cung cấp các chức năng quản lý cụm tiêu chuẩn, bao gồm chức năng quản lý Connect và chức năng quản lý plug-in. Bạn có thể bắt đầu và dừng các tác vụ thông qua API, đồng thời bạn cũng có thể xem trạng thái đang chạy và trạng thái bất thường của các tác vụ trong quá trình hoạt động. Và các chỉ báo có thể được báo cáo. Sau khi tác vụ kéo và ghi dữ liệu, tổng lượng dữ liệu, tốc độ dữ liệu, v.v. có thể được báo cáo thông qua Số liệu. Ngoài ra, Metrics còn cung cấp API báo cáo tiêu chuẩn, có thể dùng để mở rộng các chỉ báo và phương pháp báo cáo, chẳng hạn như báo cáo theo chủ đề RocketMQ, Prometheus, v.v.

⑤ Luồng và lô tích hợp: Khi Nguồn đang thực hiện kéo dữ liệu, nó có thể thực hiện kéo dữ liệu hàng loạt thông qua JDBC hoặc SDK trình cắm được chỉ định và chuyển đổi nó sang chế độ phát trực tuyến, thông qua ảnh chụp nhanh gia tăng hoặc giám sát giống như binlog Mysql. chế độ Lấy dữ liệu thay đổi đầy đủ và gia tăng từ nguồn và đẩy nó sang RocketMQ. Hạ nguồn có thể sử dụng Flink hoặc RocketMQ Stream để xử lý phát trực tuyến và tính toán trạng thái. Nó cũng có thể được thả trực tiếp vào công cụ lưu trữ dữ liệu, chẳng hạn như Hudi, Elaticsearch, Mysql, v.v.

⑥Chế độ độc lập, phân phối: Chế độ độc lập chủ yếu được sử dụng trong môi trường thử nghiệm và Chế độ phân phối chủ yếu được sử dụng trong môi trường sản xuất. Trong quá trình dùng thử, bạn có thể sử dụng phương pháp Độc lập để triển khai. Vì nó không lưu trữ Cấu hình nên nó có thể mang lại các tác vụ độc lập mỗi khi khởi động để giúp gỡ lỗi.

hình ảnh

Các thành phần kết nối bao gồm các loại sau:

  • Trình kết nối: Là một bản tóm tắt cấp cao để điều phối nhiệm vụ, nó mô tả cách Nhiệm vụ chạy và cách phân chia Nhiệm vụ.
  • Nhiệm vụ: Chịu trách nhiệm về hoạt động kéo dữ liệu thực tế, bảo trì bù đắp và thu thập dữ liệu Chỉ số nhiệm vụ.
  • Worker: Quá trình thực hiện các tác vụ Task.
  • Bộ chuyển đổi bản ghi: Chuyển đổi dữ liệu giữa Nguồn và Bản ghi sử dụng Schema để xây dựng hợp đồng dữ liệu. Schema có thể được truyền cùng với dữ liệu hoặc được lưu trữ từ xa thông qua RocketMQ Schema Reg. Hiện tại, nó hỗ trợ hai loại Trình chuyển đổi: Avro và JSON.
  • Transform: Thực hiện chuyển đổi dữ liệu trong quá trình truyền dữ liệu. Chẳng hạn như thay đổi trường, thay đổi loại, giá trị null hoặc lọc giá trị lỗi đã biết, v.v.; bạn cũng có thể thực hiện chuyển đổi dữ liệu phức tạp bằng cách mở rộng biến đổi Groovy, biến đổi python và các tập lệnh khác, đồng thời bạn cũng có thể thực hiện lệnh gọi từ xa để hoàn thành dữ liệu tĩnh hoặc thực hiện tính toán hàm.
  • Hàng đợi thư chết: Trong quá trình truyền dữ liệu từ Source sang Sink, nếu chuyển đổi dữ liệu bị lỗi, hết thời gian chờ mạng, lỗi logic gây ra lỗi ghi, v.v., bạn có thể quyết định có ghi dữ liệu vào hàng đợi lỗi hay không dựa trên plug-in logic bạn đã viết hoặc bỏ qua lỗi và tiếp tục hoặc dừng tác vụ sau khi xảy ra lỗi, v.v. Dữ liệu được ghi vào hàng đợi lỗi có thể được sửa chữa không đồng bộ trước khi được ghi mà không cần quan tâm đến thứ tự của dữ liệu.
  • Số liệu: Cải thiện khả năng quan sát trong quá trình chạy tác vụ Khi tác vụ đang kéo và ghi dữ liệu, cần phải theo dõi lượng dữ liệu được tác vụ kéo ra, lượng dữ liệu được ghi, tốc độ kéo, tốc độ ghi, sự khác biệt và việc sử dụng bộ nhớ, v.v., các chỉ số có thể được báo cáo thông qua Số liệu để vận hành và bảo trì hệ thống.

hình ảnh

Hình trên thể hiện quá trình truyền dữ liệu trong Connect.

Trong quá trình triển khai phân tán, Nguồn và Phần chìm có thể nằm trong các Công nhân khác nhau và không phụ thuộc vào nhau. Một Trình kết nối có thể chứa Tác vụ, Chuyển đổi và Chuyển đổi để thực thi tuần tự. Task có nhiệm vụ lấy dữ liệu từ nguồn. Số lượng tác vụ đồng thời được xác định bằng phương pháp sharding của plug-in tùy chỉnh. Sau khi dữ liệu được kéo ra, nếu một Transform xử lý dữ liệu được cấu hình ở giữa, dữ liệu sẽ đi qua một hoặc nhiều Transform được cấu hình theo trình tự, sau đó dữ liệu sẽ được gửi đến Bộ chuyển đổi sẽ sắp xếp lại dữ liệu thành một dữ liệu có thể chuyển được. Nếu được sử dụng, Cơ quan đăng ký lược đồ RocketMQ sẽ xác minh, đăng ký hoặc nâng cấp Lược đồ và cuối cùng dữ liệu đã chuyển đổi sẽ được ghi vào Chủ đề trung gian để Sink hạ lưu sử dụng. Phần chìm xuôi dòng có thể giám sát có chọn lọc một hoặc nhiều Chủ đề. Dữ liệu được truyền trong Chủ đề có thể nằm trong cùng một công cụ lưu trữ hoặc trong các công cụ lưu trữ không đồng nhất, sau khi dữ liệu được chuyển đổi bởi Phần chìm, dữ liệu cuối cùng sẽ được chuyển đến công cụ tính toán luồng. ghi trực tiếp vào bộ lưu trữ đích.

Trong quá trình chuyển đổi, Source Converter và Sink Converter phải nhất quán. Định dạng Lược đồ được phân tích bởi các Bộ chuyển đổi khác nhau sẽ khác nhau. Nếu các Bộ chuyển đổi không nhất quán, điều đó sẽ khiến Sink không thể phân tích dữ liệu. Sự khác biệt giữa các thành phần khác nhau có thể đạt được thông qua các Biến đổi tùy chỉnh.

hình ảnh

Kiến trúc trên có những ưu điểm sau:

① Kiến trúc lỏng lẻo: Nguồn và Phần chìm được tách rời thông qua Chủ đề và E, T và L không còn là một tổng thể. Nói chung, QPS của việc đọc và ghi dữ liệu của cùng một công cụ lưu trữ là rất khác nhau, do đó ETL tích hợp sẽ bị hạn chế bởi hiệu suất ghi của thư viện đích khi đọc dữ liệu.

Sau khi Nguồn và Phần chìm trong RocketMQ Connect được tách rời, Nguồn và Phần chìm có thể được mở rộng và thu nhỏ độc lập để đạt được sự cân bằng động trong việc đọc và ghi dữ liệu mà không ảnh hưởng lẫn nhau.

②API tiêu chuẩn: Giảm bớt khó khăn khi sử dụng và tạo điều kiện mở rộng. Phương pháp viết đồng thời cụ thể được tóm tắt trong API và các nhà phát triển plug-in có thể tùy chỉnh việc phân chia.

③ Trừu tượng hóa dữ liệu được tiêu chuẩn hóa: Sau khi sử dụng Chủ đề để tách riêng, cần thiết lập hợp đồng dữ liệu giữa Nguồn và Nguồn. Connect chủ yếu thực hiện các ràng buộc dữ liệu thông qua Schema. Điều này được sử dụng để hỗ trợ tích hợp dữ liệu giữa các nguồn dữ liệu không đồng nhất.

④Tập trung vào sao chép dữ liệu: Connect chủ yếu tập trung vào việc tích hợp dữ liệu với các nguồn dữ liệu không đồng nhất. Nó không thực hiện tính toán luồng. Nó hỗ trợ sao chép dữ liệu vào các hệ thống truyền phát (Flink, RocketMQ Stream) và sau đó tính toán luồng.

⑤ Nhẹ: ít phụ thuộc. Nếu đã có cụm RocketMQ trong cụm, bạn có thể triển khai trực tiếp RocketMQ Connect để đồng bộ hóa dữ liệu. Việc triển khai rất đơn giản và không cần triển khai thêm các thành phần lập lịch trình. RocketMQ Connect đi kèm với thành phần phân bổ nhiệm vụ riêng và không cần chú ý thêm.

hình ảnh

Ngoài ra, dựa vào hiệu suất mạnh mẽ của RocketMQ, việc di chuyển dữ liệu quy mô lớn có thể được thực hiện giữa các hệ thống khác nhau. Nguồn chủ yếu dựa vào khả năng ghi của RocketMQ và không cần đợi dữ liệu kết thúc giao dịch được ghi. Dựa vào khả năng mở rộng của Topic, Sink có thể xác định tính đồng thời của Downstream Sink dựa trên số lượng phân vùng trong Topic trung gian và tự động mở rộng. Sau khi tác vụ được mở rộng, hệ thống sẽ phân bổ lại Connector để đảm bảo cân bằng tải và offset không bị mất. Nó có thể tiếp tục chạy dựa trên trạng thái chạy cuối cùng mà không cần can thiệp thủ công. Bạn cũng có thể dựa vào chiến lược đặt hàng của RocketMQ để đồng bộ hóa dữ liệu tuần tự.

02 Nguyên tắc kết nối RocketMQ.

hình ảnh

Khu vực quản lý - chịu trách nhiệm chính trong việc nhận các thay đổi hoặc truy vấn cấu hình tác vụ, bao gồm các hoạt động như tạo, xóa, cập nhật, khởi động, dừng và xem Trình kết nối. Sau khi thay đổi tác vụ, phía quản lý sẽ gửi tác vụ đến Chủ đề cấu hình chia sẻ RocketMQ. Bởi vì mỗi Công nhân nghe cùng một Chủ đề, mỗi Công nhân có thể lấy thông tin Cấu hình, sau đó kích hoạt Tái cân bằng cụm và phân phối lại các nhiệm vụ và cuối cùng đạt được sự cân bằng nhiệm vụ toàn cầu.

Vùng thời gian chạy--Chủ yếu cung cấp không gian chạy cho Nhiệm vụ đã được giao cho Công nhân hiện tại. Bao gồm khởi tạo tác vụ, kéo dữ liệu, bảo trì bù, báo cáo trạng thái bắt đầu và dừng tác vụ, báo cáo chỉ số Số liệu, v.v.

Khu vực lập lịch - Connect đi kèm với công cụ lập lịch và phân bổ nhiệm vụ, giúp cân bằng nhiệm vụ giữa các công nhân thông qua băm hoặc băm nhất quán và chủ yếu giám sát những thay đổi trong công nhân và trình kết nối. Ví dụ: Thêm hoặc xóa Worker, thay đổi cấu hình Trình kết nối, bắt đầu và dừng tác vụ, v.v. Việc lấy các thay đổi trạng thái được sử dụng để cập nhật trạng thái tác vụ cục bộ và quyết định xem có thực hiện vòng hoạt động Tái cân bằng tiếp theo để đạt được cân bằng tải cho toàn bộ cụm hay không.

Điểm cuối quản lý, vùng thời gian chạy và vùng lập lịch tồn tại trong mỗi nhân viên của mỗi cụm chủ yếu được thông báo thông qua các chủ đề được chia sẻ giữa các nút chính và nút dự phòng, điều này khiến cho việc vận hành và bảo trì cụm rất phức tạp. . Thuận tiện, bạn chỉ cần xây dựng chủ đề được chia sẻ tương ứng trong Nhà môi giới. Tuy nhiên, do hành động thay đổi trạng thái nhiệm vụ sẽ chỉ xảy ra trong một Worker nên sẽ có độ trễ ngắn trong việc chia sẻ giữa các cụm, do đó Connector được truy vấn thông qua Rest. Api. Có thể có sự không nhất quán tạm thời về trạng thái.

hình ảnh

Quá trình khám phá dịch vụ Khi có thay đổi, mỗi Worker có thể phát hiện sự thay đổi của nút, đạt được hiệu quả phát hiện dịch vụ tự động.

① Khi bắt đầu một Worker mới, Worker sẽ đăng ký giám sát sự thay đổi của client với Chủ đề RocketMQ phụ thuộc. Đối với cùng một Nhóm người tiêu dùng, khi một khách hàng mới được thêm vào, khách hàng đã đăng ký sự kiện sẽ nhận được thông báo thay đổi. Sau khi Worker nhận được sự kiện thay đổi, nó sẽ chủ động cập nhật danh sách Worker của cụm hiện tại.

②Hiệu ứng tương tự sẽ xảy ra khi Công nhân bị hạ gục hoặc co lại.

hình ảnh

Quy trình phân bổ nhiệm vụ của RocketMQ Connect như sau:

Tạo Trình kết nối bằng cách gọi Rest API. Nếu Trình kết nối không tồn tại, nó sẽ được tạo tự động và nếu tồn tại, nó sẽ được cập nhật. Sau khi tạo xong, một thông báo sẽ được gửi đến Config Topic để thông báo cho Worker về những thay đổi của nhiệm vụ. Sau khi Worker nhận được các thay đổi về nhiệm vụ, nó sẽ được phân phối lại để đạt được cân bằng tải. Việc dừng một nhiệm vụ sẽ có tác dụng tương tự. Hiện tại, mỗi Worker sẽ lưu trữ đầy đủ số lượng nhiệm vụ và trạng thái nhưng chỉ chạy Nhiệm vụ được giao cho Worker hiện tại.

Hiện tại, hệ thống cung cấp hai chế độ phân bổ nhiệm vụ, hàm băm đơn giản hoặc hàm băm nhất quán, theo mặc định nên chọn chế độ băm nhất quán. Bởi vì trong trường hợp băm nhất quán, phạm vi thay đổi trong quá trình Rebalance nhỏ hơn so với băm thông thường và một số tác vụ đã được phân bổ sẽ không được tải nữa.

hình ảnh

Các phần tử tiện ích mở rộng của trình kết nối được chia thành thông tin về cấu hình, đồng thời và Tác vụ tùy chỉnh.

Cấu hình tùy chỉnh bao gồm thông tin kết nối (mục cấu hình cốt lõi), thông tin Bộ chuyển đổi, thông tin Chuyển đổi, v.v. Trình kết nối chỉ đóng vai trò là bản tóm tắt và điều phối toàn cầu của nhiệm vụ, còn tác dụng thực tế vẫn là Nhiệm vụ được giao. Ví dụ: 100 triệu dữ liệu được chia thành nhiều task để pull và thực thi ở các Task khác nhau. Do đó, các Task cần được phân chia theo logic hợp lý thông qua Connector. Sau khi Connecor tách cấu hình, nó sẽ thông báo cho Task về cấu hình logic kéo dữ liệu thực tế và Task xác định phương pháp kéo dữ liệu cụ thể.

Các phần tử mở rộng nhiệm vụ bao gồm khởi tạo cấu hình, mở và đóng kết nối, tần suất kéo, xử lý lỗi, logic kéo dữ liệu thực tế và bảo trì bù đắp.

hình ảnh

Chuyển đổi toàn cầu của Trình chuyển đổi trong toàn bộ hệ thống sử dụng cùng một bộ API và được chia thành hai chế độ:

Chế độ cục bộ: Sau khi lấy dữ liệu từ Source Connect, Converter thực hiện chuyển đổi dữ liệu. Trong quá trình chuyển đổi, thao tác cục bộ sẽ hợp nhất Lược đồ và giá trị vào bản ghi Kết nối và chuyển nó xuống dòng. Hạ lưu sử dụng cùng một Trình chuyển đổi để chuyển đổi nó thành Bản ghi và đẩy nó vào tác vụ Chìm để ghi dữ liệu. Ở giữa, một hợp đồng dữ liệu được thực hiện thông qua Lược đồ chuyển đổi, có thể được chuyển đổi giữa Nguồn và Phần chìm. Ở chế độ cục bộ, Lược đồ và Giá trị được truyền đi toàn bộ, phần thân dữ liệu rất cồng kềnh và mỗi phần dữ liệu đều mang thông tin Lược đồ. Nhưng ưu điểm của nó là không có vấn đề tương thích phiên bản.

Chế độ từ xa: Trong quá trình chuyển đổi dữ liệu, Schema sẽ được lưu trong hệ thống Đăng ký Schema RocketMQ từ xa, chỉ có giá trị Value và không có thông tin ràng buộc Schema trong quá trình truyền dữ liệu. Khi Sink đăng ký một Chủ đề, nó sẽ lấy thông tin Lược đồ thông qua ID bản ghi trong tiêu đề thông tin, thực hiện xác minh Lược đồ và sau đó thực hiện chuyển đổi dữ liệu sau khi xác minh.

Lược đồ được duy trì trong hệ thống Đăng ký Lược đồ RocketMQ. Do đó, trong quá trình chuyển đổi, Lược đồ có thể được cập nhật thủ công trong hệ thống và sau đó SchemaID được chỉ định sẽ được sử dụng để chuyển đổi, nhưng khả năng tương thích dữ liệu cần phải được thực hiện trong trình cắm Bộ chuyển đổi.

Connect Converter có các tiện ích mở rộng tích hợp, bao gồm JSON cục bộ, Trình chuyển đổi loại dữ liệu phổ biến, v.v. Nếu tiện ích mở rộng tích hợp không thể đáp ứng nhu cầu của bạn, bạn có thể tự mở rộng tiện ích đó thông qua API Trình chuyển đổi bản ghi. Sau khi mở rộng, hãy đặt gói Chuyển đổi vào thư mục plug-in Worker đang chạy và hệ thống sẽ tự động tải nó.

Có hai phương pháp cấu hình: Key và Value. Trong số đó, Key là dữ liệu được chú thích duy nhất, cũng có thể là dữ liệu có cấu trúc Struct; Value là dữ liệu được truyền đi thực tế.

hình ảnh

Transform là công cụ phụ trợ cho việc chuyển đổi ánh xạ dữ liệu và tính toán đơn giản giữa Connector và Convertor. Khi Bộ chuyển đổi nguồn và Trình kết nối chìm không thể đáp ứng các yêu cầu kinh doanh trong quá trình sử dụng, việc điều chỉnh dữ liệu có thể được thực hiện bằng cách viết một trình cắm Chuyển đổi. Ví dụ: chuyển đổi dữ liệu giữa các doanh nghiệp khác nhau và các plug-in nguồn dữ liệu khác nhau, chẳng hạn như ánh xạ trường, dẫn xuất trường, chuyển đổi loại, hoàn thành trường, tính toán hàm phức tạp, v.v.

Các chế độ Transform tích hợp trong hệ thống bao gồm mở rộng trường, thay thế, v.v. Nếu nó không đáp ứng được nhu cầu của bạn, bạn có thể tự mở rộng Transform thông qua API. Khi triển khai, bạn chỉ cần đóng gói tiện ích mở rộng bằng văn bản và đặt nó vào thư mục plug-in tương ứng, nó sẽ tự động được tải.

Phương pháp cấu hình cụ thể được hiển thị ở góc dưới bên trái của hình trên. Nhiều phép biến đổi có thể được thực hiện trên một giá trị và nhiều Biến đổi có thể được cấu hình. Khi cần định cấu hình nhiều Biến đổi, hãy phân tách chúng bằng dấu phẩy và không được lặp lại tên.

hình ảnh

Khi Tác vụ Nguồn thực hiện kéo dữ liệu hoặc giám sát thay đổi, chẳng hạn như khi thực hiện kéo dữ liệu gia tăng thông qua JDBC Mysql, bạn cần chỉ định phương thức kéo gia tăng Offset, có thể thông qua ID tăng tự động hoặc Sửa đổi thời gian. Sau khi mỗi lần kéo dữ liệu được hoàn thành và gửi thành công, thông tin gia tăng (id hoặc thời gian sửa đổi) sẽ được gửi tới người ghi offset và hệ thống sẽ duy trì thông tin đó một cách không đồng bộ. Lần tiếp theo khi tác vụ được bắt đầu, Offset sẽ tự động được lấy và dữ liệu sẽ được xử lý từ điểm cuối cùng để đạt được hiệu quả của việc tiếp tục truyền.

Không có mẫu cố định khi đóng gói Offset. Bạn có thể ghép khóa hoặc giá trị Offset theo cách riêng của mình. Điều duy nhất bạn dựa vào là thông tin chủ đề Connect offset trong RocketMQ, chủ yếu được sử dụng để đẩy các bản cập nhật Offset cục bộ cho các công nhân khác. Nếu bạn sử dụng bảo trì bù đắp của hệ thống, người dùng chỉ cần quyết định logic báo cáo bảo trì và không cần chú ý đến cách đảm bảo gửi bù đắp, chế độ khôi phục bù đắp, v.v., mọi thứ đều được hệ thống đảm bảo.

hình ảnh

Trong quá trình hoạt động, nếu bật hàng đợi thư chết, dữ liệu đúng sẽ được gửi đến đích và dữ liệu không chính xác sẽ được gửi đến hàng đợi lỗi. Phía doanh nghiệp có thể xử lý dữ liệu không đồng bộ, nhưng trật tự không thể được đảm bảo trong trường hợp này. Nếu muốn đảm bảo dữ liệu theo đúng thứ tự, bạn cần dừng Tác vụ khi xảy ra lỗi, sửa chữa dữ liệu trước, sau đó khởi động Tác vụ sau khi sửa chữa.

Nếu một Task nào đó báo lỗi khi xử lý dữ liệu thì bạn chỉ cần dừng Task bị lỗi đó, các Task khác sẽ không bị ảnh hưởng. Vì mỗi Task sử dụng các Query khác nhau khi xử lý dữ liệu nên nếu chỉ định Key thì dữ liệu sẽ được phân vùng theo Key và mỗi Query trong phân vùng sẽ đảm bảo được sắp xếp theo thứ tự nên việc dừng một Task sẽ không ảnh hưởng đến thứ tự chung .

03 kịch bản sử dụng RocketMQ Connect.

hình ảnh

RocketMQ Connect có thể được áp dụng cho hầu hết các tình huống áp dụng ETL truyền thống. Ngoài ra, RocketMQ Connect cũng có thể đạt được những điều mà ETL truyền thống không thể đạt được, chẳng hạn như phát trực tuyến theo thời gian thực, tích hợp luồng hàng loạt, chức năng chụp nhanh, v.v.

Kịch bản di chuyển giữa các hệ thống cũ và mới: Trong quá trình nâng cấp và thay đổi của bộ phận kinh doanh, các thay đổi về loại, hoạt động chia tách hoặc mở rộng bảng và bổ sung chỉ mục có thể gây ra thời gian ngừng hoạt động và mất rất nhiều thời gian. Dữ liệu có thể được di chuyển thông qua RocketMQ Connect.

Kịch bản phân đoạn: Hiện có nhiều plug-in sharding trên thị trường. Bạn có thể điều chỉnh ứng dụng khách sharding nguồn mở thông qua Connect để thực hiện công việc sharding của riêng mình dựa trên RocketMQ. Sau khi dữ liệu được lấy ra từ một bảng duy nhất, logic của việc phân chia cơ sở dữ liệu và bảng có thể được thực hiện trong Transform. Việc định tuyến có thể được thực hiện thông qua Transform. Việc định tuyến đến các Chủ đề khác nhau có thể được thực hiện xuôi dòng bằng cách nghe các Chủ đề khác nhau và rơi vào các bảng thư viện đã được chia sẵn.

Đa hoạt động: RocketMQ Connect hỗ trợ sao chép chủ đề và siêu dữ liệu giữa các cụm, đảm bảo bù đắp nhất quán ở nhiều trung tâm.

Kịch bản đăng ký dữ liệu: Sử dụng chế độ CDC để theo dõi dữ liệu và thông báo dữ liệu cho hạ lưu. Cung cấp đăng ký dữ liệu xuôi dòng và cập nhật dữ liệu tức thời. Đồng thời, dữ liệu cũng có thể được kéo và đẩy trực tiếp xuống hệ thống kinh doanh hạ nguồn thông qua HTTP, tương tự như phương thức Webhook, nhưng yêu cầu cần phải được xác thực, giới hạn luồng, v.v.

Thứ hai, cũng có các tình huống kinh doanh như lưu trữ dữ liệu vào hồ, sao lưu dữ liệu nguội, tích hợp dữ liệu nguồn dữ liệu không đồng nhất, v.v., có thể được sử dụng làm giải pháp xử lý dữ liệu thông qua RocketMQ Connect.

Từ kịch bản sử dụng tổng thể, nó có thể được chia đại khái thành hai phần, tích hợp dữ liệu và xử lý phát trực tuyến. Tích hợp dữ liệu chủ yếu liên quan đến việc di chuyển dữ liệu từ hệ thống này sang hệ thống khác và có thể đồng bộ hóa dữ liệu giữa các nguồn dữ liệu không đồng nhất. Xử lý truyền phát chủ yếu liên quan đến việc lấy thông tin xử lý hàng loạt thông qua dữ liệu hàng loạt hoặc đồng bộ hóa dữ liệu gia tăng với hệ thống xử lý luồng tương ứng ở chế độ CDC, thực hiện tổng hợp dữ liệu, tính toán cửa sổ và các hoạt động khác và cuối cùng ghi nó vào công cụ lưu trữ thông qua Sink.

04 Hệ sinh thái RocketMQ Connect.

hình ảnh

RocketMQ Connect hiện hỗ trợ tất cả các sản phẩm trong hình trên và nền tảng này cũng cung cấp khả năng thích ứng plug-in Kafka Connect.

Cuối cùng, bài viết về RocketMQConnect xây dựng nền tảng xử lý dữ liệu phát trực tuyến kết thúc tại đây. Nếu bạn muốn biết thêm về RocketMQConnect xây dựng nền tảng xử lý dữ liệu phát trực tuyến, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. tương lai blog của tôi! .

37 4 0
tôi là một con chim nhỏ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress