MuleSoft - Bộ xử lý tin nhắn và các thành phần tập lệnh
Các mô-đun script tạo điều kiện cho người dùng sử dụng ngôn ngữ script trong Mule. Nói một cách đơn giản, mô-đun script có thể trao đổi logic tùy chỉnh được viết bằng ngôn ngữ script. Tập lệnh có thể được sử dụng làm Bản triển khai hoặc máy biến áp. Chúng có thể được sử dụng để đánh giá biểu thức, tức là, để kiểm soát định tuyến thông báo.
Mule có các ngôn ngữ kịch bản được hỗ trợ sau:
- Groovy
- Python
- JavaScript
- Ruby
Làm thế nào để cài đặt mô-đun tập lệnh?
Trên thực tế, Anypoint Studio đi kèm với các mô-đun kịch bản. Nếu bạn không tìm thấy mô-đun trong Mule Palette, thì bạn có thể thêm mô-đun đó bằng cách sử dụng+Add Module. Sau khi thêm, chúng tôi có thể sử dụng các hoạt động của mô-đun kịch bản trong ứng dụng Mule của chúng tôi.
Ví dụ triển khai
Như đã thảo luận, chúng ta cần kéo và thả mô-đun vào canvas để tạo không gian làm việc và sử dụng nó trong ứng dụng của chúng tôi. Sau đây là một ví dụ về nó -
Chúng ta đã biết cách cấu hình thành phần HTTP Listener; do đó chúng ta sẽ thảo luận về việc cấu hình các mô-đun Scripting. Chúng tôi cần làm theo các bước được viết bên dưới để định cấu hình mô-đun kịch bản -
Step 1
Tìm kiếm mô-đun Scripting từ Mule Palette và kéo EXECUTE hoạt động của mô-đun tập lệnh vào luồng của bạn như được hiển thị ở trên.
Step 2
Bây giờ, mở tab Cấu hình thực thi bằng cách nhấp đúp vào cùng một.
Step 3
Phía dưới cái General , chúng tôi cần cung cấp mã trong Code text window như hình dưới đây -
Step 4
Cuối cùng, chúng ta cần chọn Enginetừ thành phần thực thi. Danh sách các động cơ như dưới đây:
- Groovy
- Nashorn(javaScript)
- jython(Python)
- jRuby(Ruby)
XML của ví dụ thực thi ở trên trong trình soạn thảo XML cấu hình như sau:
<scripting:execute engine="jython" doc:name = "Script">
<scripting:code>
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
result = factorial(10)
</scripting:code>
</scripting:execute>
Nguồn tin nhắn
Mule 4 có mô hình đơn giản hơn thông báo Mule 3, giúp dễ dàng làm việc với dữ liệu theo cách nhất quán trên các trình kết nối mà không ghi đè thông tin. Trong mô hình tin nhắn Mule 4, mỗi sự kiện Mule bao gồm hai điều:a message and variables associated with it.
Thông báo Mule có tải trọng và các thuộc tính của nó, trong đó thuộc tính chủ yếu là siêu dữ liệu chẳng hạn như kích thước tệp.
Và một biến chứa thông tin người dùng tùy ý như kết quả hoạt động, các giá trị phụ, v.v.
Đến
Các thuộc tính gửi đến trong Mule 3 giờ đây trở thành Thuộc tính trong Mule 4. Như chúng ta biết rằng các thuộc tính gửi đến lưu trữ thông tin bổ sung về tải trọng thu được thông qua nguồn thông báo, nhưng điều này giờ đây, trong Mule 4, được thực hiện với sự trợ giúp của các thuộc tính. Các thuộc tính có những ưu điểm sau:
Với sự trợ giúp của các thuộc tính, chúng ta có thể dễ dàng xem dữ liệu nào có sẵn, bởi vì các thuộc tính được đánh mạnh.
Chúng ta có thể dễ dàng truy cập thông tin có trong các thuộc tính.
Sau đây là ví dụ về một thông điệp điển hình trong Mule 4 -
Đi
Các thuộc tính gửi đi trong Mule 3 phải được chỉ định rõ ràng bởi các trình kết nối và vận chuyển của Mule để gửi dữ liệu bổ sung. Nhưng trong Mule 4, mỗi cái đó có thể được đặt riêng biệt, sử dụng biểu thức DataWeave cho mỗi cái. Nó không tạo ra bất kỳ tác dụng phụ nào trong dòng chảy chính.
Ví dụ: bên dưới biểu thức DataWeave sẽ thực hiện yêu cầu HTTP và tạo tiêu đề và tham số truy vấn mà không cần đặt thuộc tính thông báo. Điều này được hiển thị trong đoạn mã dưới đây -
<http:request path = "M_issue" config-ref="http" method = "GET">
<http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
<http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>
Bộ xử lý tin nhắn
Khi Mule nhận được tin nhắn từ một nguồn tin nhắn, công việc của bộ xử lý tin nhắn sẽ bắt đầu. Mule sử dụng một hoặc nhiều bộ xử lý thông báo để xử lý thông báo thông qua một luồng. Nhiệm vụ chính của bộ xử lý thông báo là biến đổi, lọc, làm giàu và xử lý thông điệp khi nó đi qua luồng Mule.
Phân loại bộ xử lý Mule
Sau đây là các danh mục của Bộ xử lý Mule, dựa trên các chức năng:
Connectors- Các bộ xử lý tin nhắn này gửi và nhận dữ liệu. Họ cũng cắm dữ liệu vào các nguồn dữ liệu bên ngoài thông qua các giao thức chuẩn hoặc API của bên thứ ba.
Components - Các bộ xử lý thông báo này có bản chất linh hoạt và thực hiện logic nghiệp vụ được triển khai bằng nhiều ngôn ngữ khác nhau như Java, JavaScript, Groovy, Python hoặc Ruby.
Filters - Chúng lọc các tin nhắn và chỉ cho phép các tin nhắn cụ thể tiếp tục được xử lý trong một luồng, dựa trên các tiêu chí cụ thể.
Routers - Bộ xử lý thông báo này được sử dụng để kiểm soát luồng thông báo để định tuyến, sắp xếp lại hoặc tách.
Scopes - về cơ bản, gói các đoạn mã cho mục đích xác định hành vi chi tiết trong một luồng.
Transformers - Vai trò của máy biến áp là chuyển đổi kiểu tải tin và định dạng dữ liệu để tạo điều kiện liên lạc giữa các hệ thống.
Business Events - Về cơ bản, chúng nắm bắt dữ liệu liên quan đến các chỉ số hiệu suất chính.
Exception strategies - Các bộ xử lý thông báo này xử lý các lỗi thuộc bất kỳ loại nào xảy ra trong quá trình xử lý thông báo.