小编gra*_*tii的帖子

将现有JNDI HornetQ服务作为HA的步骤?

TL; DR

使用HornetQ设置配置HA-JNDI服务的步骤是什么?我相信文档有点分散.我在这里阅读了文档,但似乎没有详细说明.

更长的版本:

所以我们有一个HornetQ JMS设置和JNDI.我们已经说了5台服务器,每台服务器运行带有JNDI服务的HornetQ JMS主实例.在这5台服务器中的每台服务器上,我们还有一台运行其他HornetQ主机的从机.

为了显示:

Server A - HornetQa_master, JNDI, HornetQb_slave
Server B - HornetQb_master, JNDI, HornetQc_slave
Server C - HornetQc_master, JNDI, HornetQd_slave
Server D - HornetQd_master, JNDI, HornetQe_slave
Server E - HornetQe_master, JNDI, HornetQa_slave
Run Code Online (Sandbox Code Playgroud)

这些HornetQ服务器中的每一个都充当我们各种后端需求的中间件,因此这意味着5个服务器,5个HornetQ主实例,5个HornetQ从属实例和5个JNDI服务器.然而,这个设置的问题是,如果服务器主机(不仅仅是进程,主机本身),说A发生故障,理想情况下服务应该回退到运行在服务器E上的HornetQ,后者托管A的HornetQ从站.但是,要继续作为HornetQ master,HornetQa_slave需要与在服务器A上运行的JNDI进程通信(我假设要复制消息).由于主机A本身已关闭,因此在E上运行的HornetQa_slave无法与A上的JNDI通信,因此无法作为主进程恢复.

如果JNDI服务高度可用,则从属HornetQ进程可以按预期恢复为主服务器.任何人都可以指向文档或简单说明我们如何将现有设置转换为HA-JNDI?对于它的价值,我已经阅读了多个来源,但它似乎没有详细说明如何配置HA-JNDI.如果您需要有关我们当前设置的更多信息,请与我们联系.

谢谢

java jboss jndi hornetq

177
推荐指数
1
解决办法
2977
查看次数

Solr 4.2 - 什么是_version_field?

我在solr配置中遇到错误.

Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:806)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:619)
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:1021)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1051)
        ... 10 more
Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)
        at org.apache.solr.update.UpdateLog.init(UpdateLog.java:245)
        at org.apache.solr.update.UpdateHandler.initLog(UpdateHandler.java:84)
        at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:134)
        at org.apache.solr.update.DirectUpdateHandler2.<init>(DirectUpdateHandler2.java:95)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:526)
        at org.apache.solr.core.SolrCore.createUpdateHandler(SolrCore.java:597)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:790)
        ... 13 more …
Run Code Online (Sandbox Code Playgroud)

solr solr4

14
推荐指数
2
解决办法
1万
查看次数

grpc-java的ServerBuilder中执行程序的确切用法是什么?它只是执行处理程序方法吗?

grpc-java在ServerBuilder其中使用了一个执行程序,如果没有由该builder.executor()方法定义,则默认情况下使用静态缓存线程池.这个遗嘱执行人的确切用途是什么?它只是执行处理程序方法还是执行"其他"操作?

另外,grpc如何定义网络工作者EventLoopGroup?具体来说,我想知道如何将工作线程分配给此工作组.是否有线程数的默认值,或者它是机器核心数的函数?另外,关于上述问题,这些网络工作者如何与遗嘱执行人合作?他们只处理I/O - 读取和写入通道吗?

编辑:Netty,默认创建(2*个核心数)工作线程.

java multithreading netty grpc grpc-java

13
推荐指数
1
解决办法
5048
查看次数

Java:如何在Java中将File对象转换为String对象?

可能重复:
如何从文件内容创建Java String

我有一个html文件,我想用它来提取信息.为此,我正在使用Jsoup.现在使用Jsoup,我需要将html文件转换为字符串.我怎样才能做到这一点?

File myhtml = new File("D:\\path\\report.html")';
Run Code Online (Sandbox Code Playgroud)

现在,我想要一个包含html文件内容的String对象.

java

10
推荐指数
3
解决办法
10万
查看次数

协议缓冲区如何比XML和JSON更快?

我最近开始在工作中阅读和使用gRPC.gRPC在内部使用协议缓冲区作为其IDL,我随时随地读取协议缓冲区执行得更好,尤其是与JSON和XML相比更快.

我不明白的是 - 他们是怎么做到的?与XML和JSON相比,协议缓冲区中的哪些设计实际上使它们的执行速度更快?

json protocol-buffers grpc

10
推荐指数
1
解决办法
1339
查看次数

Python的select模块中的select()函数如何正常工作?

