MyCAT — это программное обеспечение с открытым исходным кодом, ориентированное на предприятия и представляющее собой большой кластер баз данных. MyCAT является принудительной базой данных, которая может заменить MySQL и поддерживает транзакции и ACID (атомарность, согласованность, изолированность, долговечность).
Рассматриваемый как кластер MySQL для корпоративных баз данных, MyCAT может занять место дорогостоящего кластера Oracle. MyCAT также представляет собой новый тип базы данных, который похож на SQL Server, интегрированный с технологией кэширования в памяти, технологией NoSQL и большими данными HDFS.
Как новый современный корпоративный продукт для баз данных, MyCAT сочетает в себе традиционную базу данных и новое распределённое хранилище данных. Одним словом, MyCAT — это новое промежуточное ПО для баз данных.
Цель Mycat — плавно перенести текущую автономную базу данных и приложения в облако с низкими затратами и решить проблему узких мест, вызванных быстрым ростом объёма данных и масштабов бизнеса.
1 января 2020 года была объединена одна PR-заявка, оптимизирующая алгоритм разделения PartionByLong. Проблема неравномерного распределения данных была решена, но алгоритм разделения PartionByLong стал несовместим с предыдущей версией после версии 1.675.
MyCAT 1.6 не поддерживает один SQL, содержащий несколько операторов.
Обновление fastjson в старой версии Mycat: необходимо изменить версию fastjson в файле pom.xml.
Синтаксис глобального порядкового номера:
INSERT INTO `travelrecord` (`id`,user_id) VALUES ('next value for MYCATSEQ_GLOBAL',"xxx");
Загрузка установочных пакетов: доступны по ссылке https://github.com/MyCATApache/Mycat-Server/releases.
Версия MyCAT 2.0 доступна по ссылке: https://github.com/MyCATApache/Mycat2.
Обновления для ветки Druid 1.1.10 поддерживаются отдельно по адресу: https://github.com/MyCATApache/Mycat-Server/tree/1.6.6-druid.
Docker-Mycat (1.65): доступен по ссылке: https://github.com/dekuan/docker.mycat.
Для получения дополнительной информации рекомендуется обратиться к следующим ресурсам:
Основан на открытом проекте Alibaba Cobar, стабильность, надёжность, отличная архитектура и производительность которого, а также множество зрелых вариантов использования делают MyCAT хорошим стартом. Опираясь на плечи гигантов, MyCAT чувствует себя достаточно уверенно, чтобы идти дальше.
Широкое использование лучших проектов с открытым исходным кодом и инновационных идей, которые интегрированы в ген Mycat, делает MyCAT впереди других подобных проектов с открытым исходным кодом. Проекты, даже за пределами некоторых коммерческих продуктов
MyCAT опирается на сильную техническую команду, участники которой имеют опыт работы более пяти лет, включая некоторых старших инженеров-программистов, архитекторов, администраторов баз данных и т. д. Отличная техническая команда обеспечивает качество продукта Mycat.
MyCAT не зависит от какой-либо коммерческой компании. Это отличается от некоторых проектов с открытым исходным кодом, важные функции которых заключены в их коммерческих продуктах и делают проекты с открытым исходным кодом похожими на украшение.
План развития
Скачать
Существуют скомпилированные двоичные пакеты установки в проекте Mycat-download на GitHub по адресу Mycat-download.
Документ
В проекте Mycat-doc на GitHub есть документы по адресу Mycat-doc.
Mycat — простой демонстрационный пример, для получения дополнительной информации обратитесь к авторитетному руководству Mycat.
Официальный сайт: mycat.io Официальная группа QQ: 332702697 Официальное скачивание авторитетного руководства Mycat: https://github.com/MyCATApache/Mycat-Server/blob/4135f25df8239d52d220529cbf7cb697ede40e12/mycat-definitive-guide.pdf Wiki: wiki
История Mycat
В 2013 году Cobar от Alibaba обнаружил некоторые серьёзные проблемы в процессе использования сообществом и ограничения его использования. После первого улучшения со стороны инициатора Mycat появилась первая версия — Mycat. После того как некоторые пользователи Cobar приняли участие в разработке Mycat, он превратился в поддерживаемый многими компаниями проект с открытым исходным кодом.
В 2014 году Mycat впервые был представлен на конференции «Китайский архитектор» в Шанхае, и всё больше людей присоединялись к нему. Впоследствии всё больше проектов начали использовать Mycat.
В мае 2015 года совместно написанные участниками первые официальные авторитетные руководства «Mycat авторитетное руководство» были выпущены в электронном виде, всего было напечатано более 500 экземпляров, что стало первым подобным проектом с открытым исходным кодом.
По состоянию на октябрь 2015 г. в проекте Mycat было 16 коммиттеров.
К ноябрю 2015 года более 300 проектов использовали Mycat, охватывая различные области и компании, такие как банки, телекоммуникации, электронная коммерция, логистика, мобильные приложения и O2O.
К декабрю 2015 года количество пользователей, присоединившихся к группе, участвующих в обсуждениях, тестировании или использовании Mycat, превысило 4000 человек.
Mycat основан на открытом исходном коде Cobar, мы полностью переработали код Cobar, использовали NIO для перестройки сетевого модуля и оптимизировали ядро буфера, усилили агрегацию, Join и другие основные функции, одновременно совместив большинство баз данных, чтобы стать универсальным промежуточным программным обеспечением базы данных. После версии 1.4 Mycat полностью отделился от основного ядра Cobar и объединил управление кластером Mycat, автоматическое расширение и интеллектуальную оптимизацию, став высокопроизводительным промежуточным ПО. Мы стремимся разрабатывать высокопроизводительные базы данных и прилагаем усилия. Мы никогда не взимаем плату, никогда не закрываем исходный код и постоянно продвигаем развитие сообщества с открытым исходным кодом.
Mycat привлекает и объединяет большое количество опытных инженеров в области больших данных и облачных вычислений. Развитие Mycat основано на постоянных усилиях сообщества добровольцев с открытым исходным кодом, и мы благодарны сообществу добровольцев за их усилия, которые сделали Mycat сильнее. В то же время мы также приветствуем больше добровольцев из сообщества, особенно компании, которые могут присоединиться к разработке Mycat и вместе способствовать развитию сообщества и предоставлять лучшее промежуточное программное обеспечение с открытым исходным кодом для сообщества.
Хотя Mycat ещё недостаточно силён, у него всё ещё есть много недостатков, и сообщество добровольцев всегда приветствует непрерывное улучшение и оптимизацию.
Ключевые особенности
Поддержка стандарта SQL92. Соблюдение исходного протокола MySQL, межъязыковой, межплатформенный, универсальный посредник для баз данных. На основе сердцебиения автоматическое переключение при отказе, поддержка разделения чтения и записи, поддержка MySQL главный-подчиненный, а также кластер Galera. Поддержка кластера Galera для MySQL, Percona Cluster или MariaDB cluster. Эффективное управление потоками на основе Nio, высокая параллельная обработка. Поддержка автоматического маршрутизации и агрегации нескольких фрагментов данных, поддержка sum,count,max и других общих функций агрегации. Поддержка внутреннего соединения одной библиотеки, поддержка соединения двух таблиц между библиотеками и даже многотабличное соединение на основе callet. Поддержка глобальной таблицы, стратегии фрагментации ER, реализация эффективного многотабличного запроса соединения. Поддержка мультитенантной схемы. Поддержка распределённых транзакций (слабая xa). Поддержка глобального серийного номера, решение проблемы генерации первичного ключа в распределённой среде. Богатые правила фрагментации, модульная разработка, простота расширения. Мощные веб и командная строка для мониторинга. Поддержка переднего плана в качестве универсального прокси MySQL, заднего плана JDBC поддерживает Oracle, DB2, SQL Server, mongodb, Hercules. Поддержка шифрования паролей. Поддержка деградации службы. Поддержка белого списка IP. Поддержка чёрного списка SQL и защита от SQL-инъекций. Поддержка разделения таблиц (1.6). Управление кластером на основе ZooKeeper, онлайн-обновление, расширение, интеллектуальная оптимизация, обработка больших данных (версия 2.0 в разработке).
Установка и использование Mycat
Загрузка: https://github.com/MyCATApache/Mycat-download Конкретная загружаемая версия определяется версией выпуска, рекомендуется 1.4, 1.5.
Установка: Просто распакуйте скачанный файл.
Запуск: Linux: ./mycat start запускает ./mycat stop останавливает ./mycat console запускает передний план ./mycat install добавляет в систему автозапуска (временно не реализовано) ./mycat remove удаляет из системы автозапуска (временно не реализовано) ./mycat restart перезапускает службу ./mycat pause приостанавливает ./mycat status проверяет статус запуска Windows: Запустите startup_nowrap.bat напрямую, если появится сбой, запустите в командной строке cmd, проверьте причину ошибки.
Настройка памяти: Перед запуском обычно необходимо изменить параметры конфигурации JVM, открыть conf/wrapper.conf, содержимое следующих строк составляет 2G и 2048, вы можете настроить их в соответствии с конфигурацией вашей машины на 512M или другое значение. Следующие настройки полностью соответствуют параметрам JVM, вы можете настроить в соответствии с вашими параметрами JVM. wrapper.java.additional.6=-Dcom.sun.management.jmxremote
wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984
wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false
wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.10=-Xmx100m
wrapper.java.additional.11=-Xms100m
wrapper.java.additional.12=-XX:+UseParNewGC
wrapper.java.additional.13=-XX:+UseConcMarkSweepGC
wrapper.java.additional.14=-XX:+UseCMSCompactAtFullCollection
wrapper.java.additional.15=-XX:CMSFullGCsBeforeCompaction=0
wrapper.java.additional.16=-XX:CMSInitiatingOccupancyFraction=70
以下配置作废:
wrapper.java.initmemory=3
wrapper.java.maxmemory=64
Тестирование Mycat с MySQL полностью совпадает, как соединяется MySQL, так соединяется и Mycat.
Рекомендуется сначала использовать тестирование командной строки:
mysql -uroot -proot -P8066 -h127.0.0.1
Если вы используете инструмент для соединения, то на данный момент некоторые инструменты не могут подключиться к 1.4 и 1.3, они выдают сообщение «database not selected», рекомендуется использовать более новые версии, например Navicat. В версии 1.5 эта проблема была частично решена.
— bin — каталог запуска;
— conf — каталог конфигурации, в котором хранятся файлы конфигурации: — server.xml: файл конфигурации параметров сервера Mycat и авторизации пользователей. — schema.xml: файл конфигурации определения логических баз данных и таблиц, а также фрагментации. — rule.xml: файл конфигурации правил фрагментации, который содержит конкретные параметры правил фрагментации. Этот файл также находится в этом каталоге. При изменении файла конфигурации необходимо перезапустить MyCAT. — log4j.xml: файлы журналов хранятся в папке logs/log, каждый день создаётся новый файл. Конфигурация журнала находится в файле conf/log4j.xml. Вы можете настроить уровень вывода в соответствии с вашими потребностями. Уровень отладки предоставляет больше информации, что удобно для устранения проблем. — autopartition-long.txt, partition-hash-int.txt, sequence_conf.properties, sequence_db_conf.properties: файлы конфигурации идентификаторов фрагментации и правил. — lib: папка, содержащая JAR-файлы MyCAT или зависимые JAR-файлы. — logs: папка для хранения журналов MyCAT. Журналы хранятся в папке logs/log, и каждый день создаётся новый файл.
На следующем изображении показаны три наиболее важных файла конфигурации Mycat:
Добавление двух логических баз данных Mycat: user, pay. Параметр system является параметром всех конфигураций Mycat, таких как добавление парсера: defaultSqlParser и других. User — это параметр пользователя.
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
<user name="mycat">
<property name="password">mycat</property>
<property name="schemas">user,pay</property>
</user>
Изменение dataHost и схемы, соответствующей информации о соединении, после вертикальной фрагментации user и pay конфигурация выглядит следующим образом:
Схема представляет собой конфигурацию фактической логической базы данных, user и pay соответствуют двум логическим базам данных, несколько схем представляют несколько логических баз данных.
DataNode соответствует фрагменту логической базы данных. Если вы настроите несколько фрагментов, вам нужно только несколько dataNode.
dataHost — это фактическая конфигурация адреса физической базы данных, вы можете настроить несколько основных, подчинённых и других конфигураций. Несколько dataHost представляют адрес физической базы данных фрагмента, ниже приведены writeHost, readHost, представляющие, настроена ли эта фрагментация для нескольких записей, основной и подчинённой, чтения и записи и других расширенных функций.
В следующем примере настроены два writeHost для основного и подчинённого.
<schema name="user" checkSQLschema="false" sqlMaxLimit="100" dataNode="user" />
<schema name="pay" checkSQLschema="false" sqlMaxLimit="100" dataNode="pay" >
<table name="order" dataNode="pay1,pay2" rule="rule1"/>
</schema>
<dataNode name="user" dataHost="host" database="user" />
<dataNode name="pay1" dataHost="host" database="pay1" />
<dataNode name="pay2" dataHost="host" database="pay2" />
<dataHost name="host" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native">
<heartbeat>select 1</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.0.2:3306" user="root" password="root" />
<writeHost host="hostM2" url="192.168.0.3:3306" user="root" password="root" />
</dataHost>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
</mycat:server>
Как показано в примере, все параметры переменных Mycat настраиваются в файле server.xml, а все переменные настраиваются под тегом system. Если вам нужно настроить определённую переменную, добавьте соответствующую конфигурацию, например, если вам нужно добавить порт запуска 8066 (по умолчанию 8066):
<property name="serverPort">8066</property>
Другие переменные аналогичны.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<user name="mycat">
<property name="password">mycat</property>
<property name="schemas">TESTDB</property>
</user>
</mycat:server>
Как видно из примера, все подключения пользователей и сопоставление логических баз данных в Mycat настраивается в файле server.xml под тегом user. Например, в примере настроен пользователь mycat для приложения для подключения к Mycat, и в то же время Mycat настроил логическую базу данных TESTDB в schema.xml и завершил сопоставление между пользователем и логической базой данных.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )