Giải pháp Odoo API

Làm thế nào khi API Odoo tiêu chuẩn đã đạt đến giới hạn và hiệu suất cơ sở dữ liệu bị giảm.

Tại sao chúng tôi dành một bài viết về giải pháp API

Những năm qua gần đây, ngày càng nhiều doanh nghiệp có nhu cầu mở rộng hệ thống Odoo của họ và kết nối với các hệ thống chuyên dụng của bên thứ ba bằng cách sử dụng hệ thống API Odoo và kết nối API Odoo XML-RPC.

Bên cạnh đó, chúng tôi cũng nhận thấy rằng khi các doanh nghiệp phát triển và có nhu cầu sử dụng tăng cao, giới hạn API Odoo tiêu chuẩn bắt đầu ảnh hưởng đến hiệu suất.

Vậy nguyên nhân là gì và bạn nên làm gì khi điều này xảy ra?

Odoo API Solutions

Các Giới Hạn của Odoo API Tiêu Chuẩn


Khi đánh giá hiệu suất của Odoo API tiêu chuẩn, người dùng nhanh chóng nhận thấy rằng giải pháp này không thể xử lý các luồng dữ liệu lớn kết hợp với hoạt động chuyên sâu. Ví dụ, các thử nghiệm của chúng tôi đã chỉ ra việc tạo nhiều hơn hai đến ba đơn bán hàng mỗi giây cho mỗi nhân viên trong ứng dụng Bán hàng tiêu chuẩn rất khó, ngay cả trên phiên bản mới nhất Odoo 14 & 15 Doanh nghiệp. 

Điều này chủ yếu là do các giao dịch POST (các giao dịch được chuyển từ sổ đăng ký giao dịch sang sổ cái chung) khi được chuyển vào Odoo vẫn phải được xác thực bởi cơ chế ORM trong Odoo. Các vấn đề tương tự xảy ra trong quá trình nhập liệu ở mức độ trung bình đến lớn.

Trong kinh nghiệm triển khai của chúng tôi, nhiều dự án đã không thành công vì các kỹ sư Odoo không cân nhắc đến nhu cầu và dự báo về khối lượng đơn hàng và tốc độ xử lý ngay từ đầu. Tuy nhiên trên thực tế, các thông số về đơn đặt hàng, danh sách hàng hoá, chuyển kho và hóa đơn trong một năm kinh doanh của khách hàng đều được họ ước tính.

Tương tự như trường hợp các nhà phát triển ứng dụng smartphone tin rằng họ có thể sử dụng lớp API Odoo XML/RPC tiêu chuẩn để tăng hiệu suất của các ứng dụng dành cho người dùng cuối được hàng nghìn người sử dụng đồng thời. Điều này vượt quá khả năng của Odoo ORM với các ứng dụng B2C tương tư với khối lượng người sử dụng lớn.


Quy mô Dự án Khác nhau dẫn đến Kiến trúc Khác nhau


Về cơ bản, có ba cách khác nhau để xử lý giao diện API.

1.  Phương pháp tiếp cận Odoo API Tiêu chuẩn

Phương pháp Odoo API tiêu chuẩn sử dụng API bên ngoài do Odoo cung cấp để truy cập các tính năng và dữ liệu từ việc tích hợp với các công cụ bên ngoài khác. Các nhà phát triển có thể truy cập phương pháp này qua phương thức API Odoo XML-RPC với nhiều ngôn ngữ lập trình như Python, Java, PHP và Ruby có sẵn.

Lợi ích đầu tiên của phương pháp này là dễ thực hiện vì tất cả các thao tác chuyên sâu khác đã được Odoo xử lý, bạn có thể tham khảo thêm tại đây. Cách tiếp cận này mang lại kết quả nhanh chóng và đảm báo tính thống nhất của dữ liệu bởi tính năng xác thực ORM tiêu chuẩn của Odoo trước khi COMMIT.

Nói một cách dễ hiểu, phương pháp tiếp cận tiêu chuẩn cho phép người dùng trực tiếp sử dụng API - với kiến trúc và phương pháp triển khai tiêu chuẩn - do Odoo cung cấp mà không cần bất kỳ sửa đổi nào. Tuy nhiên, phương pháp này không thích hợp cho việc tích hợp dữ liệu lớn và hạn chế số lượng người dùng đồng thời.

Các hạn chế của phương pháp tiếp cận Odoo API  tiêu chuẩn:
  • Hạn chế số lượng các giao dịch và người dùng đồng thời

  • Hạn chế khối lượng dữ liệu

  • Không có khả năng mở rộng


2.  Tích hợp API nâng cao

Phương pháp tiếp cận API Odoo tiêu chuẩn có thể giúp việc tích hợp trở nên đơn giản. Tuy nhiên, nếu hệ thống cần xử lý một khối lượng giao dịch lớn hơn, doanh nghiệp cần đến phương pháp tích hợp API nâng cao hơn.

Cách tiếp cận này sẽ vượt trội hơn tính năng ORM tiêu chuẩn của Odoo. Để áp dụng cách tiếp cận này, logic về quyền truy cập vào dữ liệu phải được thiết kế lại theo các nguyên tắc sau:

  • Sử dụng Odoo ORM để tạo/cập nhật các mô hình dữ liệu và đối tượng được sử dụng bởi các điểm cuối

  • Triển khai trình kết nối chuyên dụng và bỏ qua các tính năng Odoo XML/RPC khi cần

  • Thay thế các tính năng API tiêu chuẩn của Odoo bằng một công cụ API khác nhằm nâng cao hiệu suất

  • Tích hợp các quy trình xác thực dữ liệu của ORM ở mức độ API mới nhằm đẩy nhanh thời gian xác thực/phản hồi

