MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

DBaaS, chmura i przejrzysty routing zapytań

Najczęściej repliki są wdrażane w celu zapewnienia wysokiej dostępności i/lub skalowania odczytu. Jeśli podstawowy nie powiedzie się, jedna z replik jest promowana do podstawowego. Jeśli jest dużo odczytów, a tak jest prawie zawsze, repliki są dodawane w celu skalowania. W idealnym przypadku zapisy są kierowane do podstawowego, a odczyty są równoważone obciążeniem w replikach. To najskuteczniejszy sposób wykorzystania dostępnych zasobów.

RDS, Azure Database i Cloud SQL zapewniają indywidualne punkty końcowe dla instancji bazy danych, jeden dla podstawowej i jeden dla każdej repliki. Jeśli chcesz równoważyć odczyty, musisz utworzyć wiele połączeń (po jednym dla każdej repliki) i zrobić to samodzielnie. Jeśli chcesz wykonywać zapisy na serwerze podstawowym i odczyty na replikach (tj. dzielenie odczytu/zapisu), musisz utworzyć dodatkowe połączenie z serwerem podstawowym i zrobić to samodzielnie.

Nie śmieszne. Nie fajne.

Dzięki MaxScale, zaawansowanemu serwerowi proxy bazy danych dla MariaDB Enterprise Server, nie musisz się tym martwić. MaxScale wykonuje dla Ciebie równoważenie obciążenia odczytu i dzielenie odczytu/zapisu — to jest to, co nazywamy przezroczystym routingiem zapytań. Deweloperzy nie powinni martwić się o infrastrukturę fizyczną (tj. topologię bazy danych). Dlaczego mieliby? Może jest jedna replika, może jest pięć. Może administratorzy baz danych dodali replikę zeszłej nocy, a może usunęli dwie. To nie powinno mieć znaczenia, a aplikacje nie powinny się z tego rozliczać.

To świetna rzecz w MaxScale. Oddziela podstawową infrastrukturę bazy danych i topologię wdrażania. Może to samodzielna baza danych. Może to zreplikowana baza danych. Może to klastrowana baza danych. Kogo to obchodzi? Zwłaszcza w chmurze.

Dlaczego więc możesz korzystać z przejrzystego routingu zapytań lokalnie, ale nie w chmurze? Ponieważ RDS, Azure Database i Google Cloud SQL nie mają MaxScale. Gdyby tylko istniał DBaaS z MaxScale i przejrzystym routingiem zapytań. Gdybyśmy tylko mogli wznieść się wyżej dzięki najlepszej chmurze MariaDB. Czekaj, witaj SkySQL!

Tak, wprowadziliśmy moc MaxScale do SkySQL.

Po utworzeniu zreplikowanej bazy danych otrzymasz nazwę hosta i dwa porty, jeden do odczytu i jeden do odczytu/zapisu. Potrzebujesz tylko portu odczytu/zapisu, ponieważ wykonuje on również równoważenie obciążenia odczytu. Ale jeśli masz aplikacje tylko do odczytu (np. BI/raportowanie), port do odczytu może się przydać. Łatwe straszne.

Możesz zadać sobie pytanie, czy Shane właśnie udostępnił nazwę hosta i port swojej bazy danych?

Dlaczego tak, tak zrobiłem. Domyślnie bazy danych SkySQL są niedostępne. Musisz dodać do białej listy adresy IP (lub zakresy) wszystkich klientów i serwerów aplikacji wymagających dostępu. A jedyny adres IP, który dodałem do białej listy, to adres mojego laptopa w domu. Powodzenia.

Wracając do tematu, zobaczysz dwa porty:5001 do dzielenia odczytu/zapisu (zapis do podstawowego, równoważenie obciążenia odczytu w replikach) i 5002 do równoważenia obciążenia tylko do odczytu. Moja baza danych ma dwie repliki, ale łączące się z nią aplikacje nie muszą się tym martwić. Mógłbym jutro dodać jeszcze dwie repliki i nie byłyby wymagane żadne zmiany aplikacji, aby z nich skorzystać. MaxScale po prostu i automatycznie rozpocznie kierowanie do nich odczytów.

A jeśli pierwotna zawiedzie, nic wielkiego. MaxScale automatycznie promuje replikę i rozpoczyna routing do niej zapisy (oraz odczyty równoważące obciążenie w pozostałych replikach). Jeśli kiedykolwiek cierpiałeś z powodu nieprzewidywalnego czasu przełączania awaryjnego RDS, wiesz dlaczego. Przełączanie awaryjne RDS opiera się na propagacji DNS, więc nie musisz zmieniać nazwy hosta punktu końcowego. Jest prawie przezroczysty, ale wymaga czasu. Z drugiej strony dzięki MaxScale jest to natychmiastowe – nie jest wymagana propagacja DNS.

Ale nie chcę zbytnio odbiegać od tematu. Planuję coś innego dla HA. Bądź na bieżąco.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przygotowanie serwera MySQL lub MariaDB do produkcji — część druga

  2. Jak działa funkcja CONVERT() w MariaDB

  3. 2 sposoby, aby dowiedzieć się, do którego kwartału należy data w MariaDB

  4. Jak FIND_IN_SET() działa w MariaDB?

  5. Replikacja MySQL z ProxySQL na serwerach WHM/cPanel:część druga