Путь к тому, чтобы стать инженером Java | Официальная версия 2020 г.

Java
основная версия Время обновления Примечание
v3.0 2020-03-31 Система знаний идеальна, на базе v2.0 добавлено около 20% новых очков знаний.
Отрегулируйте порядок и структуру некоторых знаний, чтобы облегчить чтение и понимание
Создан через страницу GitHub для удобного чтения
v2.0 2019-02-19 Структурная перестройка, более подходящая от входа до мастера;
дальнейшее совершенствование системы знаний;
добавление новых технологий;
v1.1 2018-03-12 Расширьте знания о новых технологиях и улучшите систему знаний
v1.0 2015-08-01 Начальная версия

Адрес проекта на GitHub:Входить

Страницы GitHub читать полностью:Входить

Gitee Pages Читать полностью:Входить(Внутренняя скорость доступа выше)

Основы

объектно-ориентированный

Что такое объектная ориентация

Объектно-ориентированный и процессно-ориентированный

Три основные характеристики объектно-ориентированного

Пять основных принципов объектной ориентации

инкапсуляция, наследование, полиморфизм

Что такое полиморфизм

Переопределение и перегрузка методов

Наследование и реализация в Java

Наследование и композиция в Java

Конструктор против конструктора по умолчанию

Переменные класса, переменные-члены и локальные переменные

переменная-член и область действия метода

Независимость от платформы

Как Java реализует независимость от платформы

Какие еще языки поддерживает JVM

передать по значению

передача по значению, передача по ссылке

Почему Java работает только по значению

Основы Java

базовый тип данных

8 основных типов данных

Диапазон значений byte, short, int и long в целочисленном типе

Что такое тип с плавающей запятой?

Что такое одинарная и двойная точность?

Почему сумма не может быть представлена ​​числом с плавающей запятой?

Автоматическая распаковка

Автоматическая распаковка

Целочисленный механизм кэширования

Как правильно определить тип возвращаемого значения (логический/логический) и имя (успех/успех) интерфейса

String

неизменность строк

Ограничение длины строки

Принцип и отличие подстроки в JDK 6 и JDK 7

Разница между replaceFirst, replaceAll и replace

Различия и связи между String, StringBuilder и StingBuffer

Перегрузка строки для "+"

Несколько способов и отличия конкатенации строк

Разница между String.valueOf и Integer.toString

переключить поддержку String

Струнный пул

Постоянный пул (постоянный пул времени выполнения, постоянный пул класса)

intern

Различные ключевые слова в Java

transient

instanceof

volatile

synchronized

final

static

const

Класс коллекции

Разница между коллекцией и коллекциями

Использование общих классов коллекций

Разница между набором и списком

Разница между ArrayList, LinkedList и Vector

Разница между SynchronizedList и Vector

Как Set гарантирует, что элементы не повторяются

Различия между HashMap, HashTable, ConcurrentHashMap

Справочная информация, принцип и т. Д. Красно-черных деревьев, связанных с картой, в Java 8.

Емкость HashMap, расширение, хэш и другие принципы

Использование потоков в Java 8

Использование класса инструментов обработки коллекций Apache

Отличия и причины реализации HashMap в разных версиях JDK

На что следует обратить внимание при использовании списка, полученного с помощью Arrays.asList

Как повторяется коллекция

Разница между перечислением и итератором

Как удалить элементы в ArrayList при обходе

отказоустойчивый и отказоустойчивый

CopyOnWriteArrayList

ConcurrentSkipListMap

перечислить

использование перечисления

Реализация перечисления

Перечисления против синглтонов

Класс перечисления

Сравнение перечислений Java

переключить поддержку перечислений

Как реализовать сериализацию перечисления

Проблемы безопасности потоков с перечислениями

IO

поток символов, поток байтов

входной поток, выходной поток

Преобразование между потоком байтов и потоком символов

Синхронный Асинхронный

блокирующий, неблокирующий

5 моделей ввода-вывода Linux

Разница между BIO, NIO и AIO

Использование и принцип трех IO

