MyCat Tutorial 1: Краткое введение в MyCat

база данных

Учебник MyCat 2: реализация репликации master-slave в mysql
MyCat Tutorial 3: Введение в установку и настройку
MyCat Tutorial 4: Реализация разделения чтения-записи
MyCat Tutorial 5: Реализация подбазы данных и подтаблицы
Учебник MyCat 6: Глобальный порядковый номер — самоувеличение глобального первичного ключа

1. Знакомство с MyCat

1. Что такое MyCat

  MyCat — самый популярный基于 javaнаписано на языке数据库中间件, – это сервер, реализующий протокол MySQL. Внешние пользователи могут рассматривать его как прокси-сервер базы данных, доступ к которому можно получить с помощью клиентских инструментов и командных строк MySQL, а его серверная часть может взаимодействовать с несколькими серверами MySQL, используя собственный протокол MySQL. или Общайтесь с большинством основных серверов баз данных, используя протокол JDBC, и его основные функции分库分表. Это также может быть реализовано в режиме master-slave базы данных.读写分离.
  MyCat разработан на основе продукта Cobar с открытым исходным кодом от Alibaba.Стабильность, надежность, отличная архитектура и производительность Cobar, а также множество зрелых вариантов использования делают MyCat очень мощным.
MyCat разработан до текущей версии и больше не является чистым агентом MySQL.Его серверная часть может поддерживать основные базы данных, такие как MySQL, SQL Server, Oracle, DB2, PostgreSQL и т. д., а также MongoDB, новый тип NoSQL. хранилище, которое будет использоваться в будущем.Поддерживается больше типов хранилищ. С точки зрения конечного пользователя, независимо от метода хранения, в MyCat это традиционная таблица базы данных, которая поддерживает стандартные операторы SQL для манипулирования данными.Таким образом, для клиентской бизнес-системы это может быть значительно снизить сложность разработки, повысить скорость разработки.
  Официальный сайт MyCat:www.mycat.io/

2. Структура MyCat

在这里插入图片描述

3. Преимущества использования MyCat

3.1 Величина данных

  Single MySQL имеет ограниченный уровень хранения данных и уровень работы.
  Mycat может управлять несколькими базами данных MySQL и одновременно осуществлять хранение и работу с данными.

3.2 Открытый исходный код

  1. Mycat — промежуточное ПО, написанное на Java, с открытым исходным кодом, бесплатное.
  2. Есть много людей и организаций, разрабатывающих, поддерживающих, управляющих и обновляющих Mycat.
  3. Версия Mycat быстро улучшается и может следовать за развитием среды.Если есть проблема, ее можно быстро решить.
  4. У Mycat есть веб-сайты с открытым исходным кодом и сообщества с открытым исходным кодом, а также официальные электронные книги.
  5. Mycat трансформируется из оригинального приложения Ali Corba.

3.3 Применение на рынке

  MyCat занимает очень большую долю интернет-приложений.

2. Введение концепции в MyCat

1. Разделить

   Логическая сегментация.На физическом уровне сегментация реализуется с использованием нескольких баз данных [database] и нескольких таблиц [table].

1.1 Продольная сегментация/вертикальная сегментация

   — сохранить оригинал вДанные одной библиотеки хранятся в нескольких библиотеках.
   Поскольку все операции чтения и записи базы данных выполняются в одной и той же библиотеке, одна библиотека не может решить проблему крупномасштабной параллельной записи. Например, мы создадим базу данных определения workDB, базу данных товаров payDB, базу данных пользователей userDB, базу данных журналов logDB и т. д., которые используются для хранения таблиц определения данных проекта, таблиц определения товаров, таблиц пользовательских данных, таблиц данных журнала и т. д. на.

преимущество

  1. Уменьшите влияние блокировок на запросы при записи добавочных данных.
  2. Из-за уменьшения количества отдельных таблиц общие операции запросов сокращают количество извлекаемых строк, необходимых для одного запроса, уменьшают дисковые операции ввода-вывода и сокращают задержку из-за уменьшения количества сканируемых записей.

недостаток: Проблема слишком большого количества данных в одной таблице не может быть решена.

1.2 Горизонтальное разделение/горизонтальное разделение

   Данные, изначально хранившиеся в одной таблице, хранятся в нескольких таблицах блоками.
  Когда объем данных в таблице слишком велик, мы можем разделить данные таблицы по определенным правилам, а затем сохранить их в нескольких таблицах с одинаковой структурой и разными библиотеками. Например, userTable в нашей userDB имеет большой объем данных, поэтому мы можем разделить userDB на несколько userDB с одинаковой структурой: part0DB, part1DB и т. д., а затем разделить userTable в userDB на множество userTables: userTable0, userTable1 и т. д. Затем эти таблицы сохраняются в нескольких пользовательских базах данных в соответствии с определенными правилами.

преимущество

  1. Улучшена возможность параллелизма для одной таблицы, а также улучшена производительность дискового ввода-вывода.
  2. При высоком уровне параллелизма общая таблица может разделить давление параллелизма на разные небольшие таблицы в соответствии с разными запросами.

недостаток: Не удается реализовать запрос на соединение таблиц.

2. Логическая библиотека — схема

База данных, определенная в   Mycat, существует логически, но не существует физически.главныйЭто концепция, предусмотренная для вертикальной сегментации.

3. Логическая таблица-таблица

Таблица, определенная в   Mycat., существует логически, но не существует физически.главныйЭто концепция, предусмотренная для горизонтальной сегментации.

4. Порт по умолчанию

применение порт
MySQL 3306
Mycat 8066
tomcat 8080
Oracle 1521
nginx 80
http 80
redis 6379

5. Хост данных — dataHost

   Адрес хоста, на котором хранится физический MySQL. Его можно определить по имени хоста, IP-адресу и доменному имени.

6. Узел данных — dataNode

  Настройте физическую базу данных.Физический узел, на котором сохраняются данные.Это база данных.

7. Правила шаринга

При управлении данными, как получить доступ к физической базе данных и таблице.Это алгоритм доступа к dataHost и dataNode.Когда Mycat обрабатывает определенные данные CRUD, как получить доступ к алгоритму dataHost и dataNode.Такие как: алгоритм хеширования, алгоритм crc32 и т. д. .



Обратите внимание на публичный аккаунт WeChat【мечта программиста], уделяя особое внимание технологиям с полным стеком, таким как Java, SpringBoot, SpringCloud, микросервисам, Docker, а также разделению интерфейсной и серверной частей.

在这里插入图片描述