как настроить сервер Flashcards

1
Q

Servlet

A

Каждый сервлет – реализация интерфейса Servlet
Сервлет живет и умирает в пределах процесса сервера.
Три метода, определяющих жизненный цикл сервлета:
public void init(ServletConfig config);
service(ServletRequest request, ServletResponse response) ;
destroy() вызывается перед удалением экземпляра(дает возможность очистить память и освободить ресурсы и соединения)
GetServletInfo() -возвращает инфо о сервлете
GetServletConfig() -возвращает объект содержащий список парамеров сервлета

параметры для сервлета(ServletConfig ) заносятся в web.xml

Класс ServletRequest
Содержит параметры сервлета, аттрибуты контекста и входной поток
getRemoteAdress()
getRemoteHost()

Класс ServletResponse
Содержит выходной поток
getWriter() – возвращает поток вывода (объект java.io.PrintWriter)

интерфейс HttpServlet расширяет javax.servlet.GenericServlet
методы:
doGet(HttpServletRequest a, HttpServletResponse b)
doPost(HttpServletRequest a, HttpServletResponse b)
doPut(HttpServletRequest a, HttpServletResponse b)
duDelete(HttpServletRequest a, HttpServletResponse b)
doOptions()
doTrace()
(есть и doHead() – но он закрытый)
И два метода service, один публичный, другой protected. Именно в закрытом service методе в сервлете решается какой запрос нужно обработать(get, post или др.)
Если указанный метод отсутствует в сервлете, в ответ возвращается ошибка HTTP 405.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

В чем разница между GenericServlet, HttpServlet и сервлета?

A

Servlet - это интерфейс, определяющий, что должен выполнять сервлет. он обслуживает клиентский запрос и получает ответ от сервера. Сервлеты выполняются как поток в веб-контейнере, а не в отдельном процессе ОС.В первый раз при первом запросе создается только один объект, другой запрос использует один и тот же объект.
Сервлет независим от платформы.

GenericServlet - это просто общий, не зависящий от протокола сервлет.

HttpServlet - это сервлет, привязанный специально к протоколу HTTP.ны расширить HttpServlet для реализации веб-уровня приложения.Как правило, все, кодирующие этот API, используют HttpServlet для реализации веб-служб HTTP, Метод service, как правило, переопределяется, чтобы иметь возможность различать стандартные методы запросов, получаемые от Web-браузера клиента(get, post и т.д)

Вы можете реализовать Servlet, если вы пишете свой собственный контейнер или обрабатываете все самостоятельно. Вы можете расширить GenericServlet, чтобы обрабатывать другой протокол.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

HttpServletRequest

A

При каждом вызове методы doGet и doPost класса HttpServlet принимают в качестве параметра объект, который реализует интерфейс HttpServletRequest. Web-сервер, который исполняет сервлет, создает объект HttpServletRequest и передает его методу service сервлета (который в свою очередь передает его методу doGet или doPost). Данный объект содержит запрос, поступивший от клиента.
Имеет методы по получениям параметров, куков, сессии и т.д

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

HttpServletResponse

A

При каждом обращении к сервлету методы doGet и doPost класса HttpServlet принимают объект, который реализует интерфейс HttpServletResponse. Web-сервер, который исполняет сервлет, создает объект HttpServletResponse и передает его методу service сервлета (который в свою очередь передает его методу doGet или doPost). Объект HttpServletResponse описывает ответ клиенту.
ИЗ методов это: addCookie, getOutputStream(бинарного потока ), getWriter(символьного потока),setContentType

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Сервлет-контейнер и Сервер приложений

A

Сервлет-контейнер поддерживает только API сервлета (включая JSP, JSTL).

Сервер приложений поддерживает весь JavaEE - EJB, JMS, CDI, JTA, API сервлета (включая JSP, JSTL) и т.д.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Как работает Сервлет-контейнер и что такое ServletContext

A

Контейнер сервлетов — программа, представляющая собой сервер, который занимается системной поддержкой сервлетов и обеспечивает их жизненный цикл в соответствии с правилами
Когда контейнер сервлета (например Apache Tomcat) запустится, он развернет и загрузит все свои веб-приложения. Когда веб-приложение загружается, контейнер сервлета создает ServletContext один раз и хранит его в памяти сервера. Файл веб-приложения web.xml анализируется,и каждый найденный , и (или каждый класс, аннотированный с помощью @WebServlet, @WebFilter и @WebListener соответственно) создается один раз и сохраняется в серверной памяти. Для каждого созданного фильтра его метод init() вызывается с помощью нового FilterConfig.
Когда контейнер сервлета отключается, он выгружает все веб-приложения, вызывает метод destroy() всех его инициализированных сервлетов и фильтров.
ServletContext живет до тех пор, пока работает веб-приложение. Он используется всеми запросами во всех сеансах.
сервлеты и фильтры разделяются между всеми запросами и ели ты держить обьект в doGet то он потокобезопасен, а если это общий обьект на весь HTTP сервлет - то туда имеют доступ все потоки

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

