Сообщения

Показаны сообщения с ярлыком "NoSQL"

Spring Boot: работа с NoSQL, InfluxDB

Изображение
InfluxDB - это база данных временных рядов с открытым исходным кодом, оптимизированная для быстрого высокопроизводительного хранения и извлечения данных временных рядов в таких областях, как мониторинг операций, метрики приложений, данные датчиков Интернета вещей и аналитика в реальном времени. Подключение к InfluxDB Spring Boot автоматически настраивает экземпляр InfluxDB при условии, что клиент influenxdb-java находится в пути к классам, и задан URL-адрес базы данных, как показано в следующем примере: spring.influx.url=https://172.0.0.1:8086 Если для подключения к InfluxDB требуются имя пользователя и пароль, вы можете соответствующим образом установить свойства spring.influx.user и spring.influx.password. InfluxDB опирается на OkHttp. Если вам нужно настроить http-клиент, который InfluxDB использует за кулисами, вы можете зарегистрировать bean-компонент InfluxDbOkHttpClientBuilderProvider. Читайте также: Spring Boot: работа с NoSQL технологиями, Redis Spring Boot: ра...

Spring Boot: работа с NoSQL, встроенный LDAP-сервер в памяти

Изображение
В целях тестирования Spring Boot поддерживает автоматическую настройку LDAP-сервера в памяти из UnboundID. Чтобы настроить сервер, добавьте зависимость в com.unboundid:unboundid-ldapsdk и объявите свойство spring.ldap.embedded.base-dn следующим образом: spring.ldap.embedded.base-dn=dc=spring,dc=io Можно определить несколько значений base-dn, однако, поскольку различающиеся имена обычно содержат запятые, они должны быть определены с использованием правильных обозначений. В файлах yaml вы можете использовать нотацию списка yaml: spring.ldap.embedded.base-dn: - dc=spring,dc=io - dc=pivotal,dc=io В файлах свойств вы должны включить индекс как часть имени свойства: spring.ldap.embedded.base-dn[0]=dc=spring,dc=io spring.ldap.embedded.base-dn[1]=dc=pivotal,dc=io По умолчанию сервер запускается с произвольного порта и запускает обычную поддержку LDAP. Нет необходимости указывать свойство spring.ldap.urls. Если в вашем classpath есть файл schema.ldif, он используется ...

Spring Boot: работа с NoSQL, LDAP

Изображение
LDAP (Lightweight Directory Access Protocol, облегченный протокол доступа к каталогам) - это открытый, независимый от производителя, стандартный протокол приложений для доступа и обслуживания распределенных информационных служб каталогов по IP-сети. Spring Boot предлагает автоматическую настройку для любого совместимого сервера LDAP, а также поддержку встроенного сервера LDAP в памяти из UnboundID. Абстракции LDAP предоставляются Spring Data LDAP. Существует spring-boot-starter-data-ldap стартер для удобного сбора зависимостей. Подключение к серверу LDAP Чтобы подключиться к серверу LDAP, убедитесь, что вы объявили зависимость от стартера spring-boot-starter-data-ldap или spring-ldap-core, а затем объявили URL-адреса вашего сервера в файле application.properties, как показано в следующий пример: spring.ldap.urls=ldap://myserver:1235 spring.ldap.username=admin spring.ldap.password=secret Если вам нужно настроить параметры подключения, вы можете использовать свойства spring.ld...

Spring Boot: работа с NoSQL, Spring Data Couchbase репозитории

