我目前正在尝试找到一种解决方案,通过TCP持久地通过生产者提供数据。连接可能会长时间停机。
这是否意味着我需要在等待连接时实现自己的数据持久化形式?或者是否存在一些方法,例如故障转移,其中ActiveMQ可以等待连接重新连接,然后持久地传递消息。我目前的问题是,如果没有连接,我就无法创建生产者,因此在形成连接所需的时间内,我的消息无处可去。
使用我自己的持久性形式我没有问题,但我宁愿使用ActiveMQ提供的内置持久性。
我希望我的问题很明确。
答案 0 :(得分:1)
这是一个普遍关注的问题,可以通过几种方式解决。一种方法是您描述的方法,您自己存储数据并在连接恢复时发送数据。另一种经常使用的方法是使用embedded或本地代理来生成消息,并在本地代理和远程之间创建network connection。当连接断开时,嵌入式代理将存储消息,并且当代理之间的网络连接恢复时,本地可以将存储的消息转发到远程代理(中心和分支)。请记住,本地代理需要足够的存储空间来管理您希望在本地和远程代理之间的典型停机期间累积的消息数量。