Микросервисы — сохраняемость Polyglot |
Выбирая децентрализацию своих хранилищ данных, вы способствуете многоязычной сохраняемости среди своих микросервисов и определяете свою технологию хранения данных на основе шаблонов доступа к данным и других требований ваших микросервисов. Каждая микрослужба имеет свое хранилище данных и может независимо масштабироваться с минимальными изменениями схемы, а данные передаются через API микрослужбы. Децентрализованное многоязычное постоянство также обычно приводит к согласованности данных в конечном итоге и другим потенциальным проблемам, требующим тщательной оценки, включая синхронизацию данных во время транзакций, целостность транзакций, дублирование данных, соединения и задержку.
Кроме того, для сред разработки и тестирования удобно, когда ваши базы данных работают как контейнеры, потому что у вас нет никакой внешней зависимости, и простой запуск команды docker-compose up запускает все приложение. Здесь мы рассмотрим следующее —
- MS SQL-сервер
- Монго БД
- Эмулятор CosmosDB
Когда вы запускаете этот контейнер SQL Server в первый раз, контейнер инициализирует SQL Server с помощью предоставленного вами пароля. После запуска SQL Server в качестве контейнера вы можете обновить базу данных, подключившись через любое обычное соединение SQL, например из SQL Server Management Studio, Visual Studio или кода C#.
Создайте файл с именем mssql-докер-compose.yml в каталоге вашего проекта и вставьте следующее:
version: '3.2'
services:
sql-server-db:
container_name: sql-server-db
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- "1433:1433"
environment:
SA_PASSWORD: "password#123"
ACCEPT_EULA: "Y"
volumes:
- sql_vol:/var/opt/mssql
volumes:
sql_vol:
После запуска контейнера вы можете подключиться с помощью SQL Server Management Studio. Строка подключения приложения будет такой:
"ConnectionString": "Server=tcp:127.0.0.1,1433;Initial Catalog=xyz;User Id=sa;Password=password#123"
Примечание: /var/опт/mssql это место в контейнере, где хранятся файлы данных. Это сопоставляется с sql_vol хоста.
Если у вас есть приложение и контейнер MongoDB, работающие на одном компьютере, вы можете использовать Docker Compose, чтобы запускать и останавливать их вместе. Docker Compose лучше подходит для сред разработки или тестирования, где вам не нужны все функции MongoDB Enterprise или MongoDB Atlas.
В файле docker-compose.yaml опишите все ваши контейнеры, которые являются частью приложения. Одним из ваших контейнеров может быть сервер MongoDB.
Создайте файл с именем монго-докер-compose.yml в каталоге вашего проекта и вставьте следующее:
version: '3'
services:
mongodb:
image: mongo
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- mongodb_vol:/data/db
mongo-express:
image: mongo-express
ports:
- 8081:8081
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=admin
- ME_CONFIG_MONGODB_ADMINPASSWORD=password
- ME_CONFIG_MONGODB_SERVER=mongodb
depends_on:
- mongodb
volumes:
mongodb_vol:
Примечание: /данные/дб — это место внутри контейнера, где хранятся файлы данных. Это сопоставляется с sql_vol хоста.
Создайте файл с именем космос-докер-compose.yml в каталоге вашего проекта и вставьте следующее:
version: '3.4'
services:
azure.cosmosdb:
image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
container_name: azure.cosmosdb
environment:
- AZURE_COSMOS_EMULATOR_PARTITION_COUNT=5
- AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
- AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=192.168.0.107
ports:
- 8081:8081
- 10251:10251
- 10252:10252
- 10253:10253
- 10254:10254
Установить сертификат
После запуска симулятора вам необходимо загрузить самозаверяющий сертификат симулятора и установить его в доверенном хранилище вашего компьютера. Чтобы скачать сертификат, просто откройте в браузере следующую ссылку и сохраните файл сертификата, но убедитесь, что вы дали ему расширение .crt. Или вы можете запустить следующую команду:
curl -k > azure.cosmosdb.crt
ПРИМЕЧАНИЕ: если вы откроете эту ссылку в своем браузере, она покажет вам предупреждение о том, что вы пытаетесь получить доступ к подозрительному сайту, что ожидается, потому что мы еще не установили сертификат.
Поскольку это самозаверяющий сертификат, нам нужно добавить его в наши доверенные сертификаты.
В Windows
- Дважды щелкните сертификат.
- Щелкните Установить сертификат….
- Выберите «Текущий пользователь» и нажмите «Далее».
- Выберите «Поместить все сертификаты в следующее хранилище» и нажмите «Обзор».
- Выберите «Доверенный корневой центр сертификации» и нажмите «ОК», затем «Далее» и «Готово».
После установки сертификата вы можете протестировать его, перейдя на портал эмулятора по следующей ссылке. https://localhost:8081/_explorer/index.html.
Ссылка:
https://libertus.dev/posts/connect-to-cosmosbd-emulator-on-docker/part1/
https://libertus.dev/posts/connect-to-cosmosbd-emulator-on-docker/part2/