netty

отражение

что такое отражение

Что делает отражение

Класс

java.lang.reflect.*

Динамический прокси

статический прокси

Динамический прокси

Связь между динамическим прокси и отражением

Несколько реализаций динамических прокси

AOP

Сериализация

Что такое сериализация и десериализация

Как Java реализует сериализацию и десериализацию

В чем разница между Serializable и Externalizable

Зачем нужна сериализация

serialVersionUID

Почему нельзя случайно изменить serialVersionUID?

transient

Основной принцип сериализации

Как сериализация разрушает одноэлементный шаблон

protobuf

Почему сериализация небезопасна

аннотация

метааннотация

пользовательская аннотация

Часто используемые аннотации в Java

Сочетание аннотации и отражения

Как настроить аннотацию?

Весенние общие аннотации

Дженерики

что такое дженерики

стирание типа

Проблемы с дженериками

K T V E в дженериках? Значение объекта и т. д.

Различные варианты использования дженериков

Квалифицированные подстановочные знаки и неквалифицированные подстановочные знаки

Квалификаторы верхней и нижней границы расширяются и супер

Разница между списком и списком примитивных типов?

В чем разница между List> и List?

модульный тест

junit

Сочетание юнита и весны

mock

mockito

База данных в памяти (h2)

регулярное выражение

java.lang.util.regex.*

Часто используемая библиотека инструментов Java

apache-commons

google-guava

netty

API&SPI

API

Связь и разница между API и SPI

Как определить СПИ

Принцип реализации SPI

аномальный

Ошибка и исключение

тип исключения

Ключевые слова, связанные с исключениями

Правильно обрабатывать исключения

пользовательское исключение

цепочка исключений

try-with-resources

Порядок выполнения наконец и возврата

обработка времени

Часовой пояс

зимнее время и летнее время

отметка времени

API времени в Java (Java 8)

Время по Гринвичу

Значение и взаимосвязь нескольких общих времен CET, UTC, GMT и CST.

Проблемы безопасности потоков с SimpleDateFormat

Обработка времени в Java 8

Как получить американское время на компьютере в Восточном восьмом округе

В чем разница между гггг и ГГГГ?

Кодирование

Что такое ASCII?

Unicode

Зачем нам UTF-8 с Unicode?

Различия между UTF8, UTF16 и UTF32

Зачем вам GBK с UTF8?

Отличие ГБК, ГБ2312, ГБ18030

Кодирование и декодирование URL

Big Endian и Little Endian

Как исправить искаженные символы

синтаксический сахар

Принцип синтаксического сахара в Java, решение синтаксического сахара

Общие принципы синтаксического сахара: переключатель поддерживает String и перечисление, дженерики, автоматическую упаковку и распаковку, параметры переменной длины метода, перечисление, внутренние классы, условную компиляцию, утверждения, числовые литералы, for-each, try-with-resource, лямбда-выражение, вывод типа локальной переменной, запись

JMS

Что такое служба сообщений Java

Модель обмена сообщениями JMS

JMX

java.lang.management.*

javax.management.*

Java 8

лямбда-выражение

Stream API

API времени

прочитать исходный код

String

Integer

Long

Enum

BigDecimal

ThreadLocal

ClassLoader & URLClassLoader

ArrayList & LinkedList

HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap

HashSet & LinkedHashSet & TreeSet

Параллельное программирование на Java

Параллелизм и параллелизм

что такое параллелизм

что такое параллелизм

Разница между параллелизмом и параллелизмом

нить

разница между потоком и процессом

реализация потока

состояние потока

приоритет потока

планирование потоков

Как отлаживать многопоточность

Нить демона

Несколько способов создания потоков

Наследование класса Thread для создания потока

Реализуйте интерфейс Runnable для создания потока

Создание потоков через Callable и FutureTask

Создать поток из пула потоков

Пул потоков

Создайте собственный пул потоков

отправить() и выполнить()

Принцип пула потоков

Почему нельзя создавать пулы потоков с Executors

потокобезопасность

что такое безопасность потоков

Проблемы с многоуровневым кэшированием и когерентностью

Срезы процессорного времени и проблемы атомарности

Перестановка инструкций и вопросы заказа

Связь между потокобезопасностью и моделью памяти

happens-before

as-if-serial

Замок

повторная блокировка

блокирующий замок

Оптимистическая блокировка и пессимистическая блокировка

Механизм блокировки, связанный с базой данных

Распределенная блокировка

нет замка

CAS

Вопросы ABA для CAS

оптимизация блокировки

Блокировка смещения

Легкий замок

тяжелый замок

снятие блокировки

блокировка огрубления

блокировка спина

тупик

что такое тупик

Причина взаимоблокировки

Как избежать тупика

Написать заблокированную программу

Как устранить проблемы взаимоблокировки

synchronized

Как реализована синхронизация?

Связь между синхронизацией и блокировкой

Как реализовать потокобезопасный синглтон без использования синхронизированного

синхронизация и атомарность

синхронизация и видимость

синхронизировано и заказано

volatile

Изменение порядка инструкций компилятора и изменение порядка инструкций ЦП

Принцип реализации изменчивого

барьер памяти

изменчивость и атомарность

изменчивость и видимость

изменчивый и упорядоченный

Зачем вам volatile с symchronized?

методы, связанные с потоком

start & run

sleep & wait

notify & notifyAll

ThreadLocal

Принцип ThreadLocal

Базовая структура данных ThreadLocal

Напишите код для решения проблемы производитель-потребитель

параллельный пакет

Синхронные контейнеры и параллельные контейнеры

Thread

Runnable

Callable

ReentrantLock

ReentrantReadWriteLock

Atomic*

Semaphore

CountDownLatch

ConcurrentHashMap

Executors

Нижний слой

JVM

Структура памяти JVM

область данных времени выполнения

Какие области данных времени выполнения являются исключительными для потоков?

разница между кучей и стеком

Расположение области метода в разных версиях JDK

память вне кучи

TLAB

Обязательно ли объекты в Java размещаются в куче?

вывоз мусора

Алгоритм GC: удаление меток, подсчет ссылок, репликация, сжатие меток, сбор по поколениям, инкрементный сбор

параметры ГХ

Определение выживания объекта

Сборщики мусора (CMS, G1, ZGC, Epsilon)

Параметры и настройка JVM

-Xmx

-Xmn

-Xms

Xss

-XX:SurvivorRatio

-XX:PermSize

-XX:MaxPermSize

-XX:MaxTenuringThreshold

Объектная модель Java

oop-klass

заголовок объекта

HotSpot

Своевременный компилятор

Оптимизация компиляции

Модель памяти Java

модель памяти компьютера

когерентность кэша

протокол МЭСИ

видимость

атомарность

последовательный

happens-before

as-if-serial

барьер памяти

synchronized

volatile

final

Замок

Средства мониторинга производительности виртуальных машин и устранения неполадок

jps

jstack

jmap

jstat

jconsole

jinfo

jhat

javap

btrace

TProfiler

Arthas

механизм загрузки классов

classLoader

Безопасен ли поток процесса загрузки класса?

процесс загрузки класса

Родительское делегирование (уничтожение родительского делегирования)

Модульность (модули jboss, osgi, jigsaw)

упаковочный инструмент

банка, jlink, jpackage

Компиляция и декомпиляция

что такое компиляция

что такое декомпиляция

Компилятор: javac

Инструменты декомпиляции: javap, jad, CRF

JIT

JIT-оптимизация (экранирующий анализ, выделение стека, скалярная замена, оптимизация блокировок)

Передовой

Базовые знания Java

байт-код

формат файла класса

CAFEBABE

битовая операция

Сложение, вычитание, умножение, деление и получение остатка с помощью побитовых операций

Шаблоны проектирования

Шесть принципов шаблонов проектирования

принцип открыто-закрыто

Принцип замены Лисков

Принцип инверсии зависимости

Принцип разделения интерфейса

