Rumah Java javaTutorial  什么是消息松散耦合的异步通信过程?

 什么是消息松散耦合的异步通信过程?

Jun 28, 2017 am 09:38 AM
maklumat siri

什么是消息

松散耦合的异步通信过程

1. 面向消息的中间件(MOM): 消息发送者称为生产者; 存储消息的位置称为目的地; 接受消息的组件称为消费者

2. 消息模型: 
a. 点对点:目的地成为队列,消息只能被消费一次
b. 发布-订阅:目的地成为主体,消费者称为订阅者,消息能被任意数量消费

 

Java消息服务

1. JMS API:提供使用Java访问MOM(消息中间件)的统一标准方式

2. 开发消息生产者流程:
a. 使用依赖注入,获得连接工厂ConnectionFactory和目的地Destination对象
b. 使用连接工厂的createConnection打开连接Connection
c. 使用连接Connection的createSession创建会话Session并指定事务参数
d. 使用会话Session的createProducer创建货运队列Producer
e. 使用会话Session的createMessage创建消息Message并设置
f. 使用货运队列Producer的send发送消息
g. 释放资源
注意: 以上流程是基于JavaEE 6 的情况下, JavaEE 7 提供了更加简易的A开发流程

3. Message接口: 消息头, 消息属性, 消息体; 实现类: ObjectMessage传递对象, ByteMessage传递字节, MapMessage传递Map, StreamMessage传递流数据, TextMessage传递文字

 

消息驱动bean(MDB)

1. 优点:多线程,简化的消息代码

2. 设计原则: 
a. MDB类必须直接或间接实现消息监听器接口
b. 必须是具体的公开的,不能是final和抽象类
c. 必须是POJO,不能是另一个MDB的子类
d. 必须有无参的构造器
e. 不能有final方法
f. 不能抛出任何运行时异常,因为当抛出是MDB实例将被终止

3. 使用MDB开发消费者流程
a. 使用注解@MessageDriven把类标记为MDB并且指定MDB配置
b. 实现MessageListener接口, 并实现onMessage方法
c. 在onMessage中实现逻辑

4. @MessageDriven: 注解被注解的类为MDB, 该注解有3个参数, name指定MDB的名称, messageListenerInterface指定MDB实现的消息接口(可以直接在类上implements接口), activationConfig用于指定专有的配置属性

5. MessageLisener: 把MDB注册为消息消费者, 可根据不同场景实现不同监听器接口

6. ActivationConfigProperty: 配置消息系统的配置信息
a. destinationType: 通知容器该MDB监听的是队列还是主题
b. connectionFactoryJndiName: 指定用于创建MDB的JMS连接的连接工厂JDNI
c. destianName: 指定正在监听的目的地
d. acknowledgeMode: 指定JMS会话确认模式
e. subscriptionDurability: 用于设置为持久订阅者
f. messageSelector: 过滤消息

7. MDB生命周期:
a. 创建MDB实例并设置它们
b. 注入资源
c. 存放到受管理的池中
d. 当检测到消息到达时监听的目的地时,从池中取出空闲bean
e. 执行消息监听器方法,即onMessage方法
f. 当onMessage方法执行完毕,把空闲bean存回池中
g. 根据需求从池中撤销/销毁bean

8. 从MDB发送消息: 从JNDI注入队列, 连接工厂对象, 然后和Java消息一样的操作

9. 管理事务: 正常情况下, 在onMessage方法前开启事务, 方法结束时提交事务. 可以通过消息上下文对象rollback事务

MDB最佳实践

1. 根据使用情况选择是否使用MDB

2. 选择消息模型: 应在程序设计时决定是PTP还是发布-订阅, 但幸运的是, 两者间切换仅仅需要修改配置即可

3. 保持模块化: MDB的onMessage方法不应该处理业务逻辑, 业务逻辑应该放在对应的会话bean, 并注入MDB, MDB负责调用对应的会话bean

4. 根据场景充分使用过滤器或划分目的地

5. 选择消息类型: 根据使用场景选择传输时使用的消息类型

6. 警惕有毒消息: 无法消费但又回滚了的消息会陷入无限循环的接收/回滚中, 虽然个别厂商有自己的处理死消息的实现, 但是在编程的时候要注意

7. 配置MDB池额大小: 根据场景和需求配置

参考

EJB 3 in Action, Second Edition

