2016-02-26 15 views
17

Chúng tôi đang sử dụng Apache Solr (3.1.0) để lập chỉ mục nhiều bài viết được viết cho nhiều trang web. Chúng ta có một thiết lập master/slave (cấu hình nhân bản ở phía dưới), nơi máy chủ 1 lập chỉ mục các bài báo và máy chủ 2 sao chép chỉ mục. Các nô lệ nên thăm dò ý kiến ​​tổng thể mỗi 60 giây, nhưng thay vào đó, chúng ta có thể thấy 10 đến 75 liên tiếp /replication cuộc gọi gần như mọi thời gian.Apache Solr: Slave sao chép 10 lần mỗi lần nó thăm dò (cam kết quá mức?)

Mỗi lõi Solr (${solr.core.name} trong cấu hình phụ) đại diện cho một trang web khác. Các cuộc gọi /replication mà tôi thấy hầu hết đều được gắn với trang web lớn nhất. Một trong những lõi chỉ có 1 cuộc gọi mỗi phút, và tôi đã có thể tái tạo điều này ở đó sau khi gọi update?commit=true một vài lần, do đó, điều này khiến tôi nghĩ rằng nó liên quan đến số lượng cam kết mà tổng thể thực hiện.

Vì vậy, câu hỏi của tôi là, làm cách nào để ngăn chặn nô lệ Solr sao chép chỉ mục hàng chục lần và buộc nó sao chép chỉ một lần mỗi phút? Tôi đã thử chơi với các tham số commitReserveDuration trong cấu hình chủ, nhưng tôi không thực sự thấy bất kỳ sự khác biệt.

thạc sĩ sao chép cấu hình:

<requestHandler name="/replication" class="solr.ReplicationHandler" > 
    <lst name="master"> 
    <str name="replicateAfter">commit</str> 
    <str name="replicateAfter">startup</str> 
    </lst> 
</requestHandler> 

nô lệ sao chép cấu hình:

<requestHandler name="/replication" class="solr.ReplicationHandler" > 
    <lst name="slave"> 
    <str name="masterUrl">http://${solr.master.server}/search/${solr.core.name}/replication</str> 
    <str name="pollInterval">00:00:60</str> 
    </lst> 
</requestHandler> 
+0

Tôi sẽ cố gắng vô hiệu hóa pollInterval (chỉ định không có pollInterval) và thực hiện sao chép bằng lệnh api được kích hoạt bởi một công việc cron. Nó có giúp được không? https://wiki.apache.org/solr/SolrReplication?action=AttachFile&do=get&target=replication.png –

+0

Cảm ơn bạn đã trả lời. Tôi đã thử điều này và gọi '/ replication? Command = fetchindex' một khi kích hoạt nhiều lệnh'/replication' trên master ... Tôi không thấy bất kỳ sự khác biệt nào giữa điều này và giữ pollInterval trong cấu hình. Thành thật mà nói, đây có thể là hành vi hoàn toàn bình thường, nhưng tôi không thể tìm thấy bất kỳ tài liệu nào mô tả nó. –

+0

Đó chỉ là ý tưởng để theo dõi vấn đề. Xin lỗi, tôi không thể giúp bạn thêm. –

Trả lời

1

trong cấu hình mà bạn chỉ định sao chép sau khi cam kết, vì vậy trong trường hợp nếu bạn đang phát hành cam kết từ mã rất thường xuyên sau đó nó sẽ kích hoạt sao chép, vì vậy tôi sẽ đề nghị thay đổi để tối ưu hóa thay vì cam kết. Điều này sẽ giải quyết vấn đề của bạn. Here là liên kết cung cấp thêm chi tiết về các cài đặt sao chép.

+0

Cảm ơn nhận xét của bạn. Khi tôi thay đổi cam kết để tối ưu hóa, các nô lệ dường như không đồng bộ với chủ trong 5 phút, đó là cách quá dài. Cảm ơn mặc dù, tôi sẽ cố gắng tìm một cách để gọi tối ưu hóa từ mã và xem nếu nó hoạt động. –

Các vấn đề liên quan