连接Artemis和Amazon MQ经纪人

我正在尝试将Apache Artemis代理与Amazon MQ代理连接以创建混合架构。我尝试过将activeMQ与Amazon MQ连接,并且可以通过使用broker.xml文件中的“网络连接器”来实现它,并且效果很好。

为连接Amazon MQ和Artemis代理,我在Artemis broker.xml文件中添加了以下所示的“桥配置”和“连接器”

import 'package:flutter/material.dart';
import 'package:notifier_demo/components/TextFieldComp.dart';
import 'package:notifier_demo/models/user.dart';
import 'package:notifier_demo/notifier/UserNotifier.dart';
import 'package:provider/provider.dart';

    class HomeMaterialScreen extends StatefulWidget {
      @override
      _HomeMaterialScreenState createState() => _HomeMaterialScreenState();
    }

    class _HomeMaterialScreenState extends State<HomeMaterialScreen> {
      final _user = new User();
      final _formKey = GlobalKey<FormState>();
      @override
      Widget build(BuildContext context) {
        UserNotifier userNotifier= Provider.of<UserNotifier>(context);

        return Scaffold(
          appBar: AppBar(
            title: Text('Profile'),),body: Container(
            padding: const EdgeInsets.symmetric(vertical: 16,horizontal: 16),child: Builder(
                builder: (context) => Form(
                    key: _formKey,child: SingleChildScrollView(
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.stretch,children: <Widget>[
                            Expanded(
                             child:TextFieldComp(_user),Container(
                              padding: const EdgeInsets.fromLTRB(0,50,20),SwitchListTile(
                              title: const Text('Monthly newsletter'),value: _user.newsletter,onChanged: (bool val) =>
                                  setState(() => _user.newsletter = val),CheckboxListTile(
                              title: const Text('Coocking'),value: _user.passions[User.PassionCooking],onChanged: (val) => setState(
                                      () => _user.passions[User.PassionCooking] = val),CheckboxListTile(
                                title: const Text('Hiking'),value: _user.passions[User.PassionHiking],onChanged: (val) {
                                  setState(() {
                                    userNotifier.addUser(_user);
                                    _user.passions[User.PassionHiking] = val;
                                  });
                                }
                            ),Container(
                              padding: const EdgeInsets.symmetric(
                                  vertical: 16,child: RaisedButton(
                                onpressed: () {
                                  final form = _formKey.currentState;
                                  if (form.validate()) {
                                    form.save();
                                    _user.save();
                                    _showDialog(context);
                                  }
                                },)
                          ),SizedBox(

                              child: ListView.builder(
                                itemBuilder: (BuildContext context,int index)=>Text('PlaceHolder for List'),itemCount: userNotifier.userList.length,],))),);
      }

      _showDialog(BuildContext context) {
        Scaffold.of(context).showsnackBar(snackBar(
          content: Text('Submitting Form'),));
      }
    }

我遇到一个例外:找不到 ssl模式

所以我想了解连接Artemis和AmazonmQ代理是否与连接activemq和AmazonmQ代理相同(即通过更改broker.xml文件中的配置)?如果是这样,我需要对上述配置进行哪些更改?

li3029 回答:连接Artemis和Amazon MQ经纪人

ActiveMQ Classic(即5.x)和Amazon MQ使用OpenWire协议在代理网络中建立连接。 ActiveMQ Artemis支持使用OpenWire协议的客户端。但是,ActiveMQ Artemis使用其自己的“核心”协议进行桥接和群集。因此,您将无法建立从ActiveMQ Artemis到ActiveMQ Classic或Amazon MQ的桥梁,因为那些经纪人不了解Artemis的“核心”协议。

ssl模式由OpenWire客户端使用,而不是“核心”客户端。这就是为什么您不能使用它创建Artemis桥的原因。

如果您想将Artemis和Amazon MQ集成在一起,我会推荐诸如Camel之类的东西,甚至可能会推荐Artemis附带的JMS桥。您可以在Artemis随附的this example中看到这两个示例。

本文链接:https://www.f2er.com/3071225.html

大家都在问