MuleSoft - ตัวประมวลผลข้อความและส่วนประกอบสคริปต์

โมดูลการเขียนสคริปต์อำนวยความสะดวกให้ผู้ใช้ใช้ภาษาสคริปต์ใน Mule กล่าวง่ายๆคือโมดูลการเขียนสคริปต์สามารถแลกเปลี่ยนตรรกะที่กำหนดเองซึ่งเขียนด้วยภาษาสคริปต์ สคริปต์สามารถใช้เป็น Implementations หรือ Transformers สามารถใช้สำหรับการประเมินนิพจน์เช่นสำหรับควบคุมการกำหนดเส้นทางข้อความ

Mule มีภาษาสคริปต์ที่รองรับดังต่อไปนี้ -

  • Groovy
  • Python
  • JavaScript
  • Ruby

จะติดตั้ง Scripting Modules ได้อย่างไร?

อันที่จริง Anypoint Studio มาพร้อมกับโมดูลการเขียนสคริปต์ หากคุณไม่พบโมดูลใน Mule Palette คุณสามารถเพิ่มโมดูลได้โดยใช้+Add Module. หลังจากเพิ่มเราสามารถใช้การดำเนินการโมดูลสคริปต์ในแอปพลิเคชัน Mule ของเรา

ตัวอย่างการใช้งาน

ตามที่กล่าวไว้เราต้องลากและวางโมดูลลงในพื้นที่ทำงานเพื่อสร้างพื้นที่ทำงานและใช้ในแอปพลิเคชันของเรา ต่อไปนี้เป็นตัวอย่างของมัน -

เรารู้วิธีกำหนดค่าคอมโพเนนต์ HTTP Listener แล้ว ดังนั้นเราจะพูดคุยเกี่ยวกับการกำหนดค่าโมดูลการเขียนสคริปต์ เราจำเป็นต้องทำตามขั้นตอนที่เขียนด้านล่างเพื่อกำหนดค่าโมดูลการเขียนสคริปต์ -

Step 1

ค้นหาโมดูล Scripting จาก Mule Palette แล้วลากไฟล์ EXECUTE การทำงานของโมดูลการเขียนสคริปต์ในโฟลว์ของคุณตามที่แสดงด้านบน

Step 2

ตอนนี้เปิดแท็บ Execute configuration โดยดับเบิลคลิกที่เดียวกัน

Step 3

ภายใต้ General เราจำเป็นต้องระบุรหัสในไฟล์ Code text window ดังแสดงด้านล่าง -

Step 4

ในที่สุดเราต้องเลือกไฟล์ Engineจากคอมโพเนนต์การดำเนินการ รายการเครื่องยนต์มีดังต่อไปนี้ -

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

XML ของตัวอย่างการดำเนินการข้างต้นในตัวแก้ไข Configuration XML มีดังต่อไปนี้ -

<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>

แหล่งที่มาของข้อความ

Mule 4 มีรูปแบบที่เรียบง่ายกว่าข้อความ Mule 3 ทำให้ง่ายต่อการทำงานกับข้อมูลในลักษณะที่สอดคล้องกันระหว่างตัวเชื่อมต่อโดยไม่ต้องเขียนทับข้อมูล ในรูปแบบข้อความ Mule 4 แต่ละเหตุการณ์ Mule ประกอบด้วยสองสิ่ง:a message and variables associated with it.

ข้อความ Mule กำลังมี payload และแอตทริบิวต์โดยที่แอตทริบิวต์ส่วนใหญ่เป็นข้อมูลเมตาเช่นขนาดไฟล์

และตัวแปรจะเก็บข้อมูลผู้ใช้ตามอำเภอใจเช่นผลการดำเนินการค่าเสริมเป็นต้น

ขาเข้า

