MuleSoft - Hướng dẫn nhanh

ESB là viết tắt của Enterprise Service Busvề cơ bản là một công cụ phần mềm trung gian để tích hợp các ứng dụng khác nhau với nhau trên một cơ sở hạ tầng giống như bus. Về cơ bản, nó là một kiến ​​trúc được thiết kế để cung cấp một phương tiện di chuyển công việc thống nhất giữa các ứng dụng tích hợp. Bằng cách này, với sự trợ giúp của kiến ​​trúc ESB, chúng ta có thể kết nối các ứng dụng khác nhau thông qua một bus giao tiếp và cho phép chúng giao tiếp mà không phụ thuộc vào nhau.

Triển khai ESB

Trọng tâm chính của kiến ​​trúc ESB là tách các hệ thống khỏi nhau và cho phép chúng giao tiếp một cách ổn định và có thể kiểm soát được. Việc triển khai ESB có thể được thực hiện với sự trợ giúp của‘Bus’‘Adapter’ theo cách sau -

  • Khái niệm "bus", đạt được thông qua một máy chủ nhắn tin như JMS hoặc AMQP, được sử dụng để tách các ứng dụng khác nhau với nhau.

  • Khái niệm “bộ điều hợp”, chịu trách nhiệm giao tiếp với ứng dụng phụ trợ và chuyển đổi dữ liệu từ định dạng ứng dụng sang định dạng bus, được sử dụng giữa các ứng dụng và bus.

Dữ liệu hoặc thông điệp truyền từ ứng dụng này sang ứng dụng khác thông qua bus ở định dạng chuẩn, có nghĩa là sẽ có một định dạng thông báo nhất quán.

Bộ điều hợp cũng có thể thực hiện các hoạt động khác như bảo mật, giám sát, xử lý lỗi và quản lý định tuyến thông báo.

Nguyên tắc hướng dẫn của ESB

Chúng ta có thể gọi những nguyên tắc này là nguyên tắc tích hợp cốt lõi. Chúng như sau:

  • Orchestration - Tích hợp hai hoặc nhiều dịch vụ để đạt được sự đồng bộ giữa dữ liệu và quy trình.

  • Transformation - Chuyển đổi dữ liệu từ định dạng chuẩn sang định dạng ứng dụng cụ thể.

  • Transportation - Xử lý thương lượng giao thức giữa các định dạng như FTP, HTTP, JMS, v.v.

  • Mediation - Cung cấp nhiều giao diện để hỗ trợ nhiều phiên bản của một dịch vụ.

  • Non-functional consistency - Cung cấp cơ chế quản lý giao dịch và bảo mật.

Cần ESB

Kiến trúc ESB cho phép chúng tôi tích hợp các ứng dụng khác nhau mà mỗi ứng dụng có thể giao tiếp thông qua nó. Sau đây là một số hướng dẫn về thời điểm sử dụng ESB:

  • Integrating two or more applications - Sử dụng kiến ​​trúc ESB có lợi khi có nhu cầu tích hợp hai hoặc nhiều dịch vụ hoặc ứng dụng.

  • Integration of more applications in future - Giả sử nếu chúng ta muốn thêm nhiều dịch vụ hoặc ứng dụng hơn trong tương lai, thì nó có thể dễ dàng thực hiện với sự trợ giúp của kiến ​​trúc ESB.

  • Using multiple protocols - Trong trường hợp chúng ta cần sử dụng nhiều giao thức như HTTP, FTP, JMS, v.v. thì ESB là lựa chọn phù hợp.

  • Message routing - Chúng ta có thể sử dụng ESB trong trường hợp nếu chúng ta yêu cầu định tuyến tin nhắn dựa trên nội dung tin nhắn và các tham số tương tự khác.

  • Composition and consumption - ESB có thể được sử dụng nếu chúng tôi cần xuất bản các dịch vụ để sáng tác và tiêu thụ.

Tích hợp P2P so với tích hợp ESB

Với sự gia tăng số lượng ứng dụng, một câu hỏi lớn đặt ra trước mắt các nhà phát triển là làm thế nào để kết nối các ứng dụng khác nhau? Tình huống được xử lý bằng cách viết tay mã hóa kết nối giữa các ứng dụng khác nhau. Đây được gọi làpoint-to-point integration.

Rigiditylà nhược điểm rõ ràng nhất của tích hợp điểm-điểm. Độ phức tạp tăng lên khi số lượng kết nối và giao diện tăng lên. Những nhược điểm của tích hợp P-2-P dẫn chúng ta đến việc tích hợp ESB.

ESB là một cách tiếp cận linh hoạt hơn để tích hợp ứng dụng. Nó đóng gói và thể hiện từng chức năng của ứng dụng như một tập hợp các khả năng có thể tái sử dụng rời rạc. Không có ứng dụng nào tích hợp trực tiếp với ứng dụng khác, thay vào đó chúng tích hợp thông qua một ESB như hình dưới đây -

Để quản lý tích hợp, ESB có hai thành phần sau:

  • Service Registry- Mule ESB có Sổ đăng ký / Kho lưu trữ Dịch vụ nơi tất cả các dịch vụ được đưa vào ESB được xuất bản và đăng ký. Nó hoạt động như một điểm khám phá từ đó người ta có thể sử dụng các dịch vụ và khả năng của các ứng dụng khác.

  • Centralized Administration - Như tên của nó, nó cung cấp một cái nhìn về các luồng giao dịch về hiệu suất của các tương tác xảy ra bên trong ESB.

ESB Functionality- Chữ viết tắt VETRO thường được sử dụng để tóm tắt chức năng của ESB. Nó như sau -

  • V(Validate) - Như tên của nó, nó xác nhận việc xác thực lược đồ. Nó yêu cầu trình phân tích cú pháp xác thực và lược đồ cập nhật. Một ví dụ là tài liệu XML xác nhận một lược đồ cập nhật.

  • E(Phong phú) - Nó thêm dữ liệu bổ sung vào tin nhắn. Mục đích là làm cho thông điệp có ý nghĩa và hữu ích hơn đối với dịch vụ mục tiêu.

  • T(Transform) - Nó chuyển đổi cấu trúc dữ liệu sang định dạng chuẩn hoặc từ định dạng chuẩn. Ví dụ như chuyển đổi ngày / giờ, tiền tệ, v.v.

  • R(Định tuyến) - Nó sẽ định tuyến thông điệp và hoạt động như một người gác cổng của điểm cuối của một dịch vụ.

  • O(Vận hành) - Công việc chính của chức năng này là gọi dịch vụ mục tiêu hoặc tương tác với ứng dụng mục tiêu. Họ chạy ở phần phụ trợ.

Mẫu VETRO cung cấp tính linh hoạt tổng thể cho việc tích hợp và đảm bảo rằng chỉ dữ liệu nhất quán và đã được xác thực mới được định tuyến trong toàn bộ ESB.

Mule ESB là gì?

Mule ESB là một nền tảng tích hợp và bus dịch vụ doanh nghiệp dựa trên Java (ESB) nhẹ và có khả năng mở rộng cao do MuleSoft cung cấp. Mule ESB cho phép nhà phát triển kết nối các ứng dụng dễ dàng và nhanh chóng. Bất kể các công nghệ khác nhau được sử dụng bởi các ứng dụng, Mule ESB cho phép dễ dàng tích hợp các ứng dụng, cho phép chúng trao đổi dữ liệu. Mule ESB có hai phiên bản sau:

  • Ấn bản cộng đồng
  • Phiên bản doanh nghiệp

Một lợi thế của Mule ESB là chúng ta có thể dễ dàng nâng cấp từ cộng đồng Mule ESB lên Mule ESB doanh nghiệp vì cả hai phiên bản đều được xây dựng trên cơ sở mã chung.

Tính năng & Khả năng của Mule ESB

Các tính năng sau được sở hữu bởi Mule ESB:

  • Nó có thiết kế đồ họa kéo và thả đơn giản.
  • Mule ESB có khả năng lập bản đồ và chuyển đổi dữ liệu trực quan.
  • Người dùng có thể nhận được 100 thiết bị kết nối được chứng nhận được xây dựng sẵn.
  • Giám sát và điều hành tập trung.
  • Nó cung cấp khả năng thực thi bảo mật doanh nghiệp mạnh mẽ.
  • Nó cung cấp cơ sở quản lý API.
  • Có Cổng dữ liệu an toàn cho kết nối đám mây / tại chỗ.
  • Nó cung cấp sổ đăng ký dịch vụ nơi tất cả các dịch vụ được đưa vào ESB được xuất bản và đăng ký.
  • Người dùng có thể kiểm soát thông qua bảng điều khiển quản lý dựa trên web.
  • Gỡ lỗi nhanh chóng có thể được thực hiện bằng cách sử dụng bộ phân tích luồng dịch vụ.

Động lực đằng sau dự án Mule là -

  • để làm cho mọi thứ đơn giản hơn cho các lập trình viên,

  • nhu cầu của giải pháp nhẹ và mô-đun có thể mở rộng từ khung nhắn tin cấp ứng dụng sang khung phân phối cao cho toàn doanh nghiệp.

Mule ESB được thiết kế như một khung chương trình cũng như hướng sự kiện. Nó hướng đến sự kiện vì nó được kết hợp với sự đại diện thống nhất của các thông điệp và có thể mở rộng bằng các mô-đun có thể cắm được. Nó có tính lập trình vì các lập trình viên có thể dễ dàng cấy ghép một số hành vi bổ sung như xử lý thông báo cụ thể hoặc chuyển đổi dữ liệu tùy chỉnh.

Lịch sử

Quan điểm lịch sử của dự án Mule như sau:

Dự án SourceForge

Dự án Mule được bắt đầu với tên gọi là dự án SourceForge vào tháng 4 năm 2003, và sau 2 năm, phiên bản đầu tiên của nó đã được phát hành và chuyển sang CodeHaus. API đối tượng thông báo chung (UMO) là cốt lõi của kiến ​​trúc. Ý tưởng đằng sau UMO API là hợp nhất logic trong khi giữ chúng cách ly với các phương thức vận chuyển cơ bản.

Phiên bản 1.0

Nó được phát hành vào tháng 4 năm 2005 chứa nhiều phương tiện giao thông. Trọng tâm chính của nhiều phiên bản khác sau đó là gỡ lỗi và thêm các tính năng mới.

Phiên bản 2.0 (Thông qua mùa xuân 2)

Spring 2 làm khung cấu hình và đấu dây đã được thông qua trong Mule 2 nhưng nó đã được chứng minh là một quá trình lớn vì thiếu tính biểu đạt của cấu hình XML yêu cầu. Sự cố này đã được giải quyết khi cấu hình dựa trên Lược đồ XML đã được giới thiệu trong Spring 2.

Xây dựng với Maven

Cải tiến lớn nhất giúp đơn giản hóa việc sử dụng Mule, cả ở thời điểm phát triển và triển khai, là việc sử dụng Maven. Từ phiên bản 1.3, nó bắt đầu được xây dựng với Maven.

MuleSource

Năm 2006, MuleSource được thành lập “để giúp hỗ trợ và cho phép cộng đồng đang phát triển nhanh chóng sử dụng Mule trong các ứng dụng doanh nghiệp quan trọng”. Nó được chứng minh là cột mốc quan trọng của Mule Project.

Đối thủ của Mule ESB

Sau đây là một số đối thủ cạnh tranh chính của Mule ESB -

  • WSO2 ESB
  • Xe buýt dịch vụ Oracle
  • WebSphere Message Broker
  • Nền tảng Aurea CX
  • Fiorano ESB
  • WebSphere DataPower Gateway
  • Khung quy trình kinh doanh ngày làm việc
  • Xe buýt dịch vụ doanh nghiệp Talend
  • Xe buýt dịch vụ doanh nghiệp JBoss
  • Quản lý dịch vụ iWay

Khái niệm cốt lõi của Mule

Như đã thảo luận, Mule ESB là một nền tảng tích hợp và bus dịch vụ doanh nghiệp dựa trên Java (ESB) nhẹ và có khả năng mở rộng cao. Bất kể các công nghệ khác nhau được sử dụng bởi các ứng dụng, Mule ESB cho phép dễ dàng tích hợp các ứng dụng, cho phép chúng trao đổi dữ liệu. Trong phần này, chúng ta sẽ thảo luận về khái niệm cốt lõi của Mule sẽ hoạt động để làm cho sự tích hợp như vậy xảy ra.

Đối với điều này, chúng ta cần phải hiểu kiến ​​trúc cũng như các khối xây dựng của nó.

Ngành kiến ​​trúc

Kiến trúc của Mule ESB có ba lớp cụ thể là lớp Giao thông vận tải, lớp Tích hợp và lớp Ứng dụng như thể hiện trong sơ đồ sau:

Nói chung, có ba loại tác vụ sau có thể được thực hiện để cấu hình và tùy chỉnh triển khai Mule -

Phát triển thành phần dịch vụ

Nhiệm vụ này liên quan đến việc phát triển hoặc sử dụng lại các POJO hiện có, hoặc Spring Beans. POJOs là một lớp với các thuộc tính tạo ra các phương thức get và set, các trình kết nối đám mây. Mặt khác, Spring Beans chứa đựng logic kinh doanh để làm phong phú thêm thông điệp.

Điều phối dịch vụ

Tác vụ này về cơ bản cung cấp dàn xếp dịch vụ liên quan đến việc cấu hình bộ xử lý tin nhắn, bộ định tuyến, máy biến áp và bộ lọc.

Hội nhập

Nhiệm vụ quan trọng nhất của Mule ESB là tích hợp các ứng dụng khác nhau bất kể giao thức mà chúng đang sử dụng. Với mục đích này, Mule cung cấp các phương thức truyền tải cho phép nhận và gửi thông điệp trên các đầu nối giao thức khác nhau. Mule hỗ trợ nhiều phương thức vận chuyển hiện có hoặc chúng tôi cũng có thể sử dụng phương thức vận chuyển tùy chỉnh.

Khu nhà

Cấu hình mule có các khối xây dựng sau:

Đậu xuân

Công dụng chính của Spring bean là xây dựng thành phần dịch vụ. Sau khi xây dựng thành phần dịch vụ mùa xuân, chúng tôi có thể xác định nó thông qua tệp cấu hình hoặc theo cách thủ công, trong trường hợp bạn không có tệp cấu hình.

Đại lý

Về cơ bản, nó là một dịch vụ được tạo trong Anypoint Studio trước Mule Studio. Tác nhân được tạo khi bạn khởi động máy chủ và sẽ bị phá hủy khi bạn dừng máy chủ.

Kết nối

Nó là một thành phần phần mềm được cấu hình với các tham số cụ thể cho các giao thức. Nó chủ yếu được sử dụng để kiểm soát việc sử dụng một giao thức. Ví dụ: một trình kết nối JMS được định cấu hình vớiConnection và trình kết nối này sẽ được chia sẻ giữa các thực thể khác nhau phụ trách giao tiếp thực tế.

Cấu hình Toàn cầu

Như tên của nó, khối xây dựng này được sử dụng để thiết lập các thuộc tính và cài đặt chung.

Điểm cuối toàn cầu

Nó có thể được sử dụng trong tab Global Elements, có thể được sử dụng nhiều lần trong một luồng -

Bộ xử lý tin nhắn toàn cầu

Như tên của nó, nó quan sát hoặc sửa đổi một thông điệp hoặc luồng thông báo. Máy biến áp và bộ lọc là những ví dụ của Bộ xử lý thông báo toàn cầu.

Transformers- Công việc chính của máy biến áp là chuyển đổi dữ liệu từ định dạng này sang định dạng khác. Nó có thể được định nghĩa trên toàn cầu và có thể được sử dụng trong nhiều luồng.

Filters- Bộ lọc sẽ quyết định tin nhắn Mule nào nên được xử lý. Bộ lọc về cơ bản chỉ định các điều kiện phải được đáp ứng để một thông báo được xử lý và chuyển đến một dịch vụ.

Mô hình

Ngược lại với Đại lý, đó là một nhóm hợp lý các dịch vụ được tạo trong studio. Chúng tôi có quyền bắt đầu và dừng tất cả các dịch vụ bên trong một mô hình cụ thể.

Services- Dịch vụ là thứ bao bọc logic kinh doanh hoặc các thành phần của chúng tôi. Nó cũng cấu hình Bộ định tuyến, Điểm cuối, máy biến áp và bộ lọc dành riêng cho dịch vụ đó.

Endpoints- Nó có thể được định nghĩa là một đối tượng mà các dịch vụ sẽ gửi đến (nhận) và gửi đi (gửi) thông điệp. Các dịch vụ được kết nối thông qua các điểm cuối.

lưu lượng

Bộ xử lý thông báo sử dụng các luồng để xác định luồng thông báo giữa nguồn và đích.

Cấu trúc tin nhắn Mule

Một tin nhắn Mule, được bao bọc hoàn toàn trong Đối tượng Tin nhắn Mule, là dữ liệu truyền qua các ứng dụng thông qua các luồng Mule. Thông điệp của cấu trúc Mule được hiển thị trong sơ đồ sau:

Như đã thấy trong sơ đồ trên, Mule Message bao gồm hai phần chính:

Tiêu đề

Nó không là gì ngoài siêu dữ liệu của thông báo được đại diện thêm bởi hai thuộc tính sau:

Inbound Properties- Đây là những thuộc tính được thiết lập tự động bởi nguồn thông báo. Người dùng không thể thao tác hoặc thiết lập chúng. Về bản chất, thuộc tính hướng nội là bất biến.

Outbound Properties- Đây là những thuộc tính chứa siêu dữ liệu giống như thuộc tính gửi đến và có thể đặt trong quá trình lưu chuyển. Chúng có thể được đặt tự động bởi Mule hoặc do người dùng thủ công. Trong tự nhiên, các thuộc tính hướng ngoại là có thể thay đổi.

Thuộc tính gửi đi trở thành thuộc tính gửi đến khi thông điệp đi từ điểm cuối gửi đi của một luồng đến điểm cuối đến của một luồng khác thông qua một phương tiện truyền tải.

Thuộc tính gửi đi vẫn là thuộc tính gửi đi khi thông báo được chuyển đến luồng mới thông qua luồng-ref thay vì trình kết nối.

Khối hàng

Thông điệp nghiệp vụ thực tế được mang bởi đối tượng thông báo được gọi là tải trọng.

Biến

Nó có thể được định nghĩa là siêu dữ liệu do người dùng xác định về một tin nhắn. Về cơ bản, các biến là những phần thông tin tạm thời về một thông báo được sử dụng bởi ứng dụng đang xử lý nó. Nó không có nghĩa là được chuyển cùng với các thông điệp đến đích của nó. Chúng có ba loại như được đưa ra dưới đây -

Flow variables - Các biến này chỉ áp dụng cho luồng mà chúng tồn tại.

Session variables - Các biến này áp dụng trên tất cả các luồng trong cùng một ứng dụng.

Record variables - Các biến này chỉ áp dụng cho các bản ghi được xử lý như một phần của lô.

Tệp đính kèm và tải trọng bổ sung

Đây là một số siêu dữ liệu bổ sung về tải trọng tin nhắn không nhất thiết phải xuất hiện mọi lúc trong đối tượng tin nhắn.

Trong các chương trước, chúng ta đã tìm hiểu những kiến ​​thức cơ bản về Mule ESB. Trong chương này, chúng ta hãy tìm hiểu cách cài đặt và cấu hình nó.

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

Chúng tôi cần đáp ứng các điều kiện tiên quyết sau trước khi cài đặt Mule trên máy tính của mình -

Bộ phát triển Java (JDK)

Trước khi cài đặt MULE, hãy xác minh rằng bạn đã hỗ trợ phiên bản Java trên hệ thống của mình. JDK 1.8.0 được khuyến nghị để cài đặt thành công Mule trên hệ thống của bạn.

Hệ điều hành

Các hệ điều hành sau được hỗ trợ bởi Mule -

  • MacOS 10.11.x
  • HP-UX 11iV3
  • AIX 7.2
  • Máy chủ Windows 2016
  • Máy chủ Windows 2012 R2
  • Windows 10
  • Windows 8.1
  • Solaris 11,3
  • RHEL 7
  • Máy chủ Ubuntu 18.04
  • Nhân Linux 3.13+

Cơ sở dữ liệu

Máy chủ ứng dụng hoặc cơ sở dữ liệu không bắt buộc vì Mule Runtime chạy như một máy chủ độc lập. Nhưng nếu chúng ta cần truy cập kho dữ liệu hoặc muốn sử dụng máy chủ ứng dụng, có thể sử dụng các máy chủ hoặc cơ sở dữ liệu ứng dụng được hỗ trợ sau:

  • Oracle 11g
  • Oracle 12c
  • MySQL 5.5+
  • IBM DB2 10
  • PostgreSQL 9
  • Derby 10
  • Microsoft SQL Server 2014

yêu cầu hệ thống

Trước khi cài đặt Mule trên hệ thống của bạn, nó phải đáp ứng các yêu cầu hệ thống sau:

  • CPU ít nhất 2 GHz hoặc 1 CPU ảo trong môi trường ảo hóa
  • RAM tối thiểu 1 GB
  • Bộ nhớ tối thiểu 4 GB

Tải xuống Mule

Để tải xuống tệp nhị phân Mule 4, hãy nhấp vào liên kết https://www.mulesoft.com/lp/dl/mule-esb-enterprise và nó sẽ dẫn bạn đến trang web chính thức của MuleSoft như sau:

Bằng cách cung cấp các chi tiết cần thiết, bạn có thể nhận được tệp nhị phân Mule 4 ở định dạng Zip.

Cài đặt và chạy Mule

Bây giờ sau khi tải xuống tệp nhị phân Mule 4, hãy giải nén nó và đặt một biến môi trường có tên MULE_HOME cho thư mục Mule bên trong thư mục được giải nén.

Ví dụ: biến môi trường, trên môi trường Windows và Linux / Unix, có thể được đặt cho phiên bản 4.1.5 trong thư mục Tải xuống như sau:

Môi trường Windows

$ env:MULE_HOME=C:\Downloads\mule-enterprise-standalone-4.1.5\

Môi trường Unix / Linux

$ export MULE_HOME=~/Downloads/mule-enterprise-standalone-4.1.5/

Bây giờ, để kiểm tra xem Mule có đang chạy trong hệ thống của bạn mà không gặp bất kỳ lỗi nào hay không, hãy sử dụng các lệnh sau:

Môi trường Windows

$ $MULE_HOME\bin\mule.bat

Môi trường Unix / Linux

$ $MULE_HOME/bin/mule

Các lệnh trên sẽ chạy Mule ở chế độ nền trước. Nếu Mule đang chạy, chúng tôi không thể đưa ra bất kỳ lệnh nào khác trên thiết bị đầu cuối. Épctrl-c lệnh trong thiết bị đầu cuối, sẽ dừng Mule.

Bắt đầu dịch vụ Mule

Chúng ta có thể khởi động Mule dưới dạng Dịch vụ Windows và cả Daemon Linux / Unix.

Mule as a Windows Service

Để chạy Mule dưới dạng dịch vụ Windows, chúng ta cần làm theo các bước sau:

Step 1 - Đầu tiên, cài đặt nó với sự trợ giúp của lệnh sau:

$ $MULE_HOME\bin\mule.bat install

Step 2 - Sau khi cài đặt, chúng ta có thể chạy mule như một dịch vụ Windows với sự trợ giúp của lệnh sau:

$ $MULE_HOME\bin\mule.bat start

Mule dưới dạng Daemon Linux / Unix

Để chạy Mule dưới dạng Daemon Linux / Unix, chúng ta cần làm theo các bước sau:

Step 1 - Cài đặt nó với sự trợ giúp của lệnh sau -

$ $MULE_HOME/bin/mule install

Step 2 - Sau khi cài đặt, chúng ta có thể chạy mule như một dịch vụ Windows với sự trợ giúp của lệnh sau:

$ $MULE_HOME/bin/mule start

Example

Ví dụ sau đây bắt đầu Mule dưới dạng Unix Daemon:

$ $MULE_HOME/bin/mule start
MULE_HOME is set to ~/Downloads/mule-enterprise-standalone-4.1.5
MULE_BASE is set to ~/Downloads/mule-enterprise-standalone-4.1.5
Starting Mule Enterprise Edition...
Waiting for Mule Enterprise Edition.................
running: PID:87329

Triển khai ứng dụng Mule

Chúng tôi có thể triển khai các ứng dụng Mule của mình với sự trợ giúp của các bước sau:

Step 1 - Đầu tiên, khởi động Mule.

Step 2 - Khi Mule khởi động, chúng tôi có thể triển khai các ứng dụng Mule của mình bằng cách di chuyển các tệp gói JAR của chúng tôi sang apps thư mục trong $MULE_HOME.

Dừng dịch vụ Mule

Chúng ta có thể sử dụng stoplệnh dừng Mule. Ví dụ, ví dụ sau bắt đầu Mule dưới dạng Unix Daemon:

$ $MULE_HOME/bin/mule stop
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Stopping Mule Enterprise Edition...
Stopped Mule Enterprise Edition.

Chúng tôi cũng có thể sử dụng removelệnh xóa Mule Service hoặc Daemon khỏi hệ thống của chúng tôi. Ví dụ sau loại bỏ Mule dưới dạng Unix Daemon:

$ $MULE_HOME/bin/mule remove
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Detected Mac OSX:
Mule Enterprise Edition is not running.
Removing Mule Enterprise Edition daemon...

Anypoint Studio của MuleSoft thân thiện với người dùng IDE (integration development environment)được sử dụng để thiết kế và thử nghiệm các ứng dụng Mule. Nó là một IDE dựa trên Eclipse. Chúng ta có thể dễ dàng kéo Connector từ Mule Palette. Nói cách khác, Anypoint Studio là một IDE dựa trên Eclipse để phát triển luồng, v.v.

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