соккет

A

API-интерфейсы Socket - это абстракция низкого уровня (транспортный уровень), с помощью которой приложение Java взаимодействует с сетью
Сокет и связанные с ним API поддерживают надежный поток байтов и ненадежные службы обмена сообщениями. Они обычно используются для TCP/IP и UDP/IP, хотя другие сетевые протокольные стеки могут (по крайней мере теоретически) поддерживаться.

RMI предназначен для высокоуровневых распределенных вычислений Java-Java.
Сервлеты предназначены для реализации веб-сайтов и веб-сервисов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

tomcat

A

контейнер сервлетов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

установка tomcat

A

Скачать распаковать.
Перед запуском необходимо прописать переменные среды CATALINA_HOME и JAVA_HOME.
открываете командную строку, переходите в каталог с tomcat в папку bin, там есть два файла, startup.bat и shutdown.bat. Первый включает, второй выключает наш сервер.
идём в браузер и открываем адрес localhost:8080
Конфигурация сервера производится с помощью *.xml файлов, находящихся в папке conf в корневом каталоге tomcat. Документация на сайте.
В корне tomcat есть папка webapps, которая ждёт-не дождётся пока ей кто ни будь не закинет файл с расширением war. war файлы – это специальные, так называемые web archives.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Отличия Tomcat oот Jboss

A

JBoss — это реализация спецификации JavaEE (контейнер для EAR- и WAR-приложений).
Tomcat — это частичная реализация JavaEE в той её части, которая включает Web-приложения (контейнер для WAR).

Tomcat - это только контейнер сервлетов, то есть он реализует только сервлеты и спецификацию jsp. Glassfish и JBoss - это полноценные серверы Java EE (включая такие вещи, как EJB, JMS,…), а Glassfish - эталонная реализация последнего стека Java EE 6, но JBoss в 2010 году еще не полностью его поддерживала.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Если есть 100 одновременных запросов на сервер к синглетон приложению, что произойдет

A

В общем, это зависит от контейнера сервлета. Большинство из них, однако, многопоточны. Они будут вызывать doGet() 100 раз, в нескольких потоках, и поэтому несколько потоков могут одновременно использовать один и тот же объект сервлета. Таким образом, вы должны сделать свои сервлеты потокобезопасными, или ваш сервлет, похоже, будет работать при низкой нагрузке, но затем таинственно разваливается, когда вы начнете получать больше запросов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Apache Lucene

A

библиотека для построения поисковых систем. Все, что она может, — только индексировать и искать. А API для ввода данных, для поисковых запросов, кластеризация и прочее — это все отдается на откуп «обертке».lasticsearch — это на самом деле не вполне самостоятельный поиск. Это, скорее, красивая обертка над библиотекой Apache Lucene

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Что нам дает Elasticsearch?

A

Масштабируемость и отказоустойчивость. Elasticsearch легко масштабируется. К уже имеющейся системе можно на ходу добавлять новые серверы, и поисковый движок сможет сам распределить на них нагрузку. При этом данные будут распределены таким образом, что при отказе какой-то из нод они не будут утеряны и сама поисковая система продолжит работу без сбоев.

На самом деле оно даже работает. В хипстерском стиле «чувак, вот тебе три команды — пользуйся ими и, пожалуйста, не задумывайся, какой ад происходит внутри». И часто это прокатывает. Новые ноды подключаются буквально парой строчек в конфиге, почти как у Redis

Мультиарендность (англ. multitenancy) — возможность организовать несколько различных поисковых систем в рамках одного объекта Elasticsearch. ситуации, когда систем поиска должно быть больше одной. Это либо мультиязычные системы, либо системы, где есть определенное количество пользователей, которым нужно предоставлять возможность поиска по их персональным данным.
Elasticsearch позволяет загружать в него обычный JSON-объект, а далее он уже сам все проиндексирует, добавит в базу поиска. Позволяет не заморачиваться слишком сильно над структурой данных при быстром прототипировании.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

CI Jenkins И GitLab

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Redis

A