Закон Деметры (принцип наименьшего знания)

Принцип синтетического повторного использования

Создание шаблонов проектирования

одноэлементный шаблон

Абстрактный заводской узор

режим строителя

заводской узор

режим прототипа

Шаблоны структурного проектирования

режим адаптера

режим моста

орнамент

Комбинированный режим

Внешний вид Режим

наилегчайший образец

прокси-режим

Шаблоны поведенческого проектирования

Шаблон метода шаблона

командный режим

шаблон итератора

Шаблон наблюдателя

модель посредника

режим заметки

Режим переводчика

режим состояния

режим стратегии

Модель цепочки ответственности

шаблон посетителя

Семь способов написать синглтон

Ленивый - поток небезопасен

Ленивый человек — безопасность потоков

голодный человек

Голодный человек - Вариант

статический внутренний класс

перечислить

замок с двойной проверкой

Почему рекомендуется реализовывать синглтоны с перечислениями?

Отличие и связь трех заводских режимов

Простая фабрика, Фабричный метод, Фабрика шаблонов

Используйте общие шаблоны проектирования

режим адаптера

режим стратегии

Шаблон метода шаблона

Шаблон наблюдателя

Внешний вид Режим

прокси-режим

Реализовать поточно-ориентированный одноэлементный шаблон без синхронизации и блокировки

нио и схемы проектирования реакторов

Какие шаблоны проектирования используются в Spring

Знание сетевого программирования

Общий протокол

TCP, UDP, HTTP, HTTPS

Реализация протоколов FTP и SMTP с помощью Java

Семиуровневая модель OSI

Основные протоколы на каждом уровне

TCP/UDP

Три рукопожатия и четыре закрытия

Управление потоком и контроль перегрузки

tcp залипание и распаковка

TCP/IP

IPV4

IPV6

HTTP

Разница между http/1.0 http/1.1 http/2

Разница между http и https

Разница между get и post в http

Коды состояния, возвращаемые обычными веб-запросами

Что означают 404, 302, 301 и 500?

Напишите простой HTTP-сервер для статических файлов на Java.

http/2

Java RMI, сокет, HttpClient

куки и сеансы

cookie отключен, как реализовать сеанс

Понять характеристики серверов nginx и apache и построить соответствующий сервер

способ связи между процессами

Что такое CDN? Если реализовано?

DNS

Что такое DNS

Тип записи: запись A, запись CNAME, запись AAAA и т. д.

DNS

корневой сервер имен

Загрязнение DNS

Перехват DNS

Общедоступный DNS: 114 DNS, Google DNS, OpenDNS

играет роль

обратный прокси

прямой прокси

обратный прокси-сервер

Базовые знания

Servlet

жизненный цикл

вопросы безопасности потоков

фильтр и слушатель

Общие конфигурации и функции в web.xml

Hibernate

Что такое OR Mapping

Механизм кэширования Hibernate

Спящий режим с ленивой загрузкой

Разница между Hibernate/Ibatis/MyBatis

MyBatis

Механизм кэширования Mybatis

#{}и${}разница

Передать несколько параметров в маппер

Mybatis динамический sql

Ленивая загрузка в Mybatis

Spring

Инициализация бина

Принцип АОП

Реализация Spring IOC

Четыре типа внедрения зависимостей в spring

Spring MVC

Что такое МВК

Разница между Spring mvc и Struts mvc

Spring Boot

Spring Boot 2.0

Зависит от запуска

Автоматическая конфигурация

Стартовый принцип Spring Boot

Реализовать стартер самостоятельно

Почему Spring Boot может запускать веб-проект через main

Spring Security

Spring Cloud

Открытие и регистрация сервисов: Eureka, Zookeeper, Consul

Балансировка нагрузки: Feign, Spring Cloud Loadbalance

Конфигурация службы: Spring Cloud Config

Ограничение рабочего тока и автоматический выключатель: Hystrix

Отслеживание служебных ссылок: Dapper

Сервисный шлюз, безопасность, обмен сообщениями

Знание сервера приложений

JBoss