Chúng tôi cần đáp ứng các điều kiện tiên quyết sau trước khi cài đặt Mule trên tất cả các hệ điều hành, tức là Windows, Mac và Linux / Unix.

Java Development Kit (JDK)- Trước khi cài đặt Mule, hãy xác minh rằng bạn đã hỗ trợ phiên bản Java trên hệ thống của mình. JDK 1.8.0 được khuyến nghị để cài đặt thành công Anypoint trên hệ thống của bạn.

Tải xuống và cài đặt Anypoint Studio

Quy trình tải xuống và cài đặt Anypoint Studio trên các hệ điều hành khác nhau có thể khác nhau. Tiếp theo, có các bước cần thực hiện để tải xuống và cài đặt Anypoint Studio trên các hệ điều hành khác nhau -

Trên Windows

Để tải xuống và cài đặt Anypoint Studio trên Windows, chúng ta cần làm theo các bước sau:

Step 1 - Đầu tiên, nhấp vào liên kết https://www.mulesoft.com/lp/dl/studio và chọn hệ điều hành Windows từ danh sách từ trên xuống để tải xuống studio.

Step 2 - Bây giờ, giải nén nó vào ‘C:\’ thư mục gốc.

Step 3 - Mở Anypoint Studio đã giải nén.

Step 4- Để chấp nhận không gian làm việc mặc định, hãy nhấp vào OK. Bạn sẽ nhận được một thông báo chào mừng khi nó tải lần đầu tiên.

Step 5 - Bây giờ, nhấp vào nút Get Started để sử dụng Anypoint Studio.

Trên OS X

Để tải xuống và cài đặt Anypoint Studio trên OS X, chúng ta cần làm theo các bước sau:

Step 1 - Đầu tiên, nhấp vào liên kết https://www.mulesoft.com/lp/dl/studio và tải xuống studio.

Step 2- Bây giờ, giải nén nó. Trong trường hợp nếu bạn đang sử dụng phiên bản hệ điều hành Sierra, hãy đảm bảo chuyển ứng dụng đã giải nén sang/Applications folder trước khi khởi chạy nó.

Step 3 - Mở Anypoint Studio đã giải nén.

Step 4- Để chấp nhận không gian làm việc mặc định, hãy nhấp vào OK. Bạn sẽ nhận được một thông báo chào mừng khi nó tải lần đầu tiên.

Step 5 - Bây giờ, hãy nhấp vào Get Started để sử dụng Anypoint Studio.

Nếu bạn định sử dụng đường dẫn tùy chỉnh đến không gian làm việc của mình, xin lưu ý rằng Anypoint Studio không mở rộng dấu ngã ~ được sử dụng trong hệ thống Linux / Unix. Do đó, bạn nên sử dụng đường dẫn tuyệt đối trong khi xác định không gian làm việc.

Trên Linux

Để tải xuống và cài đặt Anypoint Studio trên Linux, chúng ta cần làm theo các bước sau:

Step 1 - Đầu tiên, nhấp vào liên kết https://www.mulesoft.com/lp/dl/studio và chọn hệ điều hành Linux từ danh sách từ trên xuống để tải xuống studio.

Step 2 - Bây giờ, giải nén nó.

Step 3 - Tiếp theo, mở Anypoint Studio đã giải nén.

Step 4- Để chấp nhận không gian làm việc mặc định, hãy nhấp vào OK. Bạn sẽ nhận được một thông báo chào mừng khi nó tải lần đầu tiên.

Step 5 - Bây giờ, nhấp vào nút Get Started để sử dụng Anypoint Studio.

Nếu bạn định sử dụng đường dẫn tùy chỉnh đến không gian làm việc của mình, xin lưu ý rằng Anypoint Studio không mở rộng dấu ngã ~ được sử dụng trong hệ thống Linux / Unix. Do đó, bạn nên sử dụng đường dẫn tuyệt đối trong khi xác định không gian làm việc.

Bạn cũng nên cài đặt GTK phiên bản 2 để sử dụng Chủ đề Studio hoàn chỉnh trong Linux.

Các tính năng của Anypoint Studio

Sau đây là một số tính năng của Anypoint studio nhằm nâng cao năng suất trong khi xây dựng các ứng dụng Mule -

  • Nó cung cấp một ứng dụng Mule chạy tức thì bên trong thời gian chạy cục bộ.

  • Anypoint studio cung cấp cho chúng tôi trình chỉnh sửa trực quan để định cấu hình tệp định nghĩa API và miền Mule.

  • Nó có khung thử nghiệm đơn vị nhúng nâng cao năng suất.

  • Anypoint studio cung cấp cho chúng tôi Hỗ trợ tích hợp để triển khai lên CloudHub.

  • Nó có cơ sở để tích hợp với Exchange để nhập các mẫu, ví dụ, định nghĩa và các tài nguyên khác từ tổ chức Nền tảng Anypoint khác.

Trình chỉnh sửa Anypoint Studio giúp chúng tôi thiết kế các ứng dụng, API, thuộc tính và tệp cấu hình của chúng tôi. Cùng với việc thiết kế, nó cũng giúp chúng tôi chỉnh sửa chúng. Chúng tôi có trình chỉnh sửa tệp cấu hình Mule cho mục đích này. Để mở trình chỉnh sửa này, hãy bấm đúp vào tệp XML của ứng dụng trong/src/main/mule.

Để làm việc với ứng dụng của chúng tôi, chúng tôi có ba tab sau trong trình chỉnh sửa tệp Cấu hình Mule.

Tab Luồng thông báo

Tab này trình bày trực quan quy trình công việc. Về cơ bản, nó chứa một canvas giúp chúng ta kiểm tra các luồng của mình một cách trực quan. Nếu bạn muốn thêm Bộ xử lý sự kiện từ Mule Palette vào canvas, thì chỉ cần kéo và thả và nó sẽ phản ánh trong canvas.

Bằng cách nhấp vào Bộ xử lý sự kiện, bạn có thể có Chế độ xem Thuộc tính Mule với các thuộc tính cho bộ xử lý đã chọn. Chúng tôi cũng có thể chỉnh sửa chúng.

Tab Yếu tố toàn cục

Tab này chứa các phần tử cấu hình Mule chung cho các mô-đun. Trong tab này, chúng ta có thể tạo, chỉnh sửa hoặc xóa các tệp cấu hình.

Tab Cấu hình XML

Như tên của nó, nó chứa XML định nghĩa ứng dụng Mule của bạn. Tất cả những thay đổi bạn thực hiện ở đây sẽ phản ánh trong canvas cũng như chế độ xem thuộc tính của bộ xử lý sự kiện trong tab Dòng thông báo.

Lượt xem

Đối với trình chỉnh sửa đang hoạt động, Anypoint studio cung cấp cho chúng tôi biểu diễn đồ họa về siêu dữ liệu dự án của chúng tôi, các thuộc tính với sự trợ giúp của các chế độ xem. Người dùng có thể di chuyển, đóng cũng như thêm các chế độ xem trong dự án Mule. Sau đây là một số chế độ xem mặc định trong Anypoint studio:

Trình khám phá gói

Nhiệm vụ chính của dạng xem Package Explorer là hiển thị các thư mục và tệp dự án có trong một dự án Mule. Chúng tôi có thể mở rộng hoặc thu nhỏ thư mục dự án Mule bằng cách nhấp vào mũi tên bên cạnh nó. Một thư mục hoặc tệp có thể được mở bằng cách nhấp đúp vào nó. Hãy xem ảnh chụp màn hình của nó -

Bảng màu mule

Dạng xem Mule Palette hiển thị các bộ xử lý sự kiện như phạm vi, bộ lọc và bộ định tuyến điều khiển luồng cùng với các mô-đun và các hoạt động liên quan của chúng. Các tác vụ chính của khung nhìn Mule Palette như sau:

  • Chế độ xem này giúp chúng tôi quản lý các mô-đun và trình kết nối trong dự án của mình.
  • Chúng tôi cũng có thể thêm các yếu tố mới từ Exchange.

Hãy xem ảnh chụp màn hình của nó -

Thuộc tính mule

Như tên của nó, nó cho phép chúng tôi chỉnh sửa các thuộc tính của mô-đun hiện được chọn trong canvas của chúng tôi. Chế độ xem Thuộc tính Mule bao gồm những điều sau:

  • DataSense Explorer cung cấp thông tin thời gian thực về cấu trúc dữ liệu của tải trọng của chúng tôi.

  • Thuộc tính đến và đi, nếu có hoặc các biến.

Dưới đây là ảnh chụp màn hình -

Bảng điều khiển

Bất cứ khi nào chúng tôi tạo hoặc chạy ứng dụng Mule, máy chủ Mule nhúng sẽ hiển thị danh sách các sự kiện và sự cố, nếu có, được Studio báo cáo. Chế độ xem bảng điều khiển chứa bảng điều khiển của máy chủ Mule được nhúng đó. Hãy xem ảnh chụp màn hình của nó -

Xem vấn đề

Chúng tôi có thể gặp nhiều vấn đề khi làm việc trong Dự án Mule của mình. Tất cả các vấn đề đó được hiển thị trong dạng xem Vấn đề. Dưới đây là ảnh chụp màn hình

Quan điểm

Trong Anypoint Studio, nó là một tập hợp các chế độ xem và trình chỉnh sửa theo một cách sắp xếp cụ thể. Có hai loại phối cảnh trong Anypoint Studio -

Mule Design Perspective - Đó là phối cảnh mặc định mà chúng tôi nhận được trong Studio.

Mule Debug Perspective - Một phối cảnh khác được cung cấp bởi Anypoint Studio là Phối cảnh gỡ lỗi Mule.

Mặt khác, chúng ta cũng có thể tạo phối cảnh của riêng mình và có thể thêm hoặc bớt bất kỳ chế độ xem mặc định nào.

Trong chương này, chúng ta sẽ tạo ứng dụng Mule đầu tiên trong Anypoint Studio của MuleSoft. Để tạo nó, trước tiên chúng ta cần khởi chạy Anypoint Studio.

Khởi chạy Anypoint Studio

Nhấp vào Anypoint Studio để khởi chạy nó. Nếu bạn khởi chạy nó lần đầu tiên, thì bạn sẽ thấy cửa sổ sau:

Giao diện người dùng của Anypoint Studio

Khi bạn nhấp vào nút Go to Workspace, nó sẽ dẫn bạn đến giao diện người dùng của Anypoint Studio như sau:

Các bước để tạo ứng dụng Mule

Để tạo ứng dụng Mule của bạn, hãy làm theo các bước sau:

Tạo dự án mới

Bước đầu tiên để tạo ứng dụng Mule là tạo một dự án mới. Nó có thể được thực hiện bằng cách làm theo đường dẫnFILE → NEW → Mule Project như hình dưới đây -

Đặt tên cho dự án

Sau khi nhấp vào Dự án Mule mới, như được mô tả ở trên, nó sẽ mở ra một cửa sổ mới yêu cầu tên dự án và các thông số kỹ thuật khác. Cho biết tên của Dự án, 'TestAPP1'và sau đó nhấp vào nút kết thúc.

Khi bạn nhấp vào nút Kết thúc, nó sẽ mở ra không gian làm việc được xây dựng cho MuleProject của bạn, cụ thể là ‘TestAPP1’. Bạn có thể thấy tất cảEditorsViews được mô tả trong chương trước.

Định cấu hình trình kết nối

Ở đây, chúng ta sẽ xây dựng một ứng dụng Mule đơn giản cho HTTP Listener. Đối với điều này, chúng ta cần kéo trình kết nối HTTP Listener từ Mule Palette và thả nó vào vùng làm việc như hình dưới đây -

Bây giờ, chúng ta cần phải cấu hình nó. Nhấp vào dấu + màu xanh sau Cấu hình trình kết nối trong Cài đặt cơ bản như hình trên.

Khi nhấp vào ok, nó sẽ đưa bạn trở lại trang thuộc tính HTTP Listener. Bây giờ chúng ta cần cung cấp đường dẫn trong Tab Chung. Trong ví dụ cụ thể này, chúng tôi đã cung cấp/FirstAPP như tên đường dẫn.

Định cấu hình Bộ kết nối tải trọng

Bây giờ, chúng ta cần sử dụng bộ kết nối Set Payload. Chúng tôi cũng cần cung cấp giá trị của nó trong tab Cài đặt như sau:

This is my first Mule Application, là tên được cung cấp trong ví dụ này.

Ứng dụng Running Mule

Bây giờ, lưu nó và nhấp vào Run as Mule Application như hình dưới đây -

Chúng tôi có thể kiểm tra nó trong Bảng điều khiển triển khai ứng dụng như sau:

Nó cho thấy rằng bạn đã xây dựng thành công Ứng dụng Mule đầu tiên của mình.

Xác minh ứng dụng Mule