คุณสมบัติขาเข้าใน Mule 3 ตอนนี้กลายเป็นแอตทริบิวต์ใน Mule 4 ดังที่เราทราบว่าคุณสมบัติขาเข้าเก็บข้อมูลเพิ่มเติมเกี่ยวกับน้ำหนักบรรทุกที่ได้รับจากแหล่งที่มาของข้อความ แต่ตอนนี้ใน Mule 4 ทำได้ด้วยความช่วยเหลือของแอตทริบิวต์ คุณสมบัติมีข้อดีดังต่อไปนี้ -

  • ด้วยความช่วยเหลือของแอตทริบิวต์เราสามารถดูได้อย่างง่ายดายว่ามีข้อมูลใดบ้างเนื่องจากแอตทริบิวต์ถูกพิมพ์อย่างรุนแรง

  • เราสามารถเข้าถึงข้อมูลที่อยู่ในแอตทริบิวต์ได้อย่างง่ายดาย

ต่อไปนี้เป็นตัวอย่างของข้อความทั่วไปใน Mule 4 -

ขาออก

คุณสมบัติขาออกใน Mule 3 ต้องถูกระบุอย่างชัดเจนโดยตัวเชื่อมต่อ Mule และการขนส่งเพื่อส่งข้อมูลเพิ่มเติม แต่ใน Mule 4 แต่ละรายการสามารถตั้งค่าแยกกันได้โดยใช้นิพจน์ DataWeave สำหรับแต่ละรายการ ไม่ก่อให้เกิดผลข้างเคียงใด ๆ ในกระแสหลัก

ตัวอย่างเช่นด้านล่างนิพจน์ DataWeave จะดำเนินการร้องขอ HTTP และสร้างส่วนหัวและพารามิเตอร์การสืบค้นโดยไม่จำเป็นต้องตั้งค่าคุณสมบัติข้อความ สิ่งนี้แสดงในรหัสด้านล่าง -

<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>

ตัวประมวลผลข้อความ

เมื่อ Mule ได้รับข้อความจากแหล่งข้อความการทำงานของตัวประมวลผลข้อความจะเริ่มขึ้น Mule ใช้ตัวประมวลผลข้อความอย่างน้อยหนึ่งตัวเพื่อประมวลผลข้อความผ่านโฟลว์ ภารกิจหลักของตัวประมวลผลข้อความคือการแปลงกรองเสริมสร้างและประมวลผลข้อความเมื่อผ่านโฟลว์ล่อ

การจัดหมวดหมู่ของ Mule Processor

ต่อไปนี้เป็นหมวดหมู่ของ Mule Processor ตามฟังก์ชัน -

  • Connectors- ตัวประมวลผลข้อความเหล่านี้ส่งและรับข้อมูล นอกจากนี้ยังเชื่อมต่อข้อมูลเข้ากับแหล่งข้อมูลภายนอกผ่านโปรโตคอลมาตรฐานหรือ API ของบุคคลที่สาม

  • Components - ตัวประมวลผลข้อความเหล่านี้มีความยืดหยุ่นตามธรรมชาติและดำเนินการตามตรรกะทางธุรกิจที่นำไปใช้ในภาษาต่างๆเช่น Java, JavaScript, Groovy, Python หรือ Ruby

  • Filters - พวกเขากรองข้อความและอนุญาตให้มีการประมวลผลเฉพาะข้อความต่อไปในขั้นตอนตามเกณฑ์ที่กำหนด

  • Routers - ตัวประมวลผลข้อความนี้ใช้เพื่อควบคุมการไหลของข้อความไปยังเส้นทางการเรียงลำดับใหม่หรือการแยก

  • Scopes - โดยทั่วไปแล้วจะห่อตัวอย่างโค้ดเพื่อจุดประสงค์ในการกำหนดพฤติกรรมที่ละเอียดภายในโฟลว์

  • Transformers - บทบาทของหม้อแปลงคือการแปลงประเภทน้ำหนักบรรทุกข้อความและรูปแบบข้อมูลเพื่ออำนวยความสะดวกในการสื่อสารระหว่างระบบ

  • Business Events - โดยทั่วไปแล้วจะจับข้อมูลที่เกี่ยวข้องกับตัวบ่งชี้ประสิทธิภาพหลัก

  • Exception strategies - ตัวประมวลผลข้อความเหล่านี้จัดการข้อผิดพลาดทุกประเภทที่เกิดขึ้นระหว่างการประมวลผลข้อความ