Atas ialah kandungan terperinci  什么是消息松散耦合的异步通信过程?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah yang dimaksudkan apabila mesej telah dihantar tetapi ditolak oleh pihak lain? Apakah yang dimaksudkan apabila mesej telah dihantar tetapi ditolak oleh pihak lain? Mar 07, 2024 pm 03:59 PM

Mesej telah dihantar tetapi ditolak oleh pihak lain Ini bermakna maklumat yang dihantar telah berjaya dihantar daripada peranti, tetapi atas sebab tertentu, pihak lain tidak menerima mesej tersebut. Secara lebih khusus, ini biasanya kerana pihak lain telah menetapkan kebenaran tertentu atau mengambil tindakan tertentu, yang menghalang maklumat anda daripada diterima secara normal.

iOS 17: Cara menggunakan emoji sebagai pelekat dalam Messages iOS 17: Cara menggunakan emoji sebagai pelekat dalam Messages Sep 18, 2023 pm 05:13 PM

Dalam iOS17, Apple telah menambah beberapa ciri baharu pada apl Mesejnya untuk menjadikan komunikasi dengan pengguna Apple lain lebih kreatif dan menyeronokkan. Salah satu cirinya ialah keupayaan untuk menggunakan emoji sebagai pelekat. Pelekat telah wujud dalam apl Mesej selama bertahun-tahun, tetapi setakat ini, ia tidak banyak berubah. Ini kerana dalam iOS17, Apple menganggap semua emoji standard sebagai pelekat, membolehkan ia digunakan dengan cara yang sama seperti pelekat sebenar. Ini pada asasnya bermakna anda tidak lagi terhad untuk memasukkannya ke dalam perbualan. Kini anda juga boleh menyeretnya ke mana-mana sahaja pada gelembung mesej. Anda juga boleh menyusunnya di atas satu sama lain untuk mencipta adegan emoji kecil. Langkah berikut menunjukkan kepada anda cara ia berfungsi dalam iOS17

Cara meleret ke kanan dan membalas dengan cepat dalam iMessage pada iOS 17 Cara meleret ke kanan dan membalas dengan cepat dalam iMessage pada iOS 17 Sep 20, 2023 am 10:45 AM

Cara Menggunakan Leret untuk Membalas dalam iMessages pada iPhone Nota: Ciri Leret untuk Membalas hanya berfungsi dengan perbualan iMessage dalam iOS 17, bukan perbualan SMS biasa dalam apl Messages. Buka apl Mesej pada iPhone anda. Kemudian, pergi ke perbualan iMessage dan hanya leret ke kanan pada iMessage yang ingin anda balas. Setelah ini dilakukan, iMessage yang dipilih akan menjadi fokus manakala semua mesej lain akan kabur di latar belakang. Anda akan melihat kotak teks untuk menaip balasan dan ikon "+" untuk mengakses apl iMessage seperti Daftar Masuk, Tempat, Pelekat, Foto dan banyak lagi. Hanya masukkan mesej anda,

Nama kod penuh siri Xiaomi 15 didedahkan: Dada, Haotian, Xuanyuan Nama kod penuh siri Xiaomi 15 didedahkan: Dada, Haotian, Xuanyuan Aug 22, 2024 pm 06:47 PM

Siri Xiaomi Mi 15 dijangka akan dikeluarkan secara rasmi pada bulan Oktober, dan nama kod siri penuhnya telah didedahkan dalam pangkalan kod MiCode media asing. Antaranya, perdana Xiaomi Mi 15 Ultra diberi nama kod "Xuanyuan" (bermaksud "Xuanyuan"). Nama ini berasal daripada Maharaja Kuning dalam mitologi Cina, yang melambangkan bangsawan. Xiaomi 15 diberi nama kod "Dada", manakala Xiaomi 15Pro dinamakan "Haotian" (bermaksud "Haotian"). Nama kod dalaman Xiaomi Mi 15S Pro ialah "dijun", yang merujuk kepada Maharaja Jun, tuhan pencipta "The Classic of Mountains and Seas". Sarung siri Xiaomi 15Ultra

Bagaimana untuk mengedit mesej pada iPhone Bagaimana untuk mengedit mesej pada iPhone Dec 18, 2023 pm 02:13 PM

Apl Mesej asli pada iPhone membolehkan anda mengedit teks yang dihantar dengan mudah. Dengan cara ini, anda boleh membetulkan kesilapan, tanda baca dan juga frasa/perkataan yang salah secara automatik yang mungkin telah digunakan pada teks anda. Dalam artikel ini, kita akan belajar cara mengedit mesej pada iPhone. Cara Mengedit Mesej pada iPhone Diperlukan: iPhone menjalankan iOS16 atau lebih tinggi. Anda hanya boleh mengedit teks iMessage pada apl Messages, dan kemudian hanya dalam masa 15 minit selepas menghantar teks asal. Teks bukan iMessage tidak disokong, jadi ia tidak boleh diambil atau diedit. Lancarkan apl Mesej pada iPhone anda. Dalam Mesej, pilih perbualan dari mana anda ingin mengedit mesej

Masa terbaik untuk membeli siri Huawei Mate 60, penghapusan AI baharu + naik taraf imej, dan nikmati promosi musim luruh Masa terbaik untuk membeli siri Huawei Mate 60, penghapusan AI baharu + naik taraf imej, dan nikmati promosi musim luruh Aug 29, 2024 pm 03:33 PM

Sejak siri Huawei Mate60 mula dijual tahun lepas, saya secara peribadi telah menggunakan Mate60Pro sebagai telefon utama saya. Dalam hampir setahun, Huawei Mate60Pro telah melalui pelbagai peningkatan OTA, dan keseluruhan pengalaman telah dipertingkatkan dengan ketara, memberikan orang perasaan sentiasa baharu. Sebagai contoh, baru-baru ini, siri Huawei Mate60 sekali lagi menerima peningkatan besar dalam keupayaan pengimejan. Yang pertama ialah fungsi penghapusan AI baharu, yang boleh menghapuskan orang yang lalu-lalang dan serpihan secara bijak dan mengisi kawasan kosong secara automatik, kedua, ketepatan warna dan kejelasan telefoto kamera utama telah dinaik taraf dengan ketara. Memandangkan ia adalah musim kembali ke sekolah, siri Huawei Mate60 juga telah melancarkan promosi musim luruh: anda boleh menikmati diskaun sehingga 800 yuan apabila membeli telefon, dan harga permulaan serendah 4,999 yuan. Produk yang biasa digunakan dan selalunya baru dengan nilai yang hebat

Mesej telah dihantar tetapi telah ditolak oleh pihak lain Adakah saya patut menyekatnya atau memadamnya? Mesej telah dihantar tetapi telah ditolak oleh pihak lain Adakah saya patut menyekatnya atau memadamnya? Mar 12, 2024 pm 02:41 PM

1. Ditambah pada senarai hitam: Jika mesej telah dihantar tetapi ditolak oleh pihak yang satu lagi, ia biasanya disenaraihitamkan Pada masa ini, anda tidak akan dapat menghantar mesej kepada pihak yang satu lagi dan pihak yang satu lagi tidak akan dapat menerima mesej anda. 2. Masalah rangkaian: Jika keadaan rangkaian penerima kurang baik atau terdapat kegagalan rangkaian, mesej mungkin tidak berjaya diterima. Pada ketika ini, anda boleh cuba menunggu sehingga rangkaian kembali normal sebelum menghantar mesej semula. 3. Pihak satu lagi telah menyediakan Jangan Ganggu: Jika penerima telah menyediakan Jangan Ganggu dalam WeChat, mesej penghantar tidak akan diingatkan atau dipaparkan dalam tempoh masa tertentu.

Bagaimana untuk memilih antara iPhone 15 dan iPhone 15 Pro? Sembilan perbezaan utama sekaligus Bagaimana untuk memilih antara iPhone 15 dan iPhone 15 Pro? Sembilan perbezaan utama sekaligus Sep 14, 2023 am 08:01 AM

iPhone15 dan iPhone15Pro dikeluarkan secara rasmi hari ini, bagaimanapun, sebagai model mewah, siri Pro bukan sahaja mempunyai harga yang lebih tinggi, tetapi juga mempunyai banyak fungsi eksklusif sebelum membeli, supaya tidak menemui beberapa masalah selepas membeli iPhone15 Fungsi ini hanya tersedia dalam siri Pro. Walaupun monitor dilengkapi dengan panel paparan yang sama, teknologi frekuensi kemas kini adaptif automatik ProMotion dan fungsi paparan sentiasa hidup masih eksklusif untuk siri Pro. Selebihnya siri iPhone 15 dan iPhone 15 Pro adalah sama dari segi resolusi, kontras, kecerahan puncak, dsb. Butang tindakan Butang tindakan kini merupakan reka bentuk eksklusif untuk siri iPhone 15 Pro, yang membolehkan pengguna memperibadikan

See all articles