Изображение
Spring Data включает поддержку репозиториев для Couchbase. Вы можете внедрить автоматически сконфигурированный экземпляр CouchbaseTemplate, как если бы вы использовали любой другой Spring Bean, при условии, что доступен CouchbaseConfigurer по умолчанию (что происходит, когда вы включаете поддержку Couchbase). В следующих примерах показано, как внедрить bean-компонент Couchbase: @Component public class MyBean { private final CouchbaseTemplate template; @Autowired public MyBean(CouchbaseTemplate template) { this.template = template; } // ... } Есть несколько bean-компонентов, которые вы можете определить в своей собственной конфигурации, чтобы переопределить те, которые предусмотрены автоматической конфигурацией: CouchbaseTemplate @Bean с именем couchbaseTemplate. IndexManager @Bean с именем couchbaseIndexManager. CustomConversions @Bean с именем couchbaseCustomConversions. Чтобы избежать жесткого кодирования этих имен в вашей собственной ко...

Spring Boot: работа с NoSQL, Couchbase

Изображение
Couchbase - это распределенная многомодельная NoSQL база данных с открытым исходным кодом, оптимизированная для интерактивных приложений. Spring Boot предлагает автоконфигурацию для Couchbase и абстракции поверх него, предоставляемые Spring Data Couchbase. Для удобного сбора зависимостей существуют стартеры spring-boot-starter-data-couchbase и spring-boot-starter-data-couchbase-reactive. Подключение к Couchbase Вы можете получить Bucket и Cluster, добавив Couchbase SDK и некоторую конфигурацию. Свойства spring.couchbase.* можно использовать для настройки соединения. Обычно вы предоставляете хосты начальной загрузки, имя сегмента и пароль, как показано в следующем примере: spring.couchbase.bootstrap-hosts=my-host-1,192.168.1.123 spring.couchbase.bucket.name=my-bucket spring.couchbase.bucket.password=secret Вы должны предоставить хотя бы хост(хосты) первоначальной загрузки (bootstrap host(s)), в этом случае имя сегмента (bucket name) default, а пароль - пустая строка. Кроме тог...

Spring Boot: работа с NoSQL, Cassandra

Изображение
Cassandra - это распределенная система управления базами данных с открытым исходным кодом, предназначенная для обработки больших объемов данных на многих обычных серверах. Spring Boot предлагает автоконфигурацию для Cassandra и абстракции, предоставляемые Spring Data Cassandra. Существует spring-boot-starter-data-cassandra стартер для удобного сбора зависимостей. Подключение к Cassandra Вы можете внедрить автоматически сконфигурированный CassandraTemplate или экземпляр Cassandra Session так же, как и любой другой Spring Bean. Свойства spring.data.cassandra.* могут быть использованы для настройки соединения. Обычно вы предоставляете свойства keyspace-name и contact-points, как показано в следующем примере: spring.data.cassandra.keyspace-name=mykeyspace spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2 Вы также можете зарегистрировать произвольное количество bean-компонентов, которые реализуют ClusterBuilderCustomizer для более сложных настроек. В следующем ли...

Spring Boot: работа с NoSQL, Spring Data Elasticsearch

Изображение
Подключение к Elasticsearch с помощью Spring Data Для подключения к Elasticsearch должен быть определен bean-компонент RestHighLevelClient, автоматически настроенный Spring Boot или предоставленный приложением вручную. С этой конфигурацией ElasticsearchRestTemplate может быть внедрен как любой другой Spring bean-компонент, как показано в следующем примере: @Component public class MyBean { private final ElasticsearchRestTemplate template; public MyBean(ElasticsearchRestTemplate template) { this.template = template; } // ... } При наличии spring-data-elasticsearch и необходимых зависимостей для использования WebClient (обычно spring-boot-starter-webflux) Spring Boot также может автоматически настраивать ReactiveElasticsearchClient и ReactiveElasticsearchTemplate в качестве bean-компонентов. Они являются реактивным эквивалентом других клиентов REST. Spring Data Elasticsearch репозитории Spring Data включает поддержку репозиториев для Elasticsearch. Ка...

Spring Boot: работа с NoSQL, подключение к Elasticsearch

Изображение
Подключение к Elasticsearch с использованием Reactive REST клиентов Spring Data Elasticsearch поставляет ReactiveElasticsearchClient для запросов экземпляров Elasticsearch в реактивном режиме. Он построен поверх WebClient WebFlux, поэтому для включения этой поддержки полезно использовать зависимости spring-boot-starter-elasticsearch и spring-boot-starter-webflux. По умолчанию Spring Boot автоматически настраивает и регистрирует компонент ReactiveElasticsearchClient, который нацелен на localhost:9200. Вы можете дополнительно настроить его настройку, как показано в следующем примере: spring.data.elasticsearch.client.reactive.endpoints=search.example.com:9200 spring.data.elasticsearch.client.reactive.use-ssl=true spring.data.elasticsearch.client.reactive.socket-timeout=10s spring.data.elasticsearch.client.reactive.username=user spring.data.elasticsearch.client.reactive.password=secret Если свойств конфигурации недостаточно, и вы хотите полностью контролировать конфигурацию клиент...

Spring Boot: работа с NoSQL, Elasticsearch

Изображение
Elasticsearch - это распределенная поисковая и аналитическая RESTful система с открытым исходным кодом. Spring Boot предлагает базовую авто-конфигурацию для Elasticsearch. Spring Boot поддерживает несколько клиентов: Официальные Java высокоуровневые и низкоуровневые REST клиенты ReactiveElasticsearchClient, предоставленный Spring Data Elasticsearch Транспортный клиент все еще доступен, но его поддержка устарела в Spring Data Elasticsearch и самом Elasticsearch. Он будет удален в будущем релизе. Spring Boot предоставляет специальный стартер, spring-boot-starter-data-elasticsearch. Клиент Jest также устарел, так как Elasticsearch и Spring Data Elasticsearch предоставляют официальную поддержку клиентам REST. Подключение к Elasticsearch с использованием REST клиентов Elasticsearch поставляет два разных REST клиента, которые можно использовать для запроса кластера: низкоуровневый клиент и высокоуровневый клиент. Если у вас есть зависимость org.elasticsearch.client:elasticsearch-r...

Spring Boot: работа с NoSQL, Solr

Изображение
Apache Solr - это поисковая система. Spring Boot предлагает базовую автоконфигурацию для клиентской библиотеки Solr 5 и надстроек, предоставляемых Spring Data Solr. Существует spring-boot-starter-data-solr стартер для удобного сбора зависимостей. Подключение к Solr Вы можете внедрить автоматически настроенный экземпляр SolrClient, как и любой другой компонент Spring. По умолчанию экземпляр пытается подключиться к серверу по адресу localhost:8983/solr. В следующем примере показано, как внедрить bean-компонент Solr: @Component public class MyBean { private SolrClient solr; @Autowired public MyBean(SolrClient solr) { this.solr = solr; } // ... } Если вы добавите свой собственный @Bean типа SolrClient, он заменит значение по умолчанию. Spring Data Solr репозитории Spring Data включает поддержку репозитория для Apache Solr. Как и в случае с репозиториями JPA, рассмотренными ранее, основной принцип заключается в том, что запросы автоматически созда...

Spring Boot: работа с NoSQL, Neo4j, Spring Data Neo4j репозитории

Изображение
Использование нативных типов Neo4j-OGM может отображать некоторые типы, такие как типы в java.time.*, на свойства на основе строк или на один из собственных типов, предоставляемых Neo4j. По причинам обратной совместимости по умолчанию для Neo4j-OGM используется представление на основе строк. Чтобы использовать собственные типы, добавьте зависимость либо org.neo4j:neo4j-ogm-bolt-native-types, либо org.neo4j:neo4j-ogm-embedded-native-types и настройте spring.data.neo4j.use-native-types свойство, как показано в следующем примере: spring.data.neo4j.use-native-types=true Neo4jSession По умолчанию, если вы запускаете веб-приложение, сессия привязывается к потоку для всей обработки запроса (то есть он использует шаблон "Open Session in View"). Если вам не нужно это поведение, добавьте следующую строку в файл application.properties: spring.data.neo4j.open-in-view=false Spring Data Neo4j репозитории Spring Data включает поддержку репозитория для Neo4j. Spring Data Ne...

Spring Boot: работа с NoSQL, Neo4j, использование встроенного режима

Изображение
Если вы добавите org.neo4j:neo4j-ogm-embedded-driver к зависимостям вашего приложения, Spring Boot автоматически настроит встроенный экземпляр Neo4j, находящийся в процессе, который не сохраняет никаких данных при завершении работы вашего приложения. Поскольку встроенный драйвер Neo4j OGM не обеспечивает само ядро Neo4j, вы должны объявить org.neo4j:neo4j как зависимость самостоятельно. Встроенный драйвер имеет приоритет над другими драйверами, когда в пути к классам есть несколько драйверов. Вы можете явно отключить встроенный режим, установив spring.data.neo4j.embedded.enabled=false. Data Neo4j Tests автоматически используют встроенный экземпляр Neo4j, если встроенный драйвер и ядро Neo4j находятся в пути к классам, как описано выше. Вы можете включить постоянство для встроенного режима, указав путь к файлу базы данных в вашей конфигурации, например, spring.data.neo4j.uri=file://var/tmp/graph.db. Читайте также: Spring Boot: работа с NoSQL технологиями, Redis Spring Boot: раб...

Spring Boot: работа с NoSQL, Neo4j

Изображение
Neo4j - это NoSQL графовая база данных, с открытым исходным кодом, которая использует богатую модель данных узлов, связанных первоклассными отношениями, которая лучше подходит для связанных больших данных, чем традиционные подходы к СУБД. Spring Boot предлагает несколько удобств для работы с Neo4j, включая spring-boot-starter-data-neo4j стартер. Подключение к базе данных Neo4j Чтобы получить доступ к серверу Neo4j, вы можете добавить автоматически настроенный org.neo4j.ogm.session.Session. По умолчанию экземпляр пытается подключиться к серверу Neo4j по адресу localhost:7687, используя протокол Bolt. В следующем примере показано, как внедрить сеанс Neo4j: @Component public class MyBean { private final Session session; @Autowired public MyBean(Session session) { this.session = session; } // ... } Вы можете настроить URI и учетные данные для использования, установив свойства spring.data.neo4j.*, как показано в следующем примере: spring.data.neo...

Spring Boot: Embedded Mongo

Изображение
Spring Boot предлагает автоматическую настройку для Embedded Mongo (встроенная Mongo). Чтобы использовать ее в приложении Spring Boot, добавьте зависимость от de.flapdoodle.embed:de.flapdoodle.embed.mongo. Порт, который прослушивает Mongo, можно настроить, установив свойство spring.data.mongodb.port. Чтобы использовать произвольно выделенный свободный порт, используйте значение 0. MongoClient, созданный MongoAutoConfiguration, автоматически настраивается на использование случайно выделенного порта. Если пользовательский порт не настроен, встроенная поддержка по умолчанию использует случайный порт (а не 27017). Если у вас есть SLF4J на пути к классам, выходные данные, созданные Mongo, автоматически направляются в логгер с именем org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongo. Вы можете объявить свои собственные bean-объекты IMongodConfig и IRuntimeConfig для управления конфигурацией экземпляра Mongo и маршрутизацией журналирования. Конфигурацию загрузки можно на...

Spring Boot: репозитории Spring Data MongoDB

Изображение
Spring Data включает поддержку репозитория для MongoDB. Как и в случае с репозиториями JPA, рассмотренными ранее, основной принцип заключается в том, что запросы создаются автоматически на основе имен методов. Фактически и Spring Data JPA, и Spring Data MongoDB используют одну и ту же общую инфраструктуру. Вы можете взять пример JPA , предполагая, что City теперь является классом данных Mongo, а не JPA @Entity, он работает таким же образом, как показано в следующем примере: package com.example.myapp.domain; import org.springframework.data.domain.*; import org.springframework.data.repository.*; public interface CityRepository extends Repository<City, Long> { Page<City> findAll(Pageable pageable); City findByNameAndStateAllIgnoringCase(String name, String state); } Вы можете настроить места сканирования документов с помощью аннотации @EntityScan. Читайте также: Spring Boot: работа с NoSQL технологиями, Redis Spring Boot: работа с NoSQL, MongoDB Spri...

Spring Boot: работа с NoSQL, MongoDB, MongoTemplate

Изображение
Spring Data MongoDB предоставляет класс MongoTemplate, который по своему дизайну очень похож на Spring JdbcTemplate . Как и в случае с JdbcTemplate, Spring Boot автоматически настраивает bean-компонент для внедрения шаблона следующим образом: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.stereotype.Component; @Component public class MyBean { private final MongoTemplate mongoTemplate; @Autowired public MyBean(MongoTemplate mongoTemplate) { this.mongoTemplate = mongoTemplate; } // ... } Читайте также: Spring Boot: работа с NoSQL технологиями, Redis Spring Boot: работа с NoSQL, MongoDB Spring Boot и базы данных: использование JdbcTemplate

Spring Boot: работа с NoSQL, MongoDB

Изображение
MongoDB - это NoSQL база данных документов, с открытым исходным кодом, которая использует JSON-подобную схему вместо традиционных реляционных данных на основе таблиц. Spring Boot предлагает несколько удобств для работы с MongoDB, включая стартеры spring-boot-starter-data-mongodb и spring-boot-starter-data-mongodb-reactive. Подключение к базе данных MongoDB Чтобы получить доступ к базам данных Mongo, вы можете добавить автоматически настроенный org.springframework.data.mongodb.MongoDbFactory. По умолчанию экземпляр пытается подключиться к серверу MongoDB по адресу mongodb://localhost/test. В следующем примере показано, как подключиться к базе данных MongoDB: import org.springframework.data.mongodb.MongoDbFactory; import com.mongodb.DB; @Component public class MyBean { private final MongoDbFactory mongo; @Autowired public MyBean(MongoDbFactory mongo) { this.mongo = mongo; } // ... public void example() { DB db = mongo.getDb(); //...

Spring Boot: работа с NoSQL технологиями, Redis

Изображение
Spring Data предоставляет дополнительные проекты, которые помогут вам получить доступ к различным технологиям NoSQL, включая: MongoDB Neo4J Elasticsearch Solr Redis GemFire или Geode Cassandra Couchbase LDAP Spring Boot обеспечивает автоматическую настройку для Redis, MongoDB, Neo4j, Elasticsearch, Solr Cassandra, Couchbase и LDAP. Вы можете использовать другие проекты, но вы должны настроить их самостоятельно. Redis Redis - это кэш, брокер сообщений и многофункциональное хранилище ключей-значений. Spring Boot предлагает базовую автоматическую настройку для клиентских библиотек Lettuce и Jedis, а также надстроек, предоставляемых Spring Data Redis. Существует spring-boot-starter-data-redis стартер для удобного сбора зависимостей. По умолчанию используется Lettuce. Этот стартер обрабатывает как традиционные, так и реактивные приложения. Также предоставляется spring-boot-starter-data-redis-reactive стартер для согласованности с другими хранилищами с реактивной поддержкой. ...