Redis это размещаемое в памяти хранилище ключ-значение, обычно используемое для кэшей и подобных механизмов ускорения сетевых приложений. Мы, тем не менее, храним все наши данные в Redis — в нашей главной базе данны

Вы вынуждены умещать все свои данные в памяти, и…
— Если сервер откажет между двумя синхронизациями с диском — вы потеряете всё что сидело в памяти.

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Docker

A

это такой новомодный способ изоляции ваших приложений друг от друга с помощью linux namespaces. Контейнер состоит из слоев, т.е. из слепков состояний файловой системы. Внутри контейнера этот процесс имеет pid=1.
Существуют публичные и приватные хранилки официальных и неофициальных образов. Они называются docker registry. Самый популярный из них — Docker hub. Когда вы докеризуете какой-либо сервис, сходите сначала на хаб и посмотрите, а не сделал ли это кто-то уже за вас?
Кроме публичных registry существуют еще и приватные — платные и бесплатные. Платные вам понадобятся, когда вы в замучавшись обуслуживанием воскликните «да пусть вот эти ребята следят за всей этой слоёной docker-вакханалией в этих ваших registry». И правда, когда вы активно пользуетесь при DevOps докером, когда люди или автоматика билдит сотни контейнеров, то рано или поздно у вас начнет подгорать от того как это чистить и обслуживать.
Не все конечно так плохо, естественно. Для десятка человек и пары билдов в день подойдет и свой registry. Для личного пользования тем более.
Зачем может пригодиться registry? это единое место хранения и обмена контейнерами между вами, другими людьми или автоматикой.
Докер образ (image) — это некоторый набор слоёв. Каждый слой — результат работы команды в Dockerfile. Грубо говоря образ — это шаблон на основе которого вы будете запускать контейнеры. Все что запускается на основе этого образа есть контейнер, или инстанс. т.е. с одного образа можно запустить несколько одинаковых копий этого образа — контейнеров.
Для создания своих контейнеров существует механизм сборки — docker build. Он использует набор инструкций в Dockerfile для сборки вашего собственного образа. При сборке контейнера внутри используется оболочка sh и ваши команды исполняются в ней.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

хост

A

любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Kubernetes

A

для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

В каких условиях могут работать контейнеры Docker?

A

на всех основных дистрибутивах Linux, Microsoft Windows и на любой инфраструктуре, включая виртуальные машины, bare-metal и в облаке.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Где данные приложения находятся на Docker?

A

Данные приложения не хранятся в контейнере. Он живет в томе Docker, который разделяется между 1-N контейнерами, как определено архитектурой приложения. Sysadmins резервирует объем данных и забывает о контейнере.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Как можно запатчить докер?

A

Админы обновляют существующее изображение Docker, останавливают свои запущенные контейнеры и запускают новые. Поскольку контейнер можно разделить на несколько секунд, эти обновления выполняются экспоненциально быстрее, чем с виртуальными машинами.

22
Q

Могут ли контейнерные службы взаимодействовать с службами на базе VM? в докер

A

Да. Запуск приложения в комплекте контейнеров Docker не препятствует тому, чтобы он взаимодействовал со службами, запущенными на виртуальной машине.
Например, вашему приложению может потребоваться взаимодействие с базой данных, которая находится на виртуальной машине. При условии правильной работы сети ваше приложение может беспрепятственно взаимодействовать с этой базой данных.

23
Q

Каковы варианты использования Docker?

A
  • Контейнер для традиционных приложений (преимущество - изоляция контейнеров, переносимость, снижение затрат)
  • Непрерывная интеграция и развертывание (CI / CD) (преимущества - это упрощение времени тестирования CI, масштабирование инфраструктуры тестирования CI, интеграция - API, открытые интерфейсы и webhooks позволяют легко интегрировать в существующие инструменты и процессы для дальнейшей автоматизации конвейера и автоматизации приложений, экономя время и улучшая качество программного обеспечения, мгновенно создавая хосты и контейнеры Docker для параллельной параллельной работы тестов.)
  • Microservices (преимущества - разработчики могут свободно использовать нужные инструменты и стеки без создания конфликтов приложений, ускорения темпов инноваций новых функций программного обеспечения, обеспечения согласованности в приложении env.)
24
Q

image в docker

A

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

25
Q

Что такое контейнер в докер?

A

Контейнер представляет собой экземпляр времени выполнения изображения - то, что изображение становится в памяти при фактическом выполнении. Он по умолчанию полностью изолирован от среды хоста, но только для доступа к файлам хоста и портам, если он настроен для этого.

26
Q

почему докер контейнеры имеют лучшие рабочие характеристики, чем виртуальные машины?