Bây giờ, chúng ta cần kiểm tra xem ứng dụng của mình có đang chạy hay không. Go to POSTMAN, một ứng dụng Chrome và nhập Url: http:/localhost:8081. Nó hiển thị thông báo mà chúng tôi đã cung cấp trong khi xây dựng ứng dụng Mule như hình dưới đây -

DataWeave về cơ bản là một ngôn ngữ biểu thức MuleSoft. Nó chủ yếu được sử dụng để truy cập và chuyển đổi dữ liệu nhận được thông qua ứng dụng Mule. Thời gian chạy Mule chịu trách nhiệm chạy tập lệnh và biểu thức trong ứng dụng Mule của chúng tôi, DataWeave được tích hợp mạnh mẽ với thời gian chạy Mule.

Các tính năng của ngôn ngữ DataWeave

Sau đây là một số tính năng quan trọng của ngôn ngữ DataWeave:

Dữ liệu có thể được chuyển đổi từ định dạng này sang định dạng khác rất dễ dàng. Ví dụ, chúng ta có thể chuyển đổi application / json thành application / xml. Tải trọng đầu vào như sau:

{
   "title": "MuleSoft",
   "author": " tutorialspoint.com ",
   "year": 2019
}

Sau đây là mã trong DataWeave để chuyển đổi:

%dw 2.0
output application/xml
---
{
   order: {
      'type': 'Tutorial', 
      'title': payload.title, 
      'author': upper(payload.author), 
      'year': payload.year
   }
}

Tiếp theo, output trọng tải như sau -

<?xml version = '1.0' encoding = 'UTF-8'?>
<order>
   <type>Tutorial</type>
   <title>MuleSoft</title>
   <author>tutorialspoint.com</author>
   <year>2019</year>
</order>

Thành phần biến đổi có thể được sử dụng để tạo các tập lệnh thực hiện cả các phép biến đổi dữ liệu đơn giản cũng như phức tạp.

Chúng ta có thể truy cập và sử dụng các hàm DataWeave cốt lõi trên các phần của sự kiện Mule mà chúng ta cần vì hầu hết các bộ xử lý tin nhắn Mule đều hỗ trợ các biểu thức DataWeave.

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

Chúng tôi cần đáp ứng các điều kiện tiên quyết sau trước khi sử dụng tập lệnh DataWeave trên máy tính của mình -

  • Anypoint Studio 7 được yêu cầu sử dụng tập lệnh Dataweave.

  • Sau khi cài đặt Anypoint Studio, chúng ta cần thiết lập một dự án với thành phần Transform Message để sử dụng các tập lệnh DataWeave.

Các bước sử dụng DataWeave Script với ví dụ

Để sử dụng DataWeave scrip, chúng ta cần làm theo các bước sau:

Step 1

Đầu tiên, chúng ta cần thiết lập một dự án mới, như chúng ta đã làm trong chương trước, bằng cách sử dụng File → New → Mule Project.

Step 2

Tiếp theo, chúng ta cần cung cấp tên của dự án. Đối với ví dụ này, chúng tôi đang đặt tên,Mule_test_script.

Step 3

Bây giờ, chúng ta cần kéo Transform Message component từ Mule Palette tab thành canvas. Nó được hiển thị như dưới đây -

Step 4

Tiếp theo, trong Transform Message component, nhấp vào Xem trước để mở ngăn Xem trước. Chúng ta có thể mở rộng vùng mã nguồn bằng cách nhấp vào hình chữ nhật trống bên cạnh Xem trước.

Step 5

Bây giờ, chúng ta có thể bắt đầu viết kịch bản với ngôn ngữ DataWeave.

Thí dụ

Sau đây là ví dụ đơn giản về việc nối hai chuỗi thành một:

Tập lệnh DataWeave ở trên có một cặp khóa-giá trị ({ myString: ("hello" ++ "World") }) mà sẽ nối hai chuỗi thành một.

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.

Một trong những khả năng quan trọng nhất của Mule là nó có thể thực hiện định tuyến, biến đổi và xử lý với các thành phần, do đó tệp cấu hình của ứng dụng Mule kết hợp các phần tử khác nhau có kích thước rất lớn.

Sau đây là các loại mẫu cấu hình do Mule cung cấp:

  • Mẫu dịch vụ đơn giản
  • Bridge
  • Validator
  • Http Proxy
  • Proxy WS

Cấu hình thành phần

Trong Anypoint studio, chúng ta có thể làm theo các bước dưới đây để định cấu hình một thành phần -

Step 1

Chúng ta cần kéo thành phần mà chúng ta muốn sử dụng trong ứng dụng Mule của mình. Ví dụ, ở đây chúng tôi sử dụng thành phần trình nghe HTTP như sau:

Step 2

Tiếp theo, nhấp đúp vào thành phần để nhận cửa sổ cấu hình. Đối với trình nghe HTTP, nó được hiển thị bên dưới:

Step 3

Chúng tôi có thể cấu hình thành phần theo yêu cầu của dự án của chúng tôi. Ví dụ, chúng tôi đã làm cho thành phần trình nghe HTTP -

Các thành phần cốt lõi là một trong những khối xây dựng quan trọng của quy trình công việc trong ứng dụng Mule. Logic để xử lý một sự kiện Mule được cung cấp bởi các thành phần cốt lõi này. Trong Anypoint studio, để truy cập các thành phần cốt lõi này, bạn có thể nhấp vào Core từ Mule Palette như hình dưới đây:

Sau đây là nhiều core components and their working in Mule 4 -

Sự kiện kinh doanh tùy chỉnh

Thành phần cốt lõi này được sử dụng để thu thập thông tin về các luồng cũng như bộ xử lý tin nhắn xử lý các giao dịch kinh doanh trong ứng dụng Mule. Nói cách khác, chúng tôi có thể sử dụng thành phần Sự kiện kinh doanh tùy chỉnh để thêm phần sau vào quy trình làm việc của mình -

  • Metadata
  • Các chỉ số hiệu suất chính (KPI)

Làm cách nào để thêm KPI?

Sau đây là các bước để thêm KPI vào quy trình của chúng tôi trong ứng dụng Mule -

Step 1 - Theo Mule Palette → Core → Components → Custom Business Event, để thêm thành phần Sự kiện kinh doanh tùy chỉnh vào quy trình làm việc trong ứng dụng Mule của bạn.

Step 2 - Bấm vào thành phần để mở nó.

Step 3 - Bây giờ, chúng ta cần cung cấp các giá trị cho Tên hiển thị và Tên sự kiện.

Step 4 - Để nắm bắt thông tin từ tải tin nhắn, hãy thêm KPI như sau:

  • Đặt tên (khóa) cho KPI ( theo dõi: phần tử siêu dữ liệu ) và một giá trị. Tên sẽ được sử dụng trong giao diện tìm kiếm của Runtime Manager.

  • Đưa ra một giá trị có thể là bất kỳ biểu thức Mule nào.

Thí dụ

Bảng sau bao gồm danh sách các KPI với Tên và Giá trị -

Tên Biểu thức / Giá trị
Sinh viên RollNo # [tải trọng ['RollNo']]
Tên học sinh # [tải trọng ['Tên']]

Đánh giá động

Thành phần cốt lõi này được sử dụng để chọn động một tập lệnh trong ứng dụng Mule. Chúng ta cũng có thể sử dụng tập lệnh Hardcore thông qua Thành phần Thông báo Chuyển đổi nhưng sử dụng Thành phần Đánh giá Động là cách tốt hơn. Thành phần cốt lõi này hoạt động như sau:

  • Đầu tiên, nó đánh giá một biểu thức sẽ dẫn đến một tập lệnh khác.
  • Sau đó, nó đánh giá tập lệnh đó cho kết quả cuối cùng.

Bằng cách này, nó cho phép chúng tôi chọn động tập lệnh thay vì mã hóa cứng.

Thí dụ

Sau đây là một ví dụ về việc chọn một tập lệnh từ cơ sở dữ liệu thông qua tham số truy vấn Id và lưu trữ tập lệnh đó trong một biến có tên MyScript . Bây giờ, thành phần đánh giá động sẽ truy cập vào biến để gọi các tập lệnh để nó có thể thêm một biến tên từUName tham số truy vấn.

Cấu hình XML của luồng được đưa ra bên dưới:

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

Tập lệnh có thể sử dụng các biến ngữ cảnh như tin nhắn, trọng tải, vars hoặc thuộc tính. Tuy nhiên, nếu bạn muốn thêm biến ngữ cảnh tùy chỉnh, bạn cần cung cấp một tập hợp các cặp khóa-giá trị.

Định cấu hình Đánh giá động

Bảng sau cung cấp cách định cấu hình thành phần Đánh giá động:

Cánh đồng Giá trị Sự miêu tả Thí dụ
Biểu hiện Biểu thức DataWeave Nó chỉ định biểu thức được đánh giá thành tập lệnh cuối cùng. biểu thức = "# [vars.generateOrderScript]"
Thông số Biểu thức DataWeave Nó chỉ định các cặp khóa-giá trị. # [{joiner: 'and', id: payload.user.id}]

Thành phần tham chiếu luồng

Nếu bạn muốn định tuyến sự kiện Mule đến một luồng hoặc luồng phụ khác và quay lại trong cùng một ứng dụng Mule, thì thành phần tham chiếu luồng là tùy chọn phù hợp.

Nét đặc trưng

Sau đây là các đặc điểm của thành phần cốt lõi này:

  • Thành phần cốt lõi này cho phép chúng tôi coi toàn bộ luồng được tham chiếu giống như một thành phần duy nhất trong luồng hiện tại.

  • Nó chia ứng dụng Mule thành các đơn vị rời rạc và có thể tái sử dụng. Ví dụ, một luồng đang liệt kê các tệp một cách thường xuyên. Nó có thể tham chiếu đến một luồng khác xử lý đầu ra của hoạt động danh sách.

  • Bằng cách này, thay vì nối toàn bộ các bước xử lý, chúng ta có thể nối các Tham chiếu luồng trỏ đến luồng xử lý. Ảnh chụp màn hình bên dưới cho thấy rằng Thành phần lõi tham chiếu luồng đang hướng tới luồng phụ có tênProcessFiles.

Đang làm việc

Hoạt động của thành phần Flow Ref có thể được hiểu với sự trợ giúp của sơ đồ sau:

Biểu đồ cho thấy thứ tự xử lý trong ứng dụng Mule khi một luồng tham chiếu luồng khác trong cùng một ứng dụng. Khi quy trình làm việc chính trong ứng dụng Mule được kích hoạt, sự kiện Mule di chuyển xuyên suốt và thực hiện quy trình cho đến khi sự kiện Mule đạt đến Tham chiếu luồng.

Sau khi đạt đến Tham chiếu luồng, sự kiện Mule thực hiện luồng được tham chiếu từ đầu đến cuối. Sau khi sự kiện Mule kết thúc việc thực thi Luồng tham chiếu, nó sẽ quay trở lại luồng chính.

Thí dụ

Để hiểu rõ hơn, let us use this component in Anypoint Studio. Trong ví dụ này, chúng tôi đang sử dụng trình nghe HTTP để NHẬN một thông báo, như chúng tôi đã làm trong chương trước. Vì vậy, chúng ta có thể kéo và thả thành phần và cấu hình. Nhưng đối với ví dụ này, chúng ta cần thêm thành phần Luồng phụ và đặt thành phần Tải trọng theo đó, như được hiển thị bên dưới:

Tiếp theo, chúng ta cần cấu hình Set Payload, bằng cách nhấp đúp vào nó. Ở đây chúng tôi đưa ra giá trị, "Luồng phụ được thực thi" như hình dưới đây -

Sau khi cấu hình thành công thành phần luồng phụ, chúng ta cần Thành phần tham chiếu luồng để đặt sau khi Đặt Tải trọng của luồng chính, chúng ta có thể kéo và thả từ Mule Palette như hình dưới đây -

Tiếp theo, trong khi định cấu hình Thành phần tham chiếu luồng, chúng ta cần chọn Tên luồng trong tab Chung như hình dưới đây:

Bây giờ, lưu và chạy ứng dụng này. Để kiểm tra điều này, hãy truy cập POSTMAN và nhậphttp:/localhost:8181/FirstAPP trong thanh URL, và bạn sẽ nhận được thông báo Dòng phụ được thực thi.

Thành phần ghi nhật ký

Thành phần cốt lõi được gọi là trình ghi nhật ký giúp chúng tôi theo dõi và gỡ lỗi ứng dụng Mule của mình bằng cách ghi lại thông tin quan trọng như thông báo lỗi, thông báo trạng thái, trọng tải, v.v. Trong AnyPoint studio, chúng xuất hiện trong Console.

Ưu điểm

Sau đây là một số ưu điểm của Logger Component:

  • Chúng ta có thể thêm thành phần cốt lõi này vào bất kỳ đâu trong quy trình làm việc.
  • Chúng tôi có thể cấu hình nó để ghi một chuỗi do chúng tôi chỉ định.
  • Chúng tôi có thể cấu hình nó thành đầu ra của biểu thức DataWeave do chúng tôi viết.
  • Chúng tôi cũng có thể cấu hình nó thành bất kỳ sự kết hợp nào của chuỗi và biểu thức.

