Микросервисы — сохраняемость 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"

mssql-1.PNG

mssql-2.PNG

Примечание: /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:

монго-1.PNG

Примечание: /данные/дб — это место внутри контейнера, где хранятся файлы данных. Это сопоставляется с 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

  • Дважды щелкните сертификат.
  • Щелкните Установить сертификат….
  • Выберите «Текущий пользователь» и нажмите «Далее».
  • Выберите «Поместить все сертификаты в следующее хранилище» и нажмите «Обзор».
  • Выберите «Доверенный корневой центр сертификации» и нажмите «ОК», затем «Далее» и «Готово».

космос-1.PNG

После установки сертификата вы можете протестировать его, перейдя на портал эмулятора по следующей ссылке. https://localhost:8081/_explorer/index.html.

космос-2.PNG

Ссылка:
https://libertus.dev/posts/connect-to-cosmosbd-emulator-on-docker/part1/
https://libertus.dev/posts/connect-to-cosmosbd-emulator-on-docker/part2/

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *