Java ActiveMQ ialah perisian tengah pemesejan sumber terbuka yang popular yang digunakan secara meluas dalam pembangunan aplikasi perusahaan. Apabila menggunakan ActiveMQ, adalah penting untuk memahami beberapa konsep utama. Dalam artikel ini, editor PHP Apple memperkenalkan 20 konsep Java ActiveMQ yang mesti diketahui untuk membantu anda memahami dan menggunakan perisian tengah mesej yang berkuasa ini dengan lebih baik. Dengan memperoleh pemahaman yang mendalam tentang konsep ini, anda akan dapat memanfaatkan ActiveMQ dengan lebih cekap untuk membina sistem pemesejan yang stabil dan boleh dipercayai.
AktifMQ Komponen teras yang bertanggungjawab untuk memproses semua aliran mesej. Ia menyediakan platform di mana aplikasi boleh menyambung, menghantar dan menerima mesej.
BrokerService broker = new BrokerService(); broker.addConnector("tcp://0.0.0.0:61616"); broker.start();
2. Barisan Mesej
Konsep logik untuk menyimpan mesej dalam ActiveMQ Bekas. Baris Gilir Mesej boleh menerima mesej daripada berbilang pengeluar dan menghantarnya kepada berbilang pengguna.
Queue queue = session.createQueue("my-queue");
3. Tema
Terbitkan/langgan model, pengeluar mesej menerbitkan mesej kepada topik, dan pengguna yang berminat boleh melanggan topik tersebut dan menerima semua mesej yang diterbitkan.
Topic topic = session.createTopic("my-topic");
4 Sesi untuk komunikasi antara aplikasi dan broker ActiveMQ. Sesi membolehkan aplikasi menghantar dan menerima mesej, serta mengurus
transaksi.
Session session = broker.createSession();
Aplikasi yang menghantar mesej ke baris gilir mesej atau topik.
MessageProducer producer = session.createProducer(queue);
Aplikasi yang menerima mesej daripada baris gilir mesej atau topik.
MessageConsumer consumer = session.createConsumer(queue);
Satu set operasi, sama ada semua dilaksanakan atau semuanya ditarik balik. ActiveMQ menyokong transaksi untuk memastikan pemesejan yang boleh dipercayai dan konsisten.
session.begin(); producer.send(message); session.commit();
8. Ketahanan
Kegigihan mesej menentukan sama ada mesej akan dikekalkan apabila broker dimulakan semula atau gagal. Mesej berterusan akan dikekalkan pada cakera, manakala mesej tidak berterusan akan hilang.
Message message = session.createTextMessage("Hello world"); message.setPersistent(true); producer.send(message);
9 Membenarkan mesej daripada satu broker ActiveMQ untuk dimajukan kepada broker lain. Jambatan boleh digunakan untuk menyambungkan berbilang kejadian ActiveMQ.
<bridge destination="forward.my-topic" source="activemq:topic:my-topic" brokerName="broker-b" />
Membenarkan menyambungkan dua kejadian ActiveMQ dalam
JVMyang sama. Ini berguna untuk
mengujiatau mencipta sistem teragih dalam persekitaran yang berdiri sendiri.
BrokerService brokerA = new BrokerService(); BrokerService brokerB = new BrokerService(); brokerA.setVmConnectorURI(brokerB.getVmConnectorURI()); brokerA.setBrokerName("broker-a"); brokerB.setBrokerName("broker-b"); brokerA.start(); brokerB.start();
11 ActiveMQ menyediakan mekanisme untuk melanjutkan fungsinya. Pemalam boleh menambah ciri baharu seperti storan mesej, keselamatan atau
pemantauan.
<plugins>
<journalPlugin>
<journalDirectory>/tmp/journal</journalDirectory>
</journalPlugin>
</plugins>
ActiveMQ membolehkan mesej ditukar antara format mesej yang berbeza. Penukar boleh digunakan untuk menukar XML kepada JSON, atau mesej teks kepada mesej binari.
MessageConverter converter = session.getMessageConverter();
Message message = converter.toMessage("Hello world", session);
producer.send(message);
Pastikan ketersediaan sekiranya berlaku kegagalan broker mesej dengan menggunakan broker failover atau
pengelompokan. Apabila ejen utama gagal, ejen sandaran mengambil alih.
<broker cluster="my-cluster">
<networkConnectors>
<networkConnector name="tcp" uri="tcp://0.0.0.0:61616" />
</networkConnectors>
</broker>
Meningkatkan kebolehskalaan dan prestasi dengan mengagihkan beban mesej merentasi berbilang broker. ActiveMQ menyokong strategi round robin atau saiz mesej
pengimbangan muatan.
<broker loadBalancingPolicy="round-robin" />
Memantau broker ActiveMQ adalah penting untuk memastikan operasi dan prestasinya yang betul. ActiveMQ menyediakan papan pemuka JMX dan REST
api untuk memantau status broker dan aliran mesej.
import org.apache.activemq.broker.jmx.BrokerViewMBean;
BrokerViewMBean brokerView = (BrokerViewMBean) MBeanServerFactory.createMBeanServer().getObjectInstance(new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost"));
System.out.println("Message count: " + brokerView.getQueueSize());
ActiveMQ menyediakan pelbagai mekanisme keselamatan, termasuk SSL, SASL dan senarai kawalan akses.
<securitySettings> <sslProtocols>TLSv1,TLSv1.1,TLSv1.2</sslProtocols> <requireCredentialsForAllConnections>true</requireCredentialsForAllConnections> <audit>true</audit> </securitySettings>
17. Perjanjian
ActiveMQ menyokong pelbagai protokol pemesejan, termasuk AMQP, JMS dan STOMP.
BrokerService broker = new BrokerService();
broker.setBrokerName("my-broker");
broker.addConnector("stomp://0.0.0.0:61613");
broker.start();
MQtT (Message Qeuing Telemetry Transport) ialah protokol ringan yang dibangunkan
khusus untuk perantiInternet of Things
(IoT). ActiveMQ menyokong MQTT, menjadikannya ideal untuk menyambungkan peranti IoT dan sistem perusahaan.
ActiveMQ menyediakan konsol WEB yang membolehkan pentadbir memantau status broker, mengurus baris gilir dan topik serta mengurus pemalam.
Penyelesaian masalah ActiveMQ melibatkan pemeriksaan fail, GUI status dan papan pemuka JMX. Dengan menganalisis mesej ralat dan log dengan teliti, masalah boleh didiagnosis dan diselesaikan dengan cepat. Atas ialah kandungan terperinci 20 konsep yang mesti diketahui untuk Java ActiveMQ. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!<mqttConnectors>
<mqttConnector name="mqtt" persist="true"
uri="mqtt://0.0.0.0:1883" />
</mqttConnectors>