Trong bài tutorial này, chúng ta sẽ tiến hành viết một chương trình Akka cơ bản để khởi tạo Actors và chuyển nhận message giữa các Actors.Trước hết chúng ta cần thêm dependency của Akka vào file pom.xml như sau:

Trong Akka, Actors được định nghĩa bằng cách extend “Actor” trait và implement hàm “receive”. Hàm “receive” này gồm các case statements quy định các message mà Actor có thể xử lý được. Đoạn code sau mô tả cách định nghĩa một BasicActor: Actor này khi nhận được message với dạng String sẽ hiển thị nội dung của message và tên của Actor gửi message đó (sử dụng sender().path.name) cũng như tên của Actor nhận được message (sử dụng self.path.name). Trong trường hợp Actor nhận được tin nhắn không phải định dạng String thì sẽ hiện thị cảnh báo “Received unknown message!!!”

Akka không cho phép người dùng tạo các actors một cách trực tiếp mà phải thông qua ActorSystem với hàm actorOf(props: Props) hoặc actorOf(props: Props, name: String) (các bạn tham khảo thêm về các thành phần của ActorSystem tại đây). props được dùng để cấu hình thuộc tính cho actor còn name là tên của actor cần tạo. Đoạn code sau mô tả việc tạo một actor với tên “TestActor” và tiến hành gửi một số message tới Actor này (ở đây, dấu “!” được sử dụng để gửi message. Đoạn code actor ! “Hello Akka” có thể hiểu là gửi một message với nội dung “Hello Akka” tới actor)

Chạy chương trình trên ta được kết quả sau(Lưu ý: khi sử dụng “!” hoặc tell() để gửi message thì mặc định, nếu message không được gửi từ một Actor thì sender sẽ là deadLetters. Ở đây message được gửi từ hàm main nên sender là deadLetters còn receiver là TestActor):

Như vậy, chúng ta đã hoàn thành việc viết một chương trình cở bản sử dụng Akka để định nghĩa các Actors, khởi tạo actors bằng ActorSystem và gửi tin nhắn giữa actors. Các bạn có thể tham khảo full code của chương trình dưới đây.

Tháng Một 13, 2019
ITechSeeker