tomcat

jetty

Weblogic

инструмент

git & svn

maven & gradle

трюки

слияние ветвей

Решение конфликта

совершить откат

знатоки трюки

дерево зависимостей

полагаться на арбитраж

Intellij IDEA

Общие плагины: Maven Helper, FindBugs-IDEA, определение спецификации кода Alibaba, GsonFormat, плагин Lombok, .ignore, плагин Mybatis

Передовой

новая технология

Java 9

Jigsaw

Jshell

Reactive Streams

Java 10

вывод типа локальной переменной

Параллельный полный сборщик мусора для G1

Механизм рукопожатия ThreadLocal

Java 11

ZGC

Epsilon

улучшить переменную

Java 12

Переключить выражение

Java 13

Text Blocks

Dynamic CDS Archives

Java 14

Инструмент упаковки Java

Более ценное исключение NullPointerException

тип записи

Spring 5

реактивное программирование

Spring Boot 2.0

http/2

http/3

оптимизация производительности

использовать синглтон

Использовать режим будущего

Использовать пул потоков

выберите готовый

уменьшить переключение контекста

Уменьшить детализацию блокировки

Сжатие данных

кэш результатов

Параллельный поток

Настройка GC

Настройка распределения памяти JVM

Настройка SQL

онлайн анализ проблем

dump

Дамп потока

дамп памяти

ситуация с gc

Инструменты сбора и анализа дампа

jstack

jstat

jmap

jhat

Arthas

тупик анализа дампа

утечка памяти при анализе дампа

Пишите различные программы outofmemory, stackoverflow самостоятельно

HeapOutOfMemory

Young OutOfMemory

MethodArea OutOfMemory

ConstantPool OutOfMemory

DirectMemory OutOfMemory

Stack OutOfMemory Stack OverFlow

Arthas

связанные с JVM

связанный с классом/загрузчиком классов

связанные с мониторингом/наблюдением/отслеживанием

options

трубопровод

Фоновые асинхронные задачи

Общие идеи решения проблем

переполнение памяти

тупик потока

конфликт загрузки классов

парящий груз

Загрузка процессора растет

медленный SQL

Используйте инструменты, чтобы попытаться решить следующие проблемы и написать резюме

Как найти проблемы, когда программа Java медленно отвечает

Как решить проблему, когда Java-программа часто вызывает FullGC

Как просмотреть журналы сборки мусора

Как решить, когда OutOfMemory возникает в приложении Java

Как определить, возникает ли взаимоблокировка

Как узнать, есть ли утечка памяти

Используйте Arthas для быстрого устранения проблем с приложением Spring Boot 404/401

Используйте Arthas для устранения проблем с полным журналом онлайн-приложений

Использование Arthas для устранения неполадок приложения Spring Boot NoSuchMethodError

Знание принципа компиляции

Компиляция и декомпиляция

Компиляция и декомпиляция кода Java

декомпилятор Java

javap

jad

CRF

Своевременный компилятор

оптимизация компилятора

Знание операционной системы

Общие команды в Linux

find, grep, ps, cp, move, tar, head, tail, netstat, lsof, tree, wget, curl, ping, ssh, echo, free, top

межпроцессного взаимодействия

Показатели производительности сервера

load

Загрузка процессора

использование памяти

qps

rt

Синхронизация процессов

проблема производителя-потребителя

Обеденная проблема философа

проблема с читателем и писателем

переполнение буфера

Сегментация и пагинация

виртуальная память против основной памяти

управление виртуальной памятью

алгоритм подачи страницы

Знание баз данных

Исполняющий движок MySql

План выполнения MySQL

Как посмотреть план выполнения

Как оптимизировать SQL на основе плана выполнения

показатель

Хэш-индекс и индекс B-дерева

Нормальный индекс и уникальный индекс

Кластеризованные и некластеризованные индексы

индекс покрытия

крайний левый префикс

выталкивание индекса

аннулирование индекса

форма возврата

SQL-оптимизация

Транзакции базы данных и уровни изоляции

ACID транзакции