Lợi ích và Hạn chế

Tích hợp API nâng cao có thể cho phép nhiều người truy cập hệ thống đồng thời hơn so với cách tiếp cận tiêu chuẩn. Nhờ đó, doanh nghiệp có thể tăng khối lượng dữ liệu có thể xử lý cho mỗi yêu cầu API và nói chung cho toàn hệ thống mà không ảnh hưởng đến hiệu suất của hệ thống.

Song, người dùng vẫn phải đối mặt với một số hạn chế nhất định. Các công nghệ mới sẽ xuất hiện trong dự án, vì vậy, doanh nghiệp cần đội ngũ hoặc kỹ thuật viên có nhiều chuyên môn hơn để xử lý công việc. Trong phương pháp API nâng cao, Odoo API sẽ là giải pháp chính và kiến trúc được nâng cấp - ETL (Trích xuất, Chuyển đổi, Tải) sẽ được chia thành hai hệ thống khác nhau. Do đó, để duy trì tính liên kết của ETL, phương pháp này đòi hỏi mức độ chính xác cao hơn.

Bạn đang gặp vấn đề với Odoo API tiêu chuẩn?

Odoo • Image and Text


3.  Giải pháp API Hiệu suất cao

Năm nay, chúng tôi đã triển khai một hệ thống kiến trúc có Tính Sẵn Sàng Cao dành riêng cho một doanh nghiệp lớn trong “thị trường giao dịch” tại khu vực Nam Á. Các nhu cầu tải và hiệu suất ban đầu mang đến đến 1500 lượt chèn (yêu cầu POST) mỗi giây và lên đến 10.000 lượt tải xuống (yêu cầu GET) mỗi giây.

Tải lượng này vượt xa các khả năng được thiết lập sẵn trong mô-đun Odoo cơ bản đang sử dụng phương thức Odoo API XML-RPC tiêu chuẩn. Tích hợp API nâng cao cũng không thể xử lý được vì lượng người dùng đồng thời quá lớn có thể dễ dàng làm gián đoạn hiệu suất và khả năng xử lý giao dịch của Cơ sở Dữ liệu Odoo.

Vì những thách thức trên, chúng tôi đã phải sử dụng các công nghệ sau:

  • Phân chia kiến trúc Odoo/API

  • Dịch vụ API Daemonized (bên ngoài Odoo) chạy ở chế độ đa luồng

  • Sự hợp nhất của công cụ API với các cơ chế cân bằng tải (cung cấp tiềm năng tăng trưởng gần như vô hạn về mặt công suất)

  • Xác thực và ủy quyền SQL nhúng

  • Các kiểu dữ liệu SQL và khả năng phân biệt giống cơ chế ORM

  • Thư viện C+ PostgreSQL chuyên dụng

  • Haskell shell và file thực thi nhị phân 

Với công nghệ mới này, chúng tôi đã cải thiện hiệu suất ở các cấp độ sau:

  • Xác thực/Ủy quyền thực hiện ở mức độ thấp thay vì lấy quyền truy cập từ ORM

  • Xác thực dữ liệu theo thời gian thực mà không cần đến ORM

  • Cải thiện tính bảo mật bằng việc đóng quyền truy cập công khai trình kết nối XML-RPC của hệ thống trong back-end

Biểu đồ trên cho thấy các thông số kỹ thuật của hệ thống mới không quá cao. Bạn chỉ cần một CPU có RAM ít nhất 1GB và SSD 5GB.

Thời gian thực hiện 1500 đơn đặt hàng chỉ mất khoảng 3 giây trên một kiến trúc đơn giản và giảm xuống còn 200 mili giây khi được phân chia qua các bộ vi xử lý khác nhau, các nhóm phiên bản cân bằng tải được quản lý, hoặc qua các cụm phiên bản. Điểm mấu chốt ở đây là bạn càng thêm nhiều bộ vi xử lý và luồng thì khả năng xử lý của API càng lớn.


Tiếp Cận Giải pháp API Hiệu Suất Cao


Nếu bạn đang gặp phải vấn đề về số lượng người dùng quá lớn làm giảm hiệu suất và gián đoạn khả năng xử lý giao dịch của Cơ sở dữ liệu Odoo, đã đến lúc bạn tìm đến một giải pháp mới. Đội ngũ của Port Cỉies, với hơn 170 chuyên gia Odoo có kinh nghiệm xử lý các tích hợp API hiệu suất cao sẵn sàng hỗ trợ bạn.

Liên hệ với chúng tôi tại đây.


6 tháng 9, 2022
TÁC GIẢ
Giải pháp Odoo API
Denis Guillot
Group Technical Director
Denis is a technical expert with over 20 years of experience with ERP implementations. His specializations are in IT infrastructure, API integrations and high-volume transactions. He is the Director of Technology and oversees the Research & Development function at Port Cities.
Chia sẻ bài Viết

Cập nhật các tips về Odoo!

Đăng ký bản tin của chúng tôi ngay hôm nay.