Thí dụ

Ví dụ bên dưới hiển thị thông báo “Hello World” trong Đặt tải trọng trong trình duyệt và cũng ghi nhật ký thông báo.

Sau đây là cấu hình XML của luồng trong ví dụ trên:

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
   <set-payload value="Hello World"/>
   <logger message = "#[payload]" level = "INFO"/>
</flow>

Chuyển thành phần tin nhắn

Transform Message Component hay còn gọi là thành phần Truyền cho phép chúng ta chuyển đổi dữ liệu đầu vào thành một định dạng đầu ra mới.

Phương pháp xây dựng Chuyển đổi

Chúng ta có thể xây dựng sự chuyển đổi của mình với sự trợ giúp của hai phương pháp sau:

Drag-and-Drop Editor (Graphical View)- Đây là phương pháp đầu tiên và được sử dụng nhiều nhất để xây dựng sự biến đổi của chúng tôi. Trong phương pháp này, chúng ta có thể sử dụng trình ánh xạ trực quan của thành phần này để kéo và thả các phần tử của cấu trúc dữ liệu đến. Ví dụ, trong sơ đồ sau, hai dạng xem dạng cây hiển thị cấu trúc siêu dữ liệu dự kiến ​​của đầu vào và đầu ra. Các đường kết nối đầu vào với trường đầu ra biểu thị ánh xạ giữa hai dạng xem dạng cây.

Script View- Bản đồ trực quan của Chuyển đổi cũng có thể được biểu diễn với sự trợ giúp của DataWeave, một ngôn ngữ cho mã Mule. Chúng ta có thể viết mã cho một số biến đổi nâng cao như tổng hợp, chuẩn hóa, nhóm, nối, phân vùng, xoay vòng và lọc. Ví dụ được đưa ra dưới đây -

Thành phần cốt lõi này về cơ bản chấp nhận siêu dữ liệu đầu vào và đầu ra cho một biến, một thuộc tính hoặc trọng tải thông báo. Chúng tôi có thể cung cấp tài nguyên theo định dạng cụ thể cho những điều sau:

  • CSV
  • Schema
  • Lược đồ tệp phẳng
  • JSON
  • Lớp đối tượng
  • Loại đơn giản
  • Lược đồ XML
  • Tên và loại cột Excel
  • Tên và loại cột có chiều rộng cố định

Điểm cuối về cơ bản bao gồm những thành phần kích hoạt hoặc bắt đầu xử lý trong luồng hoạt động của ứng dụng Mule. Họ được gọi làSource trong Anypoint Studio và Triggerstrong Trung tâm Thiết kế của Mule. Một điểm cuối quan trọng trong Mule 4 làScheduler component.

Điểm cuối của bộ lập lịch

Thành phần này hoạt động trên các điều kiện dựa trên thời gian, có nghĩa là, nó cho phép chúng tôi kích hoạt luồng bất cứ khi nào điều kiện dựa trên thời gian được đáp ứng. Ví dụ: một bộ lập lịch có thể kích hoạt một sự kiện để bắt đầu quy trình làm việc Mule cứ sau 10 giây. Chúng tôi cũng có thể sử dụng biểu thức Cron linh hoạt để kích hoạt Điểm cuối của bộ lập lịch.

Những điểm quan trọng về Trình lập lịch

Trong khi sử dụng sự kiện Trình lập lịch, chúng ta cần lưu ý một số điểm quan trọng như được cung cấp bên dưới:

  • Điểm cuối của Trình lập lịch biểu theo múi giờ của máy mà thời gian chạy Mule đang chạy.

  • Giả sử nếu một ứng dụng Mule đang chạy trong CloudHub, thì Trình lập lịch sẽ theo múi giờ của khu vực mà nhân viên CloudHub đang chạy.

  • Tại bất kỳ thời điểm nào, chỉ một luồng được Kích hoạt bởi Điểm cuối của Bộ lập lịch có thể hoạt động.

  • Trong cụm thời gian chạy Mule, Điểm cuối của Bộ lập lịch chỉ chạy hoặc kích hoạt trên nút chính.

Các cách định cấu hình Bộ lập lịch

Như đã thảo luận ở trên, chúng ta có thể cấu hình điểm cuối của bộ lập lịch để được kích hoạt tại một khoảng thời gian cố định hoặc chúng ta cũng có thể đưa ra biểu thức Cron.

Các thông số để định cấu hình Bộ lập lịch (Đối với Khoảng thời gian Cố định)

Sau đây là các thông số để đặt bộ lập lịch để kích hoạt luồng theo khoảng thời gian đều đặn:

Frequency- Về cơ bản, nó mô tả tần suất mà Điểm cuối của Bộ lập lịch sẽ kích hoạt luồng Mule. Đơn vị thời gian cho việc này có thể được chọn từ trường Đơn vị thời gian. Trong trường hợp bạn không cung cấp bất kỳ giá trị nào cho giá trị này, nó sẽ sử dụng giá trị mặc định là 1000. Ngược lại, nếu bạn cung cấp 0 hoặc giá trị âm, thì nó cũng sử dụng giá trị mặc định.

Start Delay- Đó là khoảng thời gian chúng ta phải đợi trước khi kích hoạt luồng Mule lần đầu tiên sau khi ứng dụng được khởi động. Giá trị của độ trễ Bắt đầu được biểu thị bằng cùng một đơn vị thời gian với tần số. Giá trị mặc định của nó là 0.

Time Unit- Nó mô tả đơn vị thời gian cho cả Tần suất và Độ trễ bắt đầu. Các giá trị có thể có của đơn vị thời gian là Mili giây, Giây, Phút, Giờ, Ngày. Giá trị mặc định là Mili giây.

Các thông số để định cấu hình Bộ lập lịch (Đối với Biểu thức Cron)

Trên thực tế, Cron là một tiêu chuẩn được sử dụng để mô tả thông tin ngày và giờ. Trong trường hợp bạn sử dụng biểu thức Cron linh hoạt để kích hoạt Trình lập lịch, Điểm cuối của Trình lập lịch sẽ theo dõi từng giây và tạo sự kiện Mule bất cứ khi nào biểu thức Quartz Cron khớp với cài đặt ngày giờ. Với biểu thức Cron, sự kiện có thể được kích hoạt chỉ một lần hoặc định kỳ.

Bảng sau cung cấp biểu thức ngày-giờ của sáu cài đặt bắt buộc:

Thuộc tính Giá trị
Giây 0-59
Phút 0-59
Giờ 0-23
Ngày trong tháng 1-31
tháng 1-12 hoặc JAN-DEC
Ngày trong tuần 1-7 hoặc SUN-SAT

Dưới đây là một số ví dụ về biểu thức Cron thạch anh được hỗ trợ bởi Điểm cuối của Bộ lập lịch biểu:

  • ½ * * * * ? - có nghĩa là bộ lập lịch chạy 2 giây một lần trong ngày, mỗi ngày.

  • 0 0/5 16 ** ? - có nghĩa là bộ lập lịch chạy 5 phút một lần, bắt đầu từ 4 giờ chiều và kết thúc lúc 4:55 chiều, hàng ngày.

  • 1 1 1 1, 5 * ? - có nghĩa là công cụ lập lịch chạy vào ngày đầu tiên của tháng Giêng và ngày đầu tiên của tháng Tư, hàng năm.

Thí dụ

Đoạn mã sau ghi lại thông báo “xin chào” mỗi giây -

<flow name = "cronFlow" doc:id = "ae257a5d-6b4f-4006-80c8-e7c76d2f67a0">
   <doc:name = "Scheduler" doc:id = "e7b6scheduler8ccb-c6d8-4567-87af-aa7904a50359">
      <scheduling-strategy>
         <cron expression = "* * * * * ?" timeZone = "America/Los_Angeles"/>
      </scheduling-strategy>
   </scheduler>
   <logger level = "INFO" doc:name = "Logger" 
      doc:id = "e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message = '"hi"'/>
</flow>

Kiểm soát luồng (Bộ định tuyến)

Nhiệm vụ chính của thành phần Flow Control là lấy sự kiện Mule đầu vào và định tuyến nó đến một hoặc nhiều chuỗi thành phần riêng biệt. Về cơ bản, nó định tuyến sự kiện Mule đầu vào tới (các) chuỗi thành phần khác. Do đó, nó còn được gọi là Bộ định tuyến. Bộ định tuyến Choice và Scatter-Gather là những bộ định tuyến được sử dụng nhiều nhất trong thành phần Điều khiển luồng.

Bộ định tuyến lựa chọn

Như tên cho thấy, bộ định tuyến này áp dụng logic DataWeave để chọn một trong hai hoặc nhiều tuyến đường. Như đã thảo luận trước đó, mỗi tuyến đường là một chuỗi các bộ xử lý sự kiện Mule riêng biệt. Chúng ta có thể định nghĩa các bộ định tuyến lựa chọn là bộ định tuyến tự động định tuyến thông điệp qua một luồng theo một tập hợp các biểu thức DataWeave được sử dụng để đánh giá nội dung thông báo.

Sơ đồ giản đồ của Bộ định tuyến lựa chọn

Hiệu quả của việc sử dụng bộ định tuyến Choice cũng giống như việc thêm xử lý có điều kiện vào luồng hoặc if/then/elsekhối mã trong hầu hết các ngôn ngữ lập trình. Sau đây là sơ đồ của Bộ định tuyến lựa chọn, có ba tùy chọn. Trong số đó, một là bộ định tuyến mặc định.

Bộ định tuyến Scatter-Gather

Một bộ xử lý sự kiện định tuyến khác được sử dụng nhiều nhất là Scatter-Gather component. Như tên gọi của nó, nó hoạt động dựa trên các nguyên tắc cơ bản của phân tán (sao chép) và tập hợp (hợp nhất). Chúng ta có thể hiểu hoạt động của nó với sự trợ giúp của hai điểm sau:

  • Đầu tiên, bộ định tuyến này sao chép (Phân tán) một sự kiện Mule sang hai hoặc nhiều tuyến song song. Điều kiện là mỗi tuyến phải là một chuỗi của một hoặc nhiều bộ xử lý sự kiện giống như một luồng con. Mỗi tuyến đường trong trường hợp này sẽ tạo ra một sự kiện Mule bằng cách sử dụng một chuỗi riêng biệt. Mỗi sự kiện Mule sẽ có tải trọng, thuộc tính cũng như biến số riêng.

  • Tiếp theo, bộ định tuyến này tập hợp các sự kiện Mule đã tạo từ mỗi tuyến và sau đó hợp nhất chúng lại với nhau thành một sự kiện Mule mới. Sau đó, nó chuyển sự kiện Mule hợp nhất này sang bộ xử lý sự kiện tiếp theo. Ở đây, điều kiện là bộ định tuyến SG sẽ chuyển một sự kiện Mule hợp nhất đến bộ xử lý sự kiện tiếp theo chỉ khi mọi tuyến được hoàn thành thành công.

Sơ đồ giản đồ của bộ định tuyến phân tán-thu thập

Sau đây là sơ đồ của một Bộ định tuyến Scatter-Gather có bốn bộ xử lý sự kiện. Nó thực hiện mọi tuyến đường song song và không tuần tự.

Xử lý lỗi bằng Bộ định tuyến Scatter-Gather

Đầu tiên, chúng ta phải có kiến ​​thức về loại lỗi có thể được tạo ra trong thành phần Scatter-Gather. Bất kỳ lỗi nào có thể được tạo ra trong các bộ xử lý sự kiện dẫn đến thành phần Scatter-Gather tạo ra lỗi loạiMule: COMPOSITE_ERROR. Lỗi này sẽ được ném bởi thành phần SG chỉ sau khi mọi tuyến đường thất bại hoặc hoàn thành.

Để xử lý loại lỗi này, try scopecó thể được sử dụng trong mỗi tuyến của thành phần Scatter-Gather. Nếu lỗi được xử lý thành công bằngtry scope, thì chắc chắn tuyến đường sẽ có thể tạo ra một sự kiện Mule.

Máy biến áp

Giả sử nếu chúng ta muốn thiết lập hoặc loại bỏ một phần của bất kỳ sự kiện Mule nào, thì thành phần Transformer là lựa chọn tốt nhất. Các thành phần máy biến áp có các loại sau:

Loại bỏ biến áp

Như tên của nó, thành phần này nhận một tên biến và loại bỏ biến đó khỏi sự kiện Mule.

Cấu hình loại bỏ biến áp

Bảng dưới đây cho thấy tên của các trường và mô tả của chúng sẽ được xem xét khi định cấu hình loại bỏ máy biến áp -

Sr.No Trường & Giải thích
1

Display Name (doc:name)

Chúng tôi có thể tùy chỉnh điều này để hiển thị tên duy nhất cho thành phần này trong luồng làm việc Mule của chúng tôi.

2

Name (variableName)

Nó đại diện cho tên của biến cần loại bỏ.

Đặt máy biến áp tải trọng