我正在用Python编写面向网络的应用程序.我之前曾使用过阻塞套接字,但在更好地理解了需求和概念后,我想使用非阻塞套接字编写应用程序,从而编写一个事件驱动的服务器.

据我所知,Python中select模块中的函数用于方便地查看哪个socket对我们感兴趣等等.为此,我基本上试图翻阅事件驱动服务器的几个例子,我遇到过这个:

"""
An echo server that uses select to handle multiple clients at a time.
Entering any line of input at the terminal will exit the server.
"""

import select
import socket
import sys

host = ''
port = 50000
backlog = 5
size = 1024
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host,port))
server.listen(backlog)
input = [server,sys.stdin]
running = 1
while running:
    inputready,outputready,exceptready = select.select(input,[],[])

    for s in inputready:

        if s == server:
            # handle the server socket
            client, address = …
Run Code Online (Sandbox Code Playgroud)

python sockets select network-programming

8
推荐指数
1
解决办法
1万
查看次数

在最新的MongoDB java驱动程序中使用createIndex()时,索引已存在且具有不同的选项错误

所以我将MongoDB java驱动程序升级到2.12.4,其中ensureIndex()不推荐使用该方法.我使用的createIndex()方法似乎与文档似乎相似的功能ensureIndex().但是,当我在生产中使用此方法时,我收到以下错误 -

{ "serverUsed" : "X.X.X.X" , "ok" : 0.0 , "errmsg" : "Index with name: <index_name> already exists with different options" , "code" : 85}
Run Code Online (Sandbox Code Playgroud)

为什么会这样?任何人都可以帮我解决这个问题吗?

谢谢

java indexing mongodb mongodb-java

7
推荐指数
2
解决办法
8713
查看次数

什么是Solr中的docValues?我应该什么时候使用它们?

所以,我已阅读,试图解释什么docValues"在Solr的多个来源,但我似乎不明白的时候,我应该使用它们,特别是关系到索引存储VS领域.有人可以请点亮一下吗?

lucene solr

7
推荐指数
3
解决办法
3005
查看次数

我怎样才能在PyQt4中杀掉一次QtCore.QTimer?

因此,在我的应用程序中,我创建一个单独的QtCore.QTimer对象,然后调用singleShot它上面的方法,在60秒后调用一个函数.现在,在任何给定的时间点,如果我需要再次调用singleShot它上面的方法并阻止前一个singleShot方法生效(这阻止它调用传递给它的调用者,如果第二次singleShot调用它之前前60秒),我需要做什么?我如何"杀死"前一个QTimer并完全忘记它并且只能使用当前的工作QTimer

有人可以帮我解决这个问题吗?

这里只是一个示例代码:

def main():
    q = QtCore.QTimer()
    q.singleShot(4000, print_hello)
    q.killTimer(id)     ##how can I get the value of 'id' so that print_hello() is not called before the end of the 4 seconds?

def print_hello():
    print 'hello'
Run Code Online (Sandbox Code Playgroud)

谢谢

python timer pyqt pyqt4 python-2.7

5
推荐指数
1
解决办法
8529
查看次数

如何通过卷将 Zookeeper 数据保存在 Docker 设置中?

因此,我使用官方 docker 镜像在 docker 上的本地环境中设置 Zookeeper 。现在,我想要的 Zookeeper 设置是能够通过将 Zookeeper 数据目录安装为容器内的卷来持久保存节点及其值。

这很简单,但令我困惑的是,Zookeeper 在容器内的数据目录位于,/data而数据日志目录位于/datalog。理想情况下,我希望 Zookeeper 除了数据日志目录之外,还能将节点和值保留在数据文件夹内。但是,我发现虽然数据日志目录中包含log.*文件中的数据,但数据目录中没有任何与我创建的测试节点相关的数据。

bash-4.4# pwd
/datalog/version-2
bash-4.4# ls
log.1  log.3  log.5  log.8


bash-4.4# pwd
/data/version-2
bash-4.4# ls
bash-4.4# 
Run Code Online (Sandbox Code Playgroud)

我的目标是通过我的 Zookeeper 服务实现的docker-compose.yml-

volumes:
  - zkdata:/datalog
Run Code Online (Sandbox Code Playgroud)

但这似乎违反直觉,我正在安装事务日志目录而不是实际的数据目录。Zookeeper 实际上如何以及在何处保存节点数据,以及如何将其正确安装为 Docker 容器中的卷?

我实际上可以将ZOO_DATA_LOG_DIR环境变量设置为/data并将其安装为 docker 卷,但我的问题实际上是关于为什么 Zookeeper 数据为空而数据日志目录不是。

docker apache-zookeeper

5
推荐指数
1
解决办法
5607
查看次数