Вот как мы это сделали. Ниже приведены два класса примеров:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.annotation.EnableKafka;
@EnableKafka
@Configuration
@EnableConfigurationProperties(KafkaConsumerProperties.class)
public class KafkaContainerConfig {
@Autowired
protected KafkaConsumerProperties kafkaConsumerProperties;
@Bean
public ConsumerFactory<String, String> consumerFactory() {
return new DefaultKafkaConsumerFactory<>(kafkaConsumerProperties.getKafkaConsumerConfig());
}
...
@Configuration
@ConfigurationProperties
public class KafkaConsumerProperties {
protected Map<String, Object> kafkaConsumerConfig = new HashMap<>();
@ConfigurationProperties("kafkaConsumerConfig")
public Map<String, Object> getKafkaConsumerConfig() {
return (kafkaConsumerConfig);
}
...
Чтобы предоставить конфигурацию kafkaConsumer из файла свойств, вы можете использовать: mapname [key] = значение
//application.properties
kafkaConsumerConfig[bootstrap.servers]=localhost:9092, localhost:9093, localhost:9094
kafkaConsumerConfig[group.id]=test-consumer-group-local
kafkaConsumerConfig[value.deserializer]=org.apache.kafka.common.serialization.StringDeserializer
kafkaConsumerConfig[key.deserializer=org.apache.kafka.common.serialization.StringDeserializer
Чтобы предоставить kafkaConsumer config из файла yaml, вы можете использовать «[ключ]»: значение В файле application.yml:
kafkaConsumerConfig:
"[bootstrap.servers]": localhost:9092, localhost:9093, localhost:9094
"[group.id]": test-consumer-group-local
"[value.deserializer]": org.apache.kafka.common.serialization.StringDeserializer
"[key.deserializer]": org.apache.kafka.common.serialization.StringDeserializer
Этот пример показывает, как использовать функцию locate()
для трехмерной триангуляции CGAL. Если вам нужно ускорить локацию, а не строительство, вы можете установить параметр LP
из Delaunay_triangulation_3
в CGAL::Fast_location
.
Подсказка:
In Green & amp; По методу Сибсона для 2D Делоне они осуществляют поиск ближайшего соседа, начиная от центра облака и следуя по краям триангуляции к цели. Для равномерных распределений точек это приводит к стоимости √N операций за поиск.
Я считаю, что этот принцип может быть обобщен на тетраэдризации и будет соответствовать стоимости ³√N. Не так хорошо, как журнал N, но все равно привлекательно. Если точки запроса не являются случайными, но остаются локализованными, запуск с предыдущей точки может еще больше сократить время запроса.