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.如果您需要有关我们当前设置的更多信息,请与我们联系.
谢谢
我在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) grpc-java在ServerBuilder其中使用了一个执行程序,如果没有由该builder.executor()方法定义,则默认情况下使用静态缓存线程池.这个遗嘱执行人的确切用途是什么?它只是执行处理程序方法还是执行"其他"操作?
另外,grpc如何定义网络工作者EventLoopGroup?具体来说,我想知道如何将工作线程分配给此工作组.是否有线程数的默认值,或者它是机器核心数的函数?另外,关于上述问题,这些网络工作者如何与遗嘱执行人合作?他们只处理I/O - 读取和写入通道吗?
编辑:Netty,默认创建(2*个核心数)工作线程.
可能重复:
如何从文件内容创建Java String
我有一个html文件,我想用它来提取信息.为此,我正在使用Jsoup.现在使用Jsoup,我需要将html文件转换为字符串.我怎样才能做到这一点?
File myhtml = new File("D:\\path\\report.html")';
Run Code Online (Sandbox Code Playgroud)
现在,我想要一个包含html文件内容的String对象.
我最近开始在工作中阅读和使用gRPC.gRPC在内部使用协议缓冲区作为其IDL,我随时随地读取协议缓冲区执行得更好,尤其是与JSON和XML相比更快.
我不明白的是 - 他们是怎么做到的?与XML和JSON相比,协议缓冲区中的哪些设计实际上使它们的执行速度更快?
我正在用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) 所以我将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)
为什么会这样?任何人都可以帮我解决这个问题吗?
谢谢
所以,我已阅读,试图解释什么docValues"在Solr的多个来源,但我似乎不明白的时候,我应该使用它们,特别是关系到索引存储VS领域.有人可以请点亮一下吗?
因此,在我的应用程序中,我创建一个单独的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)
谢谢
因此,我使用官方 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 数据为空而数据日志目录不是。