Với sự giúp đỡ của set-payload, chúng ta có thể cập nhật tải trọng, có thể là một chuỗi ký tự hoặc biểu thức DataWeave, của thông báo. Không nên sử dụng thành phần này cho các biểu thức hoặc phép biến đổi phức tạp. Nó có thể được sử dụng cho những người đơn giản nhưselections.

Bảng dưới đây cho thấy tên của các trường và mô tả của chúng sẽ được xem xét khi định cấu hình máy biến áp tải trọng đặt -

Cánh đồng Sử dụng Giải trình
Giá trị (value) Bắt buộc Giá trị được nộp là bắt buộc để đặt trọng tải. Nó sẽ chấp nhận một chuỗi ký tự hoặc biểu thức DataWeave xác định cách đặt trọng tải. Các ví dụ giống như "một số chuỗi"
Loại Mime (mimeType) Không bắt buộc Nó là tùy chọn nhưng đại diện cho loại kịch câm của giá trị được gán cho trọng tải của thông báo. Các ví dụ giống như văn bản / đơn giản.
Encoding (mã hóa) Không bắt buộc Nó cũng là tùy chọn nhưng đại diện cho mã hóa của giá trị được gán cho trọng tải thông báo. Các ví dụ giống như UTF-8.

Chúng tôi có thể đặt một trọng tải thông qua mã cấu hình XML -

With Static Content - Mã cấu hình XML sau sẽ đặt tải trọng bằng cách sử dụng nội dung tĩnh -

<set-payload value = "{ 'name' : 'Gaurav', 'Id' : '2510' }" 
   mimeType = "application/json" encoding = "UTF-8"/>

With Expression Content - Mã cấu hình XML sau sẽ đặt tải trọng bằng cách sử dụng nội dung Biểu thức -

<set-payload value = "#['Hi' ++ ' Today is ' ++ now()]"/>

Ví dụ trên sẽ thêm ngày hôm nay với tải trọng tin nhắn “Xin chào”.

Đặt biến áp biến

Với sự giúp đỡ của set variable, chúng ta có thể tạo hoặc cập nhật một biến để lưu trữ các giá trị có thể là các giá trị theo nghĩa đen đơn giản như chuỗi, trọng tải thông báo hoặc đối tượng thuộc tính, để sử dụng trong luồng ứng dụng Mule. Không nên sử dụng thành phần này cho các biểu thức hoặc phép biến đổi phức tạp. Nó có thể được sử dụng cho những người đơn giản nhưselections.

Cấu hình bộ biến áp biến áp

Bảng dưới đây cho thấy tên của các trường và mô tả của chúng sẽ được xem xét khi định cấu hình máy biến áp tải trọng đặt -

Cánh đồng Sử dụng Giải trình
Tên biến (tên biến) Bắt buộc Nó là bắt buộc và nó đại diện cho tên của biến. Trong khi đặt tên, hãy tuân theo quy ước đặt tên như nó phải chứa số, ký tự và dấu gạch dưới.
Giá trị (value) Bắt buộc Giá trị được gửi là bắt buộc để thiết lập một biến. Nó sẽ chấp nhận một chuỗi ký tự hoặc biểu thức DataWeave.
Loại Mime (mimeType) Không bắt buộc Nó là tùy chọn nhưng đại diện cho kiểu kịch câm của biến. Các ví dụ giống như văn bản / đơn giản.
Encoding (mã hóa) Không bắt buộc Nó cũng là tùy chọn nhưng đại diện cho mã hóa của biến. Các ví dụ như ISO 10646 / Unicode (UTF-8).

Thí dụ

Ví dụ dưới đây sẽ đặt biến thành tải trọng thông báo -

Variable Name = msg_var
Value = payload in Design center and #[payload] in Anypoint Studio

Tương tự, ví dụ dưới đây sẽ đặt biến thành tải trọng thông báo -

Variable Name = msg_var
Value = attributes in Design center and #[attributes] in Anypoint Studio.

Dịch vụ web REST

Dạng đầy đủ của REST là Truyền trạng thái đại diện được liên kết với HTTP. Do đó, nếu bạn muốn thiết kế một ứng dụng để sử dụng riêng trên web, REST là lựa chọn tốt nhất.

Sử dụng các dịch vụ web RESTful

Trong ví dụ sau, chúng tôi sẽ sử dụng thành phần REST và một dịch vụ RESTful công cộng do Mule Soft cung cấp được gọi là chi tiết Chuyến bay Mỹ. Nó có nhiều chi tiết khác nhau nhưng chúng tôi sẽ sử dụng GET:http://training-american-ws.cloudhub.io/api/flightsđiều đó sẽ trả lại tất cả chi tiết chuyến bay. Như đã thảo luận trước đó, REST bị ràng buộc với HTTP, do đó chúng ta cần hai thành phần HTTP - một là Trình xử lý và một là Yêu cầu, cho ứng dụng này. Ảnh chụp màn hình bên dưới hiển thị cấu hình cho trình nghe HTTP -

Định cấu hình và chuyển đối số

Cấu hình cho yêu cầu HTTP được đưa ra bên dưới:

Bây giờ, theo luồng không gian làm việc của chúng tôi, chúng tôi đã sử dụng trình ghi nhật ký để nó có thể được định cấu hình như bên dưới:

Trong tab thông báo, chúng tôi viết mã để chuyển tải trọng thành chuỗi.

Kiểm tra ứng dụng

Bây giờ, hãy lưu và chạy ứng dụng và vào POSTMAN để kiểm tra kết quả cuối cùng như hình dưới đây -

Bạn có thể thấy nó cung cấp chi tiết chuyến bay bằng cách sử dụng thành phần REST.

Thành phần SOAP

Dạng đầy đủ của SOAP là Simple Object Access Protocol. Về cơ bản, nó là một đặc tả giao thức nhắn tin để trao đổi thông tin trong việc thực hiện các dịch vụ web. Tiếp theo, chúng tôi sẽ sử dụng API SOAP trong Anypoint Studio để truy cập thông tin bằng các dịch vụ web.

Sử dụng các dịch vụ web dựa trên SOAP

Đối với ví dụ này, chúng tôi sẽ sử dụng dịch vụ SOAP công cộng có tên là Country Info Service, dịch vụ này giữ lại các dịch vụ liên quan đến thông tin quốc gia. Địa chỉ WSDL của nó là:http://www.oorsprong.org/websamples.countryinfo/countryinfoservice.wso?WSDL

Đầu tiên, chúng ta cần kéo SOAP tiêu thụ trong canvas của chúng ta từ Mule Palette như hình dưới đây -

Định cấu hình và chuyển đối số

Tiếp theo, chúng ta cần định cấu hình yêu cầu HTTP như được thực hiện trong ví dụ trên như được đưa ra bên dưới:

Bây giờ, chúng ta cũng cần định cấu hình Người tiêu dùng dịch vụ web như hình dưới đây:

Tại vị trí của Vị trí WSDL, chúng tôi cần cung cấp địa chỉ web của WSDL, được cung cấp ở trên (ví dụ này). Sau khi bạn cung cấp địa chỉ web, Studio sẽ tự tìm kiếm dịch vụ, Cổng và Địa chỉ. Bạn không cần phải cung cấp nó theo cách thủ công.

Chuyển phản hồi từ Dịch vụ web

Đối với điều này, chúng tôi cần thêm trình ghi nhật ký trong luồng Mule và định cấu hình nó để cung cấp tải trọng như hình dưới đây -

Kiểm tra ứng dụng

Lưu và chạy ứng dụng và truy cập Google Chrome để kiểm tra kết quả cuối cùng. Kiểuhttp://localhist:8081/helloSOAP (ví dụ này) và nó sẽ hiển thị tên quốc gia theo mã như được hiển thị trong ảnh chụp màn hình bên dưới -

Xử lý lỗi Mule mới là một trong những thay đổi lớn nhất và chính được thực hiện trong Mule 4. Việc xử lý lỗi mới có vẻ phức tạp, nhưng tốt hơn và hiệu quả hơn. Trong chương này, chúng ta sẽ thảo luận về các thành phần của lỗi Mule, các loại lỗi, các loại lỗi Mule và các thành phần để xử lý lỗi Mule.

Các thành phần của lỗi Mule

Lỗi Mule là kết quả của lỗi ngoại lệ Mule có các thành phần sau:

Sự miêu tả

Đây là một thành phần quan trọng của lỗi Mule sẽ đưa ra mô tả về sự cố. Biểu thức của nó như sau:

#[error.description]

Kiểu

Thành phần Loại của lỗi Mule được sử dụng để mô tả vấn đề. Nó cũng cho phép định tuyến trong một trình xử lý lỗi. Biểu thức của nó như sau:

#[error.errorType]

Nguyên nhân

Thành phần Nguyên nhân của lỗi Mule cung cấp tệp java cơ bản gây ra lỗi. Biểu thức của nó như sau:

#[error.cause]

Thông điệp

Thành phần Thông báo của lỗi Mule hiển thị một thông báo tùy chọn liên quan đến lỗi. Biểu thức của nó như sau:

#[error.errorMessage]

Lỗi trẻ em

Thành phần Lỗi con của lỗi Mule cung cấp một tập hợp các lỗi bên trong tùy chọn. Các lỗi bên trong này chủ yếu được sử dụng bởi các phần tử như Scatter-Gather để cung cấp các lỗi tuyến tổng hợp. Biểu thức của nó như sau:

#[error.childErrors]

Thí dụ

Trong trường hợp yêu cầu HTTP không thành công với mã trạng thái 401, lỗi Mule như sau:

Description: HTTP GET on resource ‘http://localhost:8181/TestApp’ 
failed: unauthorized (401)
Type: HTTP:UNAUTHORIZED
Cause: a ResponseValidatorTypedException instance
Error Message: { "message" : "Could not authorize the user." }
Sr.NO Loại lỗi và mô tả
1

TRANSFORMATION

Loại Lỗi này cho biết đã xảy ra lỗi khi chuyển đổi giá trị. Phép biến đổi là phép biến đổi bên trong Mule Runtime chứ không phải phép biến đổi DataWeave.

2

EXPRESSION

Loại Loại Lỗi này chỉ ra một lỗi đã xảy ra khi đánh giá một biểu thức.

3

VALIDATION

Loại Loại lỗi này cho biết đã xảy ra lỗi xác thực.

4

DUPLICATE_MESSAGE

Một loại lỗi xác thực xảy ra khi một thông báo được xử lý hai lần.

5

REDELIVERY_EXHAUSTED

Loại Loại Lỗi này xảy ra khi các nỗ lực tối đa để xử lý lại thư từ một nguồn đã hết.

6

CONNECTIVITY

Loại Lỗi này cho biết sự cố khi thiết lập kết nối.

7

ROUTING

Loại Lỗi này cho biết đã xảy ra lỗi khi định tuyến thư.

số 8

SECURITY

Loại Lỗi này cho biết đã xảy ra lỗi bảo mật. Ví dụ: nhận được thông tin đăng nhập không hợp lệ.

9

STREAM_MAXIMUM_SIZE_EXCEEDED

Loại Lỗi này xảy ra khi kích thước tối đa được phép cho một luồng cạn kiệt.

10

TIMEOUT

Nó cho biết thời gian chờ trong khi xử lý một tin nhắn.

11

UNKNOWN

Loại Lỗi này cho biết đã xảy ra lỗi không mong muốn.

12

SOURCE

Nó đại diện cho sự xuất hiện của một lỗi trong nguồn của luồng.

13

SOURCE_RESPONSE

Nó đại diện cho sự xuất hiện của một lỗi trong nguồn của luồng trong khi xử lý một phản hồi thành công.

Trong ví dụ trên, bạn có thể thấy thành phần thông báo của lỗi con la.

Các loại lỗi

Hãy để chúng tôi hiểu Các loại lỗi với sự trợ giúp của các đặc điểm của nó -

  • Đặc điểm đầu tiên của các loại lỗi Mule là nó bao gồm cả hai, a namespace and an identifier. Điều này cho phép chúng tôi phân biệt các loại theo miền của chúng. Trong ví dụ trên, Loại lỗi làHTTP: UNAUTHORIZED.

  • Đặc điểm thứ hai và quan trọng là Kiểu lỗi có thể có kiểu mẹ. Ví dụ: Loại lỗiHTTP: UNAUTHORIZEDMULE:CLIENT_SECURITY như cha mẹ, đến lượt nó cũng có cha mẹ có tên MULE:SECURITY. Đặc tính này thiết lập Loại lỗi như là đặc điểm kỹ thuật của nhiều mặt hàng toàn cầu hơn.

Các loại lỗi

Sau đây là các danh mục mà tất cả các lỗi thuộc về -

BẤT KÌ

Các lỗi trong danh mục này là các lỗi có thể xảy ra trong Luồng. Chúng không quá nghiêm trọng và có thể được xử lý dễ dàng.

BẠO KÍCH

Những lỗi thuộc danh mục này là những lỗi nặng không thể xử lý được. Sau đây là danh sách Các loại lỗi trong danh mục này:

Sr.NO Loại lỗi và mô tả
1

OVERLOAD

Loại Lỗi này cho biết lỗi đã xảy ra do sự cố quá tải. Trong trường hợp này, việc thực thi sẽ bị từ chối.

2

FATAL_JVM_ERROR

Loại Lỗi Loại này cho biết sự xuất hiện của một lỗi nghiêm trọng. Ví dụ, tràn ngăn xếp.

Loại lỗi CUSTOM

Các loại lỗi TÙY CHỈNH là các lỗi do chúng tôi xác định. Chúng có thể được xác định khi ánh xạ hoặc khi nâng cao lỗi. Chúng tôi phải cung cấp một không gian tên tùy chỉnh cụ thể cho các Loại lỗi này để phân biệt chúng với các Loại lỗi hiện có khác trong ứng dụng Mule. Ví dụ: trong ứng dụng Mule sử dụng HTTP, chúng tôi không thể sử dụng HTTP làm loại lỗi tùy chỉnh.

Các loại lỗi Mule

Theo nghĩa rộng, lỗi trong Mule có thể được chia thành hai loại, cụ thể là, Messaging Errors and System Errors.

Lỗi nhắn tin

Loại lỗi Mule này có liên quan đến dòng Mule. Bất cứ khi nào có sự cố xảy ra trong luồng Mule, Mule sẽ đưa ra một lỗi nhắn tin. Chúng tôi có thể thiết lậpOn Error thành phần bên trong thành phần xử lý lỗi để xử lý các lỗi Mule này.

Lỗi hệ thống

Lỗi hệ thống chỉ ra một ngoại lệ xảy ra ở cấp hệ thống. Nếu không có sự kiện Mule, lỗi hệ thống được xử lý bởi trình xử lý lỗi hệ thống. Loại ngoại lệ sau do trình xử lý lỗi hệ thống xử lý:

  • Ngoại lệ xảy ra trong quá trình khởi động ứng dụng.
  • Ngoại lệ xảy ra khi kết nối với hệ thống bên ngoài không thành công.

Trong trường hợp xảy ra lỗi hệ thống, Mule sẽ gửi thông báo lỗi đến những người nghe đã đăng ký. Nó cũng ghi lại lỗi. Mặt khác, Mule thực hiện chiến lược kết nối lại nếu lỗi do lỗi kết nối.

Xử lý lỗi Mule

Mule có hai Trình xử lý lỗi sau để xử lý các lỗi:

Trình xử lý lỗi On-Error

Trình xử lý lỗi Mule đầu tiên là thành phần On-Error, xác định các loại lỗi mà chúng có thể xử lý. Như đã thảo luận trước đó, chúng ta có thể cấu hình các thành phần On-Error bên trong thành phần Error Handler giống như phạm vi. Mỗi luồng Mule chỉ chứa một trình xử lý lỗi, nhưng trình xử lý lỗi này có thể chứa nhiều phạm vi On-Error nếu chúng tôi cần. Các bước để xử lý lỗi Mule bên trong luồng, với sự trợ giúp của thành phần On-Error, như sau:

  • Đầu tiên, bất cứ khi nào luồng Mule xảy ra lỗi, việc thực thi luồng bình thường sẽ dừng lại.

  • Tiếp theo, quy trình sẽ được chuyển sang Error Handler Component đã có On Error component để phù hợp với các loại lỗi và biểu thức.

  • Cuối cùng, thành phần xử lý lỗi định tuyến lỗi đến đầu tiên On Error scope phù hợp với lỗi.

Sau đây là hai loại thành phần On-Error được Mule hỗ trợ:

Tuyên truyền lỗi

Thành phần On-Error Tuyên truyền thực thi nhưng truyền lỗi đến cấp độ tiếp theo và phá vỡ quá trình thực thi của chủ sở hữu. Giao dịch sẽ được hoàn nguyên nếu nó được xử lý bởiOn Error Propagate thành phần.

Tiếp tục về Lỗi

Giống như thành phần On-Error Tuyên truyền, thành phần On-Error Continue cũng thực hiện giao dịch. Điều kiện duy nhất là, nếu chủ sở hữu đã hoàn thành việc thực thi thành công thì thành phần này sẽ sử dụng kết quả của việc thực thi như kết quả của chủ sở hữu của nó. Giao dịch sẽ được cam kết nếu nó được xử lý bởi thành phần On-Error Continue.

Thử thành phần phạm vi

Thử Phạm vi là một trong nhiều tính năng mới có trong Mule 4. Nó hoạt động tương tự như thử khối JAVA mà chúng tôi đã sử dụng để bao gồm mã có khả năng là ngoại lệ, để có thể xử lý mà không làm hỏng toàn bộ mã.

Chúng ta có thể bao bọc một hoặc nhiều bộ xử lý sự kiện Mule trong Thử Phạm vi và sau đó, phạm vi thử sẽ bắt và xử lý bất kỳ ngoại lệ nào do các bộ xử lý sự kiện này ném ra. Hoạt động chính của try scope xoay quanh chiến lược xử lý lỗi của riêng nó, hỗ trợ xử lý lỗi trên thành phần bên trong của nó thay vì toàn bộ luồng. Đó là lý do tại sao chúng ta không cần trích dòng chảy thành một dòng chảy riêng.

Example

Sau đây là một ví dụ về việc sử dụng phạm vi thử:

Định cấu hình phạm vi thử để xử lý các giao dịch

Như chúng ta đã biết, giao dịch là một chuỗi các hành động không bao giờ được thực hiện từng phần. Tất cả các hoạt động trong phạm vi của một giao dịch được thực hiện trong cùng một chuỗi và nếu xảy ra lỗi, nó sẽ dẫn đến việc khôi phục hoặc cam kết. Chúng ta có thể định cấu hình phạm vi thử theo cách sau để nó coi các hoạt động con như một giao dịch.

  • INDIFFERENT [Default]- Nếu chúng ta chọn cấu hình này trên khối try, thì các hành động con sẽ không được coi là một giao dịch. Trong trường hợp này, lỗi không gây ra việc khôi phục và cam kết.

  • ALWAYS_BEGIN - Nó chỉ ra rằng một giao dịch mới sẽ được bắt đầu mỗi khi phạm vi được thực hiện.

  • BEGIN_OR_JOIN- Nó chỉ ra rằng nếu quá trình xử lý hiện tại của luồng đã bắt đầu một giao dịch, hãy tham gia nó. Nếu không, hãy bắt đầu một cái mới.

Trong trường hợp của mọi dự án, thực tế về các ngoại lệ là chúng nhất định xảy ra. Đó là lý do tại sao điều quan trọng là phải nắm bắt, phân loại và xử lý các trường hợp ngoại lệ để hệ thống / ứng dụng không bị rơi vào trạng thái không nhất quán. Có một chiến lược ngoại lệ mặc định được áp dụng ngầm cho tất cả các ứng dụng Mule. Tự động khôi phục mọi giao dịch đang chờ xử lý là chiến lược ngoại lệ mặc định.

Ngoại lệ ở Mule

Trước khi đi sâu vào xử lý ngoại lệ, chúng ta nên hiểu loại ngoại lệ nào có thể xảy ra cùng với ba câu hỏi cơ bản mà nhà phát triển phải có khi thiết kế trình xử lý ngoại lệ.

Giao thông vận tải nào là quan trọng?

Câu hỏi này có nhiều mức độ liên quan trước khi thiết kế các trình xử lý ngoại lệ vì tất cả các phương tiện vận tải không hỗ trợ tính xuyên quốc gia.

File hoặc là HTTPkhông hỗ trợ giao dịch. Đó là lý do tại sao, nếu một ngoại lệ xảy ra trong những trường hợp này, chúng ta phải quản lý nó theo cách thủ công.

Databaseshỗ trợ giao dịch. Trong khi thiết kế các trình xử lý ngoại lệ trong trường hợp này, chúng ta phải lưu ý rằng các giao dịch cơ sở dữ liệu có thể tự động khôi phục (nếu cần).

Trong trường hợp REST APIs, chúng ta nên nhớ rằng chúng phải trả về mã trạng thái HTTP chính xác. Ví dụ: 404 cho một tài nguyên không tìm thấy.

Mẫu Trao đổi Thư nào sẽ được sử dụng?

Trong khi thiết kế các trình xử lý ngoại lệ, chúng ta phải quan tâm đến mẫu trao đổi Thư. Có thể có mẫu thông báo đồng bộ (yêu cầu trả lời) hoặc không đồng bộ (hỏa hoạn).

Synchronous message pattern dựa trên định dạng yêu cầu trả lời có nghĩa là mẫu này sẽ mong đợi phản hồi và sẽ bị chặn cho đến khi phản hồi được trả lại hoặc hết thời gian chờ xảy ra.

Asynchronous message pattern dựa trên định dạng fire-forget, có nghĩa là mẫu này giả định rằng các yêu cầu cuối cùng sẽ được xử lý.

Đó là loại ngoại lệ nào?

Quy tắc rất đơn giản là bạn sẽ xử lý ngoại lệ dựa trên loại của nó. Điều rất quan trọng là phải biết liệu trường hợp ngoại lệ là do vấn đề hệ thống / kỹ thuật hay vấn đề kinh doanh?

Một ngoại lệ xảy ra bởi system/technical issue (chẳng hạn như mất mạng) sẽ được tự động xử lý bằng cơ chế thử lại.

Mặt khác, một ngoại lệ đã xảy ra by a business issue (chẳng hạn như dữ liệu không hợp lệ) không nên được giải quyết bằng cách áp dụng cơ chế thử lại vì sẽ không hữu ích nếu thử lại mà không khắc phục nguyên nhân cơ bản.

Tại sao phải phân loại ngoại lệ?

Như chúng ta biết rằng tất cả các ngoại lệ là không giống nhau, điều rất quan trọng là phải phân loại các ngoại lệ. Ở cấp độ cao, các ngoại lệ có thể được phân loại thành hai loại sau:

Ngoại lệ kinh doanh

Các lý do chính cho sự xuất hiện của các ngoại lệ kinh doanh là dữ liệu không chính xác hoặc luồng quy trình không chính xác. Về bản chất, những loại ngoại lệ này thường không thể kiểm tra lại được và do đó, việc định cấu hình mộtrollback. Ngay cả khi áp dụngretrycơ chế sẽ không có ý nghĩa gì vì sẽ không hữu ích nếu thử lại mà không khắc phục nguyên nhân cơ bản. Để xử lý các ngoại lệ như vậy, quá trình xử lý phải dừng ngay lập tức và ngoại lệ được gửi lại dưới dạng phản hồi cho hàng đợi thư đã chết. Một thông báo cũng sẽ gửi đến các hoạt động.

Ngoại lệ phi kinh doanh

Các lý do chính cho sự xuất hiện của các ngoại lệ không phải do kinh doanh là vấn đề hệ thống hoặc vấn đề kỹ thuật. Về bản chất, các loại ngoại lệ này có thể truy xuất lại và do đó, rất tốt để định cấu hìnhretry cơ chế để giải quyết các ngoại lệ này.

Các chiến lược xử lý ngoại lệ

Mule có năm chiến lược xử lý ngoại lệ sau:

Chiến lược ngoại lệ mặc định

Mule hoàn toàn áp dụng chiến lược này cho dòng Mule. Nó có thể xử lý tất cả các ngoại lệ trong quy trình của chúng tôi, nhưng nó cũng có thể bị ghi đè bằng cách thêm chiến lược ngoại lệ catch, Choice hoặc Rollback. Chiến lược ngoại lệ này sẽ khôi phục mọi giao dịch đang chờ xử lý và ghi lại các ngoại lệ. Một đặc điểm quan trọng của chiến lược ngoại lệ này là nó cũng sẽ ghi lại ngoại lệ nếu không có giao dịch.

Là chiến lược mặc định, Mule thực hiện điều này khi bất kỳ lỗi nào xảy ra trong luồng. Chúng tôi không thể cấu hình trong AnyPoint studio.

Chiến lược ngoại lệ khôi phục

Giả sử nếu không có giải pháp khả thi để sửa lỗi thì phải làm thế nào? Một giải pháp là sử dụng Chiến lược ngoại lệ khôi phục, chiến lược này sẽ khôi phục giao dịch cùng với việc gửi thông báo đến trình kết nối đến của luồng mẹ để xử lý lại thông báo. Chiến lược này cũng rất hữu ích khi chúng ta muốn xử lý lại một tin nhắn.

Example

Chiến lược này có thể được áp dụng cho giao dịch ngân hàng mà tiền được gửi vào tài khoản séc / tiết kiệm. Chúng ta có thể định cấu hình chiến lược ngoại lệ khôi phục ở đây bởi vì trong trường hợp nếu có lỗi xảy ra trong quá trình giao dịch, chiến lược này sẽ chuyển thông báo trở lại đầu luồng để thử xử lý lại.

Chiến lược bắt ngoại lệ

