- Đại diện Là kiến trúc Pipes-and-filter. Trong đó
+ Producers gửi message đến channel
+ Consumers nhận message từ channel
- Do đó message channel được tách riêng ra thành các components và cung cấp điểm thuận lợi cho cơ chế đánh chặn Interception và giám sát message
- Message channel có thể được khai báo theo 2 cách:
+ Point-to-point: Môi một consumer chỉ có thể nhận 1 message gửi đến từ channel
+ Publish/subscribers: Sẽ gửi broadcats message đến tất cả subrcibers
2. Pollable channel
- Là một buffering message trong queue. Ưu điểm của buffering là điều tiết message. Do đó ngăn chặn overload consumer.
- Nếu muốn có một channel mà trong đó consumer có thể poll các messages, có thể tạo channel với queue
- Ngay cả nếu channel có nhiều consumes, chỉ 1 trong các consumers se nhận 1 vài message được gửi đến từ channel. Có thể cấu hình hành đợi theo cách sau.
- Channel mặc định được gọi là channel trực tiếp. Nó cho phép gửi bất kỳ message đến một subcriber duy nhất. Do đó se bị blocking thread gửi cho đến khi message đến consumer.
- Message channel có thể được tùy chỉnh hơn nữa để giới hạn các message dựa trên kiểu dữ liệu và phạm vi
Là các components kết nối giữa Domain chính của bạn và hạ tầng spring integration. Đại diện cho Filter của kiến trúc pipes-and-filter.
Có các endpoints sau: Route, filter, splitter, aggegator, service-activator, channel-adapter,
- Do đó message channel được tách riêng ra thành các components và cung cấp điểm thuận lợi cho cơ chế đánh chặn Interception và giám sát message
- Message channel có thể được khai báo theo 2 cách:
+ Point-to-point: Môi một consumer chỉ có thể nhận 1 message gửi đến từ channel
+ Publish/subscribers: Sẽ gửi broadcats message đến tất cả subrcibers
<int:publish-subscribe-channel id="exampleChannel"/>
- Là một buffering message trong queue. Ưu điểm của buffering là điều tiết message. Do đó ngăn chặn overload consumer.
- Nếu muốn có một channel mà trong đó consumer có thể poll các messages, có thể tạo channel với queue
- Ngay cả nếu channel có nhiều consumes, chỉ 1 trong các consumers se nhận 1 vài message được gửi đến từ channel. Có thể cấu hình hành đợi theo cách sau.
<int:channel id="queueChannel" queue capacity="25" />
- Nếu muốn gửi message theo một sự ưu tiên. Mình có thể cấu hình một kênh ưu tiên(Giá trị ưu tiên được sử dụng để ưu tiên message). Tuy nhiên cung có thể sử dụng phép so sánh để tùy chỉnh sự ưu tiên.
<int:channel id="priorityChannel">
<int:priority-queue capacity="20"/>
</int:channel>
- Nếu muốn sử dụng channel với queue. Nhưng đồng thời cung muốn đảm bảo rằng một message trước được bàn giao cho consumer trước khi tiếp nhận message mới. Bạn cần tạo một rendezvous-channel. Khi đang gửi thread se blocked cho đến khi consumer nhận được message.
<int:channel id="rendezvousChannel">
<int:rendezvous-queue/>
</int:channel>
<int:channel id="directChannel"/>
- Channel trược tiếp cung có thể được cấu hình load-balancing và hô trợ dự phòng. Trong một số trường hợp bạn muốn chỉ có một kênh được đăng ký, nhưng đồng thời cung có thể được mở rộng. Trong trường hợp này spring-integration cho phép bạn định nghia một "task executor". Kênh này về cơ bản sẽ thành Executor channel. Channel này cho phép chọn phương pháp gửi mà không bị khóa.
<int:channel id="executorChannel">
<int:dispatcher task-executor="someExecutor"/>
</int:channel>
<int:channel id="numberChannel" datatype="java.lang.Number"/>
hoặc
<int:channel id="stringOrNumberChannel"
datatype="java.lang.String,java.lang.Number”/>
3. Message Endpoints:Là các components kết nối giữa Domain chính của bạn và hạ tầng spring integration. Đại diện cho Filter của kiến trúc pipes-and-filter.
Có các endpoints sau: Route, filter, splitter, aggegator, service-activator, channel-adapter,
Không có nhận xét nào:
Đăng nhận xét