我一直在使用他们使用SolrCloud的系统上工作,这需要一个Zookeeper合奏,该合奏可以帮助“管理整个结构,以便可以正确地路由索引和搜索请求”(直接从Solr文档中获取)。
“管理”到底是什么?运行Zoor的计算机从Zookeeper集成中读取/写入哪些信息,什么数据 /配置/信息,为什么?solr在运行时是否更改过Zookeeper中的数据?还是一次配置“数据”,然后在SolrCloud主机上读取运行时?
从问题的角度来看,这是我与Zookeeper,Solr以及在许多方面与分布式系统的第一次接触。
我正在创建一个Laravel控制器,其中一个随机字符串生成器接口被注入其中一个方法.然后在AppServiceProvider中我正在注册一个实现.这很好用.
控制器使用随机字符串作为输入将数据保存到数据库.由于它是随机的,我无法测试它(使用MakesHttpRequests),如下所示:
$this->post('/api/v1/do_things', ['email' => $this->email])
->seeInDatabase('things', ['email' => $this->email, 'random' => 'abc123']);
Run Code Online (Sandbox Code Playgroud)
因为我不知道使用实际随机发生器时'abc123'会是什么.所以我创建了另一个随机接口的实现,它始终返回'abc123',所以我可以断言.
问题是:如何在测试时绑定到这个假发生器?我试着这样做
$this->app->bind('Random', 'TestableRandom');
Run Code Online (Sandbox Code Playgroud)
在测试之前,它仍然使用我在AppServiceProvider中注册的实际生成器.有任何想法吗?关于如何测试这样的事情我完全错了吗?
谢谢!