我们有一些SolrCloud
最初,我们使用hostfile条目来识别动物园管理员,但鉴于AWS的性质,确保主机中的条目是最新的变得非常乏味。因此,我们现在通过Route53使用自定义DNS来识别动物园管理员。但我们仍在单独识别ZooKeeper节点,因此,作为一个示例,我们目前在启动客户机时指定了这一点:
-Dsolr.zookeeperHosts='zk-1.mydomain.com:2181,zk-2.mydomain.com:2181,zk-3.mydomain.com:2181'
主机zk-1.mydomain.com
等只是对每个ZooKeeper EC2实例的DNS进行CNAME。因此,现在如果Amazon强制我们重新启动ZooKeeper,从而使其获得新的IP地址,客户端最终将在DNS记录更新时获得新IP。
我的问题是想知道是否有更好的方法来处理这个问题。假设我们想在混合中添加额外的ZooKeepers,那么我们的仲裁是5个节点,而不是3个节点。(我真的很想这样做。)有一个包含所有动物园管理员的DNS循环记录并将该DNS名称传递给客户端是否更有意义?
例如,设置DNS记录zookeepers。mydomain。com作为指向zk-1的CNAME。mydomain。com,zk-2。mydomain。com和zk mydomain。com,然后简单地将其传递给我的客户:
-Dsolr.zookeeperHosts='zookeepers.mydomain.com:2181'
这样,当我将新的ZooKeepers添加到集群时,我可以简单地将另一条CNAME记录添加到zookeepers.mydomain.com
,而不需要担心更新所有客户端上的配置。
Solr客户端是否足够聪明,可以使用包含多个记录的DNS记录?具体来说,如果一个动物园管理员碰巧停机,而客户端尝试连接到它,客户端是否会再次查询DNS以获取下一个动物园管理员的IP并尝试与之通信?
使用CNAME是一个好主意,但我建议使用弹性IP扩展它,以使其更健壮,DNS更改需要时间来传播弹性IP的响应性更高。
然而,我有一些警告,在我们的调查中,我们试图探索如果使用负载平衡器而不是使用主机名/IP,Zookeeper/Solr将如何反应,并将其交给Solr不要这样做!似乎内部标识了每个solr。zookeeperHosts条目作为zookeeper服务器,当其中一个由于某种原因出现故障时,它将使其无效,因为从Solr的角度来看,没有任何其他zookeeper服务器,所以Solr不会关闭。我猜你也会有同样的问题,因为你有一张有几个IP的唱片。
最好的解决方案是尽可能地自动化。在以前的项目中,我使用chef收集所有zookeeper节点,并在每个solr节点上动态设置IP/主机名。如果chef对您来说有很大的改变,那么可以使用EC2标记和一些聪明的bash脚本来完成。您可以使用标记标记zookeeper实例,并像这样使用aws cli获取IP列表。
ec2-describe-instances --filter "tag-key=Zookeeper"
问题内容: 我有第三方WSDL,我需要用Java编写代码以使Web服务客户端调用第三方WSDL中的操作。现在,我已经使用Axis的WSDL2JAVA工具生成了客户端存根,并使用XMLbeans进行了数据绑定。 进行此JAVA的最佳方法是什么? 我阅读了有关SAAJ的文章,看起来这种方法会更细化吗? 除了使用WSDL2Java工具之外,还有什么其他方法可以生成代码。也许wsimport还有其他选择。
主要内容:1.概述,2.接口描述1.概述 在 dubbo-remoting-zookeeper 模块,实现了 Dubbo 对 Zookeeper 客户端的封装。在该模块中,抽象了通用的 Zookeeper Client API 接口,实现了两种 Zookeeper Client 库的接入: 基于 Apache Curator 实现: <dubbo:registry address=“zookeeper://127.0.0.1:2
一、基本依赖 Curator 是 Netflix 公司开源的一个 Zookeeper 客户端,目前由 Apache 进行维护。与 Zookeeper 原生客户端相比,Curator 的抽象层次更高,功能也更加丰富,是目前 Zookeeper 使用范围最广的 Java 客户端。本篇文章主要讲解其基本使用,项目采用 Maven 构建,以单元测试的方法进行讲解,相关依赖如下: <dependencies
我真的很难理解使用Node.js将ffmpeg的实时输出流到HTML5客户端的最佳方法,因为有很多变量在起作用,而我在这方面没有太多经验,我花了很多时间尝试不同的组合。 我的用例是: 1)IP视频摄像机RTSP H.264流由FFMPEG拾取,并使用节点中的以下FFMPEG设置重新多路复用到mp4容器中,输出到stdout。这只在初始客户端连接上运行,以便部分内容请求不会再次尝试生成FFMPEG。
问题内容: 我将要构建一个将使用RESTful Web服务的Android应用程序。我不想自己编写REST客户端,因为我希望它尽可能有效和稳定(这是我第一次使用REST)。 我可以在项目中使用任何(免费)适用于Android / Java的框架或实用程序吗? 问题答案: Restlet是一个出色的REST框架,并且具有Android版本。
问题内容: 什么是最好的实践方式得到一个唯一的机器ID 的架构? 除了地址,还有什么好办法吗? 问题答案: 根据您的内核,可以通过sysfs获得DMI信息。试试那些: 或使用工具