Tôi đang cố gắng sử dụng Tìm kiếm Hibernate để tất cả các ghi vào chỉ mục Lucene từ các nút jgroupsLưu được gửi đến nút jgroupsMaster, và sau đó chỉ mục Lucene được chia sẻ trở lại nô lệ với Infinispan. Mọi thứ hoạt động cục bộ, nhưng trong khi các nút khám phá lẫn nhau trên EC2, chúng dường như không giao tiếp.Các nút JGroups trên EC2 không nói mặc dù chúng nhìn thấy nhau
Cả hai đều gửi cho nhau các thư là bạn còn sống.
# master output sample
86522 [LockBreakingService,localCache,archlinux-37498] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
86523 [LockBreakingService,LuceneIndexesLocking,archlinux-37498] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
87449 [Timer-4,luceneCluster,archlinux-37498] DEBUG org.jgroups.protocols.FD - sending are-you-alive msg to archlinux-57950 (own address=archlinux-37498)
87522 [LockBreakingService,localCache,archlinux-37498] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
87523 [LockBreakingService,LuceneIndexesLocking,archlinux-37498] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
# slave output sample
85499 [LockBreakingService,localCache,archlinux-57950] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
85503 [LockBreakingService,LuceneIndexesLocking,archlinux-57950] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
86190 [Timer-3,luceneCluster,archlinux-57950] DEBUG org.jgroups.protocols.FD - sending are-you-alive msg to archlinux-37498 (own address=archlinux-57950)
86499 [LockBreakingService,localCache,archlinux-57950] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
86503 [LockBreakingService,LuceneIndexesLocking,archlinux-57950] DEBUG org.infinispan.transaction.TransactionTable - About to cleanup completed transaction. Initial size is 0
Security Group
Tôi có hai lọ, một cho chủ, và một cho nô lệ, mà tôi đang chạy trên EC2 của riêng mình. Tôi có thể ping từng thể hiện, từ trường hợp kia, và cả hai đều trong cùng một nhóm bảo mật, trong đó xác định các quy tắc sau cho giao tiếp giữa bất kỳ máy nào trong nhóm của tôi.
ALL cổng cho ICMP 0-65.535 cho TCP 0-65.535 cho UDP
Vì vậy, tôi không nghĩ rằng đó là một vấn đề cấu hình nhóm an ninh.
hibernate.properties
# there is also a corresponding jgroupsSlave
hibernate.search.default.worker.backend=jgroupsMaster
hibernate.search.default.directory_provider = infinispan
hibernate.search.infinispan.configuration_resourcename=infinispan.xml
hibernate.search.default.data_cachename=localCache
hibernate.search.default.metadata_cachename=localCache
infinispan.xml
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"
xmlns="urn:infinispan:config:5.1">
<global>
<transport clusterName="luceneCluster" transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
<properties>
<property name="configurationFile" value="jgroups-ec2.xml" />
</properties>
</transport>
</global>
<default>
<invocationBatching enabled="true" />
<clustering mode="repl">
</clustering>
</default>
<!-- this is just so that each machine doesn't have to store the index
in memory -->
<namedCache name="localCache">
<loaders passivation="false" preload="true" shared="false">
<loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="true" ignoreModifications="false" purgeOnStartup="false">
<properties>
<property name="location" value="/tmp/infinspan/master" />
<!-- there is a corresponding /tmp/infinispan/slave in
the slave config -->
</properties>
</loader>
</loaders>
</namedCache>
</infinispan>
jgroups-ec2.xml
<config xmlns="urn:org:jgroups" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.2.xsd">
<TCP
bind_addr="${jgroups.tcp.address:127.0.0.1}"
bind_port="${jgroups.tcp.port:7800}"
loopback="true"
port_range="30"
recv_buf_size="20000000"
send_buf_size="640000"
max_bundle_size="64000"
max_bundle_timeout="30"
enable_bundling="true"
use_send_queues="true"
sock_conn_timeout="300"
enable_diagnostics="false"
bundler_type="old"
thread_pool.enabled="true"
thread_pool.min_threads="2"
thread_pool.max_threads="30"
thread_pool.keep_alive_time="60000"
thread_pool.queue_enabled="false"
thread_pool.queue_max_size="100"
thread_pool.rejection_policy="Discard"
oob_thread_pool.enabled="true"
oob_thread_pool.min_threads="2"
oob_thread_pool.max_threads="30"
oob_thread_pool.keep_alive_time="60000"
oob_thread_pool.queue_enabled="false"
oob_thread_pool.queue_max_size="100"
oob_thread_pool.rejection_policy="Discard"
/>
<S3_PING secret_access_key="removed_for_stackoverflow" access_key="removed_for_stackoverflow" location="jgroups_ping" />
<MERGE2 max_interval="30000"
min_interval="10000"/>
<FD_SOCK/>
<FD timeout="3000" max_tries="3"/>
<VERIFY_SUSPECT timeout="1500"/>
<pbcast.NAKACK2
use_mcast_xmit="false"
xmit_interval="1000"
xmit_table_num_rows="100"
xmit_table_msgs_per_row="10000"
xmit_table_max_compaction_time="10000"
max_msg_batch_size="100"
become_server_queue_size="0"/>
<UNICAST2
max_bytes="20M"
xmit_table_num_rows="20"
xmit_table_msgs_per_row="10000"
xmit_table_max_compaction_time="10000"
max_msg_batch_size="100"/>
<RSVP />
<pbcast.STABLE stability_delay="1000" desired_avg_gossip="50000"
max_bytes="400000"/>
<pbcast.GMS print_local_addr="false" join_timeout="7000" view_bundling="true"/>
<UFC max_credits="2000000" min_threshold="0.10"/>
<MFC max_credits="2000000" min_threshold="0.10"/>
<FRAG2 frag_size="60000"/>
</config>
Tôi đã sao chép điều này trực tiếp từ bản phân phối lõi mới nhất (5.2.0.Beta3, nhưng tôi cũng đã thử 5.1.4). Điều duy nhất tôi thay đổi đã được thay thế s3_ping của họ với tôi, nhưng một lần nữa tôi thấy các nút ghi vào s3, và họ tìm thấy nhau vì vậy tôi không nghĩ rằng đó là vấn đề. Tôi cũng bắt đầu master/slave với các môi trường của họ vars cho jgroups.tcp.address thiết lập địa chỉ IP riêng của họ. Tôi cũng đã thử một vài cấu hình được đơn giản hóa rất nhiều mà không thành công.
Bất kỳ ý tưởng nào về vấn đề có thể là gì? Tôi đã dành một vài ngày chơi với nó, và nó làm tôi phát điên. Tôi nghĩ rằng nó phải là một cái gì đó với cấu hình jgroups kể từ khi nó hoạt động tại địa phương và chỉ là không thể nói chuyện trên EC2.
Bất kỳ thông tin nào khác mà các bạn muốn giúp tìm hiểu điều này?
Nếu có thể hôn bạn qua internet, tôi sẽ làm như vậy. Nó dễ dàng như việc đặt "hibernate.search.services.jgroups.configurationFile = jgroups-ec2.xml" vào các tệp hibernate.properties của tôi. Nó hoạt động dựa trên đầu ra của tôi, nhưng tôi cũng có thể nói nó hoạt động vì một thư mục thứ hai được tạo ra trên S3 không tồn tại trong các lần chạy trước. Cảm ơn một lần nữa! – dustincg
Tôi rất vui khi nghe điều đó! – Sanne