Уровень изоляции транзакции и феномен чтения

Может ли транзакция реализовать функцию блокировки?

Кодирование

utf8

utf8mb4

почему бы не использовать кодировку utf8 в базе данных

количество строк

Разница между count(1), count(*) и count(field)

Почему рекомендуется использовать count(*)

блокировка базы данных

общая блокировка, эксклюзивная блокировка

блокировка строки, блокировка таблицы

оптимистический замок, пессимистический замок

Оптимистическая блокировка с использованием блокировок базы данных

Gap Lock, блокировка следующей клавиши

соединять

внутреннее соединение

левое соединение

правильное соединение

Построение активной и резервной базы данных

log

binlog

redolog

База данных памяти

h2

Подбиблиотека и подтаблица

разделение чтения-записи

Часто используемая база данных nosql

redis

memcached

Используйте блокировки базы данных и NoSql для реализации распределенных блокировок соответственно.

настройка производительности

пул соединений с базой данных

Знание структур данных и алгоритмов

простая структура данных

куча

очередь

связанный список

множество

хеш-таблица

Сходства и различия между стеками и очередями

Две структуры хранения, обычно используемые стеками

Два стека реализуют очереди, а две очереди реализуют стеки.

Дерево

бинарное дерево

словарное дерево

Сбалансированное дерево

дерево сортировки

B-дерево

В+ дерево

R-дерево

многоходовое дерево

красно-черное дерево

куча

большая куча корней

небольшая корневая куча

рисунок

ориентированный граф

Неориентированный граф

топология

Стабильный алгоритм сортировки

Пузырьковая сортировка

Сортировка вставками

Сортировка коктейлей

сортировка ведра

сортировка по подсчету

Сортировка слиянием

Сортировка слиянием на месте

Двоичная сортировка Сортировка по дереву

сортировка по полочкам

сортировка по основанию

Гном сорт

библиотечная сортировка

порядок блоков

нестабильный алгоритм сортировки

сортировка выбором

Сортировка холмов

Алгоритм сортировки клевера

гребенчатая сортировка

сортировка кучей

гладкая сортировка

быстрая сортировка

вид самоанализа

Сортировать по терпению

Сложность времени и сложность пространства

Как рассчитать временную сложность и пространственную сложность

Временная сложность распространенных алгоритмов сортировки

Поиск в глубину и в ширину

полный массив

как дела

Алгоритм КМП

хеш-алгоритм

Массовая обработка данных

разделяй и властвуй

хеш-карта

сортировка кучей

Двуствольный дивизион

Bloom Filter

bitmap

индекс базы данных

мэпредьюс и т.д.

Знание больших данных

поиск

Solr

Lucene

ElasticSearch

Потоковые вычисления

Storm

Spark

Flink

Hadoop, автономные вычисления

HDFS

MapReduce

Распределенный сбор журналов

flume

kafka

logstash

сбор данных

mahout

Знание сетевой безопасности

XSS

Защита от XSS

CSRF

инъекционная атака

SQL-инъекция

XML-инъекция

инъекция CRLF

Уязвимость при загрузке файлов

шифрование и дешифрование

Симметричное шифрование

Асимметричное шифрование

хеш-алгоритм

Алгоритм соленого хэша

Алгоритм шифрования

MD5

SHA1

DES

AES

RSA

DSA

радужный стол

DDOS-атака

DOS атаки

DDOS-атака

Почему memcached может привести к DDos-атакам

Что такое рефлективный DDoS

Как провести DOS-атаку через коллизию хэшей

SSL, TLS, HTTPS

Удаление библиотеки, промывка библиотеки, наполнение библиотеки

Архитектура

Принципы проектирования архитектуры

Принцип единой ответственности

открытый закрытый принцип

Принцип замены Рихтера

Принцип инверсии зависимости

Принцип разделения интерфейсов

распределенный

Распределенные и кластеризованные

согласованность данных

Служба управления

понижение уровня обслуживания

распределенная теория

2PC

3PC

CAP

BASE