A

Контейнеры запускают приложения изначально на ядре хост-машины. Они обладают более высокими характеристиками производительности, чем виртуальные машины, которые получают виртуальный доступ к ресурсам хоста через гипервизор. Контейнеры могут получить собственный доступ, каждый из которых работает в дискретном процессе, не занимая больше памяти, чем любой другой исполняемый файл.

27
Q

Как докер контейнеры работают

A

Контейнеры могут совместно использовать одно ядро, и единственной информацией, которая должна быть в изображении контейнера, является исполняемый файл и его зависимости от пакета, которые никогда не должны устанавливаться в главной системе. Эти процессы выполняются как собственные процессы, и вы можете управлять ими индивидуально, выполняя команды, такие как docker ps, - так же, как вы будете запускать ps в Linux, чтобы увидеть активные процессы. Наконец, поскольку они содержат все их зависимости, нет никакого переплетения конфигурации; контейнерное приложение «работает где угодно».

28
Q

Dockerfile

A

Dockerfile определит, что происходит в среде внутри вашего контейнера. Доступ к таким ресурсам, как сетевые интерфейсы и дисководы, виртуализирован внутри этой среды, которая изолирована от остальной части вашей системы, поэтому вам нужно отображать порты во внешний мир и быть конкретными, какие файлы вы хотите «скопировать» на это окружающая среда. Однако, после этого, вы можете ожидать, что сборка вашего приложения, определенного в этом файле Docker, будет вести себя точно так же, где бы он ни работал.

29
Q

Какова иерархия распределенных приложений?

A

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

30
Q

Может ли несколько контейнеров работать на одном компьютере и как?

A

Да. Они совместно используют ядро ​​ОС с другими контейнерами, каждый из которых выполняет изолированные процессы в пользовательском пространстве.

31
Q

гипервизор

A

Гипервизор или монитор виртуальной машины (VMM) - это компьютерное программное обеспечение, прошивка или аппаратное обеспечение, которое создает и запускает виртуальные машины.

32
Q

What is a swarm?

A

Docker Swarm - это встроенная функция Docker для поддержки кластеризации машин Docker. Рой состоит из нескольких Node, которые могут быть либо физическими, либо виртуальными машинами.

33
Q

Node manager

A

выполняет управление кластерами и оркестровку.

34
Q

What is a worker node?

A

Рабочие узлы выполняют задачи, назначенные менеджером.

35
Q

What strategies can swarm manager use?

A

Руководители Swarm могут использовать несколько стратегий для запуска контейнеров, таких как «самый чистый узел», который заполняет наименее используемые машины контейнерами. Или «глобальный», который гарантирует, что каждая машина получит ровно один экземпляр указанного контейнера. Вы поручаете директору роя использовать эти стратегии в файле Compose, как и тот, который вы уже использовали

36
Q

Что происходит, когда включен режим роя swarm?

A

Включение режима swarm мгновенно делает текущую машину менеджером роя. С этого момента Docker будет запускать команды, которые вы выполняете, на руке, которую вы управляете, а не только на текущей машине.

37
Q

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

A

первый экземпляр файла yml в домашний каталог swarm manager
& docker-machine scp docker-compose.yml myvm1:

запускать ту же команду развертывания на узле менеджера
$ docker-machine ssh myvm1 “docker stack deploy -c docker-compose.yml getstartedlab”

38
Q

Как создать диспетчер роя машины?

A

$ docker-machine ssh myvm1 “docker swarm init”

39
Q

Как присоединиться к докеру?

A

$ docker-machine ssh myvm2 “docker swarm join \
–token \
:”

40
Q

Как открыть терминал на виртуальной машине?

A

докер-машина ssh myvm2

41
Q

docker build -t friendlyname.

A

Создать образ, используя этот файл Dockerfile этого каталога

42
Q

docker run -p 4000: 80 friendlyname

A

запустить

43
Q

docker ps

A

См. Список всех запущенных контейнеров

44
Q

docker stop

A

остановить

45
Q

docker ps -а

A

Список всех контейнер, даже которые не работают

46
Q

docker rm

A

удалить докер

47
Q

docker rm $(docker ps -a -q)

A

Удалите все контейнеры с этой машины

48
Q

docker images -a

A

Показать все изображения на этой машине

49
Q

docker rmi

A

Удалите указанное изображение с этой машины.

50
Q

docker rmi $(docker images -q)

A

Удалить все изображения с этой машины

51
Q

docker login

A

Войдите в этот сеанс CLI, используя учетные данные Docker