Chiến lược này nắm bắt tất cả các trường hợp ngoại lệ được ném trong luồng mẹ của nó. Nó ghi đè chiến lược ngoại lệ mặc định của Mule bằng cách xử lý tất cả các ngoại lệ do luồng mẹ ném ra. Chúng ta có thể sử dụng chiến lược bắt ngoại lệ để tránh lan truyền các ngoại lệ cho các trình kết nối gửi đến và cả luồng gốc.

Chiến lược này cũng đảm bảo rằng một giao dịch được xử lý bởi luồng không bị quay ngược trở lại khi một ngoại lệ xảy ra.

Example

Chiến lược này có thể được áp dụng cho hệ thống đặt vé máy bay trong đó chúng tôi có quy trình xử lý tin nhắn từ một hàng đợi. Trình bổ sung thông báo thêm một thuộc tính trên thông báo để chỉ định chỗ ngồi và sau đó gửi thông báo đến một hàng đợi khác.

Bây giờ nếu có bất kỳ lỗi nào xảy ra trong luồng này, thì thông báo sẽ đưa ra một ngoại lệ. Ở đây, chiến lược ngoại lệ bắt của chúng tôi có thể thêm tiêu đề với thông báo thích hợp và có thể đẩy thông báo đó ra khỏi luồng đến hàng đợi tiếp theo.

Chiến lược ngoại lệ lựa chọn

Trong trường hợp bạn muốn xử lý ngoại lệ dựa trên nội dung thư, thì chiến lược lựa chọn ngoại lệ sẽ là lựa chọn tốt nhất. Hoạt động của chiến lược ngoại lệ này sẽ như sau:

  • Đầu tiên, nó bắt tất cả các ngoại lệ được ném trong luồng cha.
  • Tiếp theo, nó kiểm tra nội dung tin nhắn và loại ngoại lệ.
  • Và cuối cùng, nó định tuyến thông điệp đến chiến lược ngoại lệ thích hợp.

Sẽ có nhiều hơn một chiến lược ngoại lệ như Catch hoặc Rollback, được xác định trong chiến lược ngoại lệ lựa chọn. Trong trường hợp không có chiến lược nào được xác định theo chiến lược ngoại lệ này, thì nó sẽ định tuyến thông báo đến chiến lược ngoại lệ mặc định. Nó không bao giờ thực hiện bất kỳ hoạt động cam kết hoặc khôi phục hoặc tiêu thụ nào.

Tham chiếu Chiến lược Ngoại lệ

Điều này đề cập đến một chiến lược ngoại lệ chung được xác định trong một tệp cấu hình riêng biệt. Trong trường hợp khi một thông báo ném một ngoại lệ, chiến lược ngoại lệ này sẽ tham chiếu đến các tham số xử lý lỗi được xác định trong một chiến lược ngoại lệ bắt, khôi phục hoặc lựa chọn toàn cục. Giống như chiến lược ngoại lệ lựa chọn, nó không bao giờ thực hiện bất kỳ hoạt động cam kết hoặc khôi phục hoặc tiêu thụ nào.

Chúng tôi hiểu kiểm tra đơn vị là một phương pháp mà các đơn vị mã nguồn riêng lẻ có thể được kiểm tra để xác định xem chúng có phù hợp để sử dụng hay không. Các lập trình viên Java có thể sử dụng khung công tác Junit để viết các trường hợp kiểm thử. Tương tự, MuleSoft cũng đang có một khuôn khổ có tên MUnit cho phép chúng tôi viết các trường hợp thử nghiệm tự động cho các API và tích hợp của chúng tôi. Nó hoàn toàn phù hợp cho môi trường tích hợp / triển khai liên tục. Một trong những ưu điểm lớn nhất của MUnit framework là chúng ta có thể tích hợp nó với Maven và Surefire.

Các tính năng của MUnit

Sau đây là một số tính năng rất hữu ích của khung thử nghiệm Mule MUnit:

  • Trong khung công tác MUnit, chúng ta có thể tạo thử nghiệm Mule của mình bằng cách sử dụng mã Mule cũng như mã Java.

  • Chúng tôi có thể thiết kế và kiểm tra các ứng dụng và API Mule của mình, bằng đồ họa hoặc bằng XML, trong Anypoint Studio.

  • MUnit cho phép chúng tôi dễ dàng tích hợp thử nghiệm vào quy trình CI / CD hiện có.

  • Nó cung cấp các bài kiểm tra được tạo tự động và báo cáo phạm vi; do đó công việc thủ công là tối thiểu.

  • Chúng tôi cũng có thể sử dụng các máy chủ DB / FTP / mail cục bộ để làm cho việc kiểm tra trở nên linh hoạt hơn thông qua quy trình CI.

  • Nó cho phép chúng tôi bật hoặc tắt các bài kiểm tra.

  • Chúng tôi cũng có thể mở rộng khung MUnit bằng các plugin.

  • Nó cho phép chúng tôi xác minh các cuộc gọi xử lý tin nhắn.

  • Với sự trợ giúp của khung thử nghiệm MUnit, chúng tôi có thể vô hiệu hóa các đầu nối điểm cuối cũng như luồng điểm cuối đến.

  • Chúng tôi có thể kiểm tra các báo cáo lỗi với dấu vết ngăn xếp Mule.

Bản phát hành mới nhất của Khung thử nghiệm Mule MUnit

MUnit 2.1.4 là phiên bản mới nhất của khung thử nghiệm Mule MUnit. Nó yêu cầu các yêu cầu về phần cứng và phần mềm sau:

  • MS Windows 8+
  • Apple Mac OS X 10.10+
  • Linux
  • Java 8
  • Maven 3.3.3, 3.3.9, 3.5.4, 3.6.0

Nó tương thích với Mule 4.1.4 và Anypoint Studio 7.3.0.

MUnit và Anypoint Studio

Như đã thảo luận, MUnit được tích hợp đầy đủ trong Anypoint studio và chúng tôi có thể thiết kế và kiểm tra các ứng dụng và API Mule của mình bằng đồ họa hoặc bằng XML trong Anypoint studio. Nói cách khác, chúng ta có thể sử dụng giao diện đồ họa của Anypoint Studio để thực hiện những việc sau:

  • Để tạo và thiết kế các bài kiểm tra MUnit
  • Để chạy thử nghiệm của chúng tôi
  • Để xem kết quả kiểm tra cũng như báo cáo phạm vi
  • Để gỡ lỗi các bài kiểm tra

Vì vậy, chúng ta hãy bắt đầu thảo luận từng nhiệm vụ một.

Tạo và thiết kế thử nghiệm MUnit

Khi bạn bắt đầu dự án mới, nó sẽ tự động thêm một thư mục mới, cụ thể là src/test/munitcho dự án của chúng tôi. Ví dụ: chúng tôi đã bắt đầu một dự án Mule mới, cụ thể làtest_munit, bạn có thể thấy trong hình ảnh dưới đây, nó thêm thư mục nói trên trong dự án của chúng tôi.

Bây giờ, khi bạn bắt đầu dự án mới, có hai cách cơ bản để tạo thử nghiệm MUnit mới trong Anypoint Studio -

  • By Right-Clicking the Flow - Trong phương pháp này, chúng ta cần nhấp chuột phải vào luồng cụ thể và chọn MUnit từ trình đơn thả xuống.

  • By Using the Wizard- Trong phương pháp này, chúng ta cần sử dụng trình hướng dẫn để tạo một bài kiểm tra. Nó cho phép chúng tôi tạo một bài kiểm tra cho bất kỳ luồng nào trong không gian làm việc.

Chúng tôi sẽ sử dụng cách 'Nhấp chuột phải vào luồng' để tạo thử nghiệm cho luồng cụ thể.

Đầu tiên, chúng ta cần tạo một luồng trong không gian làm việc như sau:

Bây giờ, nhấp chuột phải vào luồng này và chọn MUnit để tạo thử nghiệm cho luồng này, như hình dưới đây -

Nó sẽ tạo một bộ thử nghiệm mới được đặt tên theo tệp XML nơi lưu trữ luồng. Trong trường hợp này,test_munit-test-suite là tên của bộ thử nghiệm mới như hình dưới đây -

Sau đây là trình soạn thảo XML cho luồng thông báo trên:

Bây giờ, chúng ta có thể thêm một MUnit bộ xử lý tin nhắn vào bộ thử nghiệm bằng cách kéo nó từ Mule Palette.

Nếu bạn muốn tạo một bài kiểm tra thông qua Wizard thì hãy làm theo File → New → MUnit và nó sẽ dẫn bạn đến bộ thử nghiệm MUnit sau:

Cấu hình bài kiểm tra

Trong Mule 4, chúng tôi có hai phần mới là MUnitMUnit Tools, gọi chung là có tất cả bộ xử lý tin nhắn MUnit. Bạn có thể kéo bất kỳ trình xử lý tin nhắn nào trong vùng kiểm tra MUnit của mình. Nó được hiển thị trong ảnh chụp màn hình bên dưới -

Bây giờ, nếu bạn muốn chỉnh sửa cấu hình cho bộ đồ của mình hoặc thử nghiệm trong Anypoint Studio, thì bạn cần làm theo các bước sau:

Step 1

Đi đến Package Explorer và nhấp chuột phải vào .xml filecho bộ hoặc thử nghiệm của bạn. Sau đó, chọnProperties.

Step 2

Bây giờ, trong cửa sổ Thuộc tính, chúng ta cần nhấp vào Run/Debug SettingS. Sau cú nhấp chuột nàyNew.

Step 3

Trong bước cuối cùng, nhấp vào MUnit Dưới Select Configuration Type cửa sổ, sau đó bấm OK.

Chạy thử nghiệm

Chúng tôi có thể chạy một bộ thử nghiệm cũng như một thử nghiệm. Đầu tiên, chúng ta sẽ xem cách chạy bộ thử nghiệm.

Chạy bộ thử nghiệm

Để chạy bộ thử nghiệm, hãy nhấp chuột phải vào phần trống của Mule Canvas nơi chứa bộ thử nghiệm của bạn. Nó sẽ mở ra một menu thả xuống. Bây giờ, hãy nhấp vàoRun MUnit suite như hình dưới đây -

Sau đó, chúng ta có thể thấy đầu ra trong bảng điều khiển.

Chạy thử nghiệm

Để chạy một bài kiểm tra cụ thể, chúng ta cần chọn bài kiểm tra cụ thể và nhấp chuột phải vào bài kiểm tra đó. Chúng tôi sẽ nhận được menu thả xuống giống như chúng tôi đã nhận được khi chạy bộ thử nghiệm. Bây giờ, hãy nhấp vàoRun MUnit Test tùy chọn như hình dưới đây -

Ở đó sau khi đầu ra có thể được nhìn thấy trong bảng điều khiển.

Xem và phân tích kết quả kiểm tra

Anypoint studio hiển thị kết quả kiểm tra MUnit trong MUnit tabcủa ngăn khám phá bên trái. Bạn có thể tìm thấy các bài kiểm tra thành công có màu xanh lá cây và các bài kiểm tra thất bại có màu đỏ như hình dưới đây -

Chúng tôi có thể phân tích kết quả thử nghiệm của mình bằng cách xem báo cáo mức độ phù hợp. Tính năng chính của Báo cáo mức độ phù hợp là cung cấp số liệu về mức độ một ứng dụng Mule đã được thực thi thành công bằng một tập hợp các thử nghiệm MUnit. Phạm vi bao phủ MUnit về cơ bản dựa trên số lượng bộ xử lý thông báo MUnit được thực thi. Báo cáo phạm vi MUnit cung cấp số liệu cho những điều sau:

  • Phạm vi ứng dụng tổng thể
  • Phạm vi tài nguyên
  • Bảo hiểm dòng chảy

Để nhận báo cáo mức độ phù hợp, chúng tôi cần nhấp vào 'Tạo Báo cáo' trong tab MUnit như được hiển thị bên dưới -

Gỡ lỗi kiểm tra

Chúng tôi có thể gỡ lỗi một bộ thử nghiệm cũng như một thử nghiệm. Đầu tiên, chúng ta sẽ xem cách gỡ lỗi bộ thử nghiệm.

Gỡ lỗi bộ thử nghiệm

Để gỡ lỗi bộ thử nghiệm, hãy nhấp chuột phải vào phần trống của Mule Canvas nơi chứa bộ thử nghiệm của bạn. Nó sẽ mở ra một menu thả xuống. Bây giờ, hãy nhấp vàoDebug MUnit Suite như thể hiện trong hình ảnh dưới đây -

Sau đó, chúng ta có thể thấy đầu ra trong bảng điều khiển.

Gỡ lỗi kiểm tra

Để gỡ lỗi một bài kiểm tra cụ thể, chúng ta cần chọn bài kiểm tra cụ thể và nhấp chuột phải vào bài kiểm tra đó. Chúng tôi sẽ nhận được menu thả xuống giống như chúng tôi đã nhận được khi gỡ lỗi bộ thử nghiệm. Bây giờ, hãy nhấp vàoDebug MUnit TestLựa chọn. Nó được hiển thị trong ảnh chụp màn hình dưới đây.