Распределенная координация Zookeeper

Базовые концепты

Обычное использование

ZAB-алгоритм

расколотый мозг

Распределенная транзакция

Локальные транзакции и распределенные транзакции

Надежная консистентность сообщений

уведомление о лучших усилиях

TCC

Dubbo

регистрация службы

обнаружение службы

Служба управления

Распределенная база данных

Как создать распределенную базу данных

Когда вам нужна распределенная база данных

mycat

otter

HBase

Распределенная файловая система

mfs

fastdfs

Распределенный кеш

когерентность кэша

частота попаданий в кэш

избыточность кэша

Понижение текущего лимита

Режим предохранителя

Hystrix

Sentinal

resilience4j

распределенный алгоритм

Византийские проблемы и алгоритмы

2PC

3PC

алгоритм консенсуса

Алгоритм Paxos и алгоритм Raft

ZAB-алгоритм

Дизайн, управляемый доменом

Сущность, объект значения

Агрегат, совокупный корень

ограниченный контекст

Как многоуровневый DDD

Модель гиперемии и модель анемии

Какое отношение DDD имеет к микросервисам

Микросервисы

SOA

Закон Конвея

ServiceMesh

sidecar

Docker & Kubernets

Spring Boot

Spring Cloud

Высокий параллелизм

Подбиблиотека и подтаблица

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

Проблема распределенной транзакции после подбазы данных и подтаблицы

Технология CDN

очередь сообщений

RabbitMQ, RocketMQ, ActiveMQ, Кафка

Сравнение различных очередей сообщений

Высокая доступность

Двухмашинная архитектура

Активно-резервная репликация

репликация master-slave

мастер-мастер-репликация

Жить в разных местах

высокая производительность

высокопроизводительная база данных

разделение чтения-записи

Подбиблиотека и подтаблица

Кэш высокой производительности

проникновение в кеш

Кэш Лавина

точка доступа к кешу

балансировки нагрузки

КПП, ТПК

монитор

что контролировать

CPU

ОЗУ

Дисковый ввод-вывод

Сетевой ввод-вывод и т. д.

Средства мониторинга

Мониторинг процесса

Семантический мониторинг

Мониторинг ресурсов машины

колебания данных

Сбор данных мониторинга

бревно

Похороненный

Dapper

балансировки нагрузки

Классификация балансировки нагрузки

Балансировка нагрузки уровня 2

Балансировка нагрузки уровня 3

Балансировка нагрузки уровня 4

Балансировка нагрузки уровня 7

инструмент балансировки нагрузки

LVS

Nginx

HAProxy

алгоритм балансировки нагрузки

Статические алгоритмы балансировки нагрузки: Round Robin, Ratio, Priority

Алгоритм динамической балансировки нагрузки: минимальное количество подключений, максимальная скорость отклика, метод наблюдения, метод прогнозирования, динамическое распределение производительности, динамическое пополнение серверов, качество обслуживания, тип обслуживания, режим правила.

DNS

Принцип DNS

Дизайн DNS

CDN

согласованность данных

Расширение

облачные вычисления

IaaS

SaaS

PaaS

технология виртуализации

openstack

Serverlsess

поисковый движок

Solr

Lucene

Nutch

Elasticsearch

управление полномочиями

Shiro

блокчейн

хеш-алгоритм

Дерево Меркла

криптография с открытым ключом

алгоритм консенсуса

Протокол плота

Алгоритм Paxos и алгоритм Raft

Византийские проблемы и алгоритмы

Код аутентификации сообщения и цифровая подпись

биткойн

добыча полезных ископаемых

механизм консенсуса

Молниеносная сеть

боковая цепь

Горячие вопросы

вилка

Эфириум

Гиперледжер

искусственный интеллект

Математическая основа

машинное обучение

Искусственные нейронные сети

глубокое обучение

Сценарии применения

Общая структура

TensorFlow

DeepLearning4J

IoT

квантовые вычисления

AR & VR

Другие языки

Groovy

Kotlin

Python

Go

NodeJs

Swift

Rust