Я интегрирую Hazelcast в существующий весенний проект (не весенняя загрузка), и приложение не подключается к серверу Hazlecast для получения данных, вместо этого они извлекаются из базы данных.
Клиент Hazelcast успешно устанавливает соединение с сервером который можно увидеть из журналов запуска.
Класс репозитория:
public interface CustomerKVEntity extends HazelcastRepository<Customer, Long> {
List<Customer> findByPostalCode(String postalCode);
}
Класс CustomerKVEntity (имена полей опущены, поскольку они неактуальны)
@KeySpace
@Entity
@Table(name = "customer")
public class Customer implements Serializable {
@Id
@org.springframework.data.annotation.Id
@SequenceGenerator(name = "customerSeq", sequenceName = "SEQ_CUSTOMER", allocationSize = 1)
@GeneratedValue(strategy = SEQUENCE, generator = "customerSeq")
@Column(name = "ID")
private Long id;
....
}
Добавленный источник данных использует BoneCP пул соединений, как показано ниже и помечен @Bean. НЕ уверен, что это проблема.
BoneCPDataSource ds = new BoneCPDataSource();
ds.setJdbcUrl(url);
Когда я вызываю findByPostalCode в репозитории, данные извлекаются из базы данных, а не с сервера Hazelcast. В чем может быть причина, помогите пожалуйста!
EDIT:
Hazelcast COnfiguration (hazelcast-client. xml):
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast-client
xsi:schemaLocation="http://www.hazelcast.com/schema/client-config
http://www.hazelcast.com/schema/client-config/hazelcast-client-config-3.11.xsd"
xmlns="http://www.hazelcast.com/schema/client-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- Look for some of the cluster -->
<network>
<cluster-members>
<address>127.0.0.1:5701</address>
<address>127.0.0.1:5702</address>
</cluster-members>
</network>
</hazelcast-client>
В моем аннотированном классе COnfigruation добавлен этот bean:
@Bean
public HazelcastInstance hazelcastInstance() throws Exception {
ClientConfig clientConfig = new XmlClientConfigBuilder("hazelcast-client.xml").build();
return HazelcastClient.newHazelcastClient(clientConfig);
}