Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Тяпничный список инжекторных движков
Spring
88,9%
 (24)
Google Guice
25,9%
 (7)
Dagger
3,7%
 (1)
Quarkus
14,8%
 (4)
Голосование открыто только для зарегистрированных пользователей.
Проголосовало: 27  

asv79

    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql


А это зачем ты так сделал?
30 мар 21, 22:24    [22302252]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5687
kolchanov

Наш опыт на наших реальных микросервисах, а не на "сферическом коне в вакууме", показывает улучшение время старта в 10-30 раз на quarkus.
На другой исходной кодовой базе с другими программистами эта пропорция будет другой.


Ну на моем опыте единственное, что тормозит в Spring это Hibernate :-)
Поднятие контекста Hibernate занимает всё время поднятие контекста Spring.

Но за счет кучи синтаксического сахара и множества декларативных аннотаций небольшие "прикладушки на коленке" пишутся на нем быстро.
Быстрее, возможно, только на Python.

При этом эту "прикладушку" при минимуме усилий можно превратить в самонастраиваемую библиотеку.
Которая будет работать при добавлении её как зависимость в другое приложение.

Единственное Hibernate всё портит.
Но отказаться от Spring-Data-Jpa очень трудно. :-)
31 мар 21, 05:50    [22302299]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
asv79

    volumes:
      - database-data:/var/lib/postgresql/data/
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql


А это зачем ты так сделал?

помоему это для того что бы там дата хранилась,в примере из ссылки такое есть и на бою
31 мар 21, 09:17    [22302339]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton,самое интересное что я сейчас защел в консоль контейнера с пострегрес и посмотрел - может там нет базы ,которая создается в init.sql ,но база есть.
получается приложение не может его увидеть потому что смотрит не туда- вопрос где что я не так прописал - может в application.yml фиг его знает
31 мар 21, 10:16    [22302359]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.
31 мар 21, 11:46    [22302407]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
Ты говорил что хочешь постгрес в докерную файловую систему. А здесь ты фактически выводишь ее БД
из области докера в свой локальный диск. Я не говорю что это неправильно. Просто это немного переворачивает
постановку начального развертывания БД.

не ,там все вообще не так - никто ничего никуда не выводит - все в докере крутится
вообщем прикол в том,что докер компос делает все за нас- ему не нужны никакие инит файлы
достаточно прописать юзера и он создаст одноименню с ним базу
я убрал инит файл,добавил application.yml
в эту строчку url: jdbc:postgresql://${DB_SERVER_HOST:localhost}:${DB_SERVER_PORT:5432}/${DB_NAME:testdb}
и в композе

services:
  postgres:
    image: postgres:13-alpine
    restart: unless-stopped
    networks:
      - testdb-net
    environment:
      - POSTGRES_USER=testdb
      - POSTGRES_PASSWORD=testdb
    volumes:
      - database-data:/var/lib/postgresql/data/
    ports:
      - "5432:5432"

И Все заработало-ошибка была в том ,что я пытался в инит файле создать базу и в апл.ямл прописал к ней путь
а в это время докер композ создал бд с именем идентичным POSTGRES_USER=testdb

это конечно не очень правильно наверно - скорей всего если убрать environment:
то тогда подхватится init.sql
31 мар 21, 12:31    [22302435]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.
31 мар 21, 12:37    [22302441]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
У тебя инициализация БД должна происходить каждый раз при compose up или тебе надо 1 раз в жизни создать
объекты и с ними жить. Это очень разные постановки и от этого надо исходить.

мне просто нужно сделать пример как тут
https://medium.com/@isurunuwanthilaka/docker-zero-to-hero-with-springboot-postgres-e0b8c3a4dcc
31 мар 21, 12:47    [22302448]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
вроде разобрался с докер копомз
теперь непонятно другое - я дропаю базу контейнер - потом создаю заново но у меня там уже есть данные в базе и база новая не создается- это какой то прикол докера или в чем проблема?
31 мар 21, 13:48    [22302482]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.
31 мар 21, 15:00    [22302530]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Попробуй убери вообще эту желтую строчку что я выделил маркером.
31 мар 21, 15:54    [22302582]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
Это то о чем я тебе говорил. У тебя база будет спокойно переживать убийство контейнера. Потому что она - физически
лежит на твоем диске.

ну в принципе это нормально- вопрос в том как очистить это все - я не вижу таких директорий у себя
31 мар 21, 16:54    [22302624]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.
31 мар 21, 17:05    [22302630]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
все таки ты не прав майтон
нет на диске такой директории- нет у меня постгреса локально и директорий таких тоже нет
все облазил сейчас
а вот как раз в докер контейнере с постгрес такая директория присуствует
откуда берется БД и как сохраняются значения после удаления контейнера - большой вопрос - похоже это что то типо кеша докеровского или же что то типо гита - других мыслей у меня нет

пс.если эту строчку убрать ты не сможешь бд созадть - эта команда прописывает путь где сторить бд у тебя в контейнере
31 мар 21, 17:12    [22302632]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)
31 мар 21, 17:23    [22302640]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
asv79
mayton
Ну если ты напишешь так

- /home/stas/database-data:/var/lib/postgresql/data/


То это будет абсолютный путь. Тогда и найдешь. Абсолютные пути для баз данных это нормально.
Не намусоришь случайно нигде.

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)

Windows?
31 мар 21, 17:28    [22302641]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
asv79
пропущено...

нет у меня такой директории как database-data
я не знаю может это особенности какие то облачные- я работаю не на компе ,а на удаленном сервере( взял на отпуск помучать яндекс.клауд)

Windows?

линукс конечно- спецом и взял чтобы немного знаний поднять по линукс и девопсятине)
короче нашел я где эта дичь лежала
в докере в volumes
нужно сделать
 docker system prune --volumes

и будет счастье
31 мар 21, 17:35    [22302643]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?
31 мар 21, 17:52    [22302649]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
Это очистка образов. Ты уверен что правильно понял что ты делаешь и зачем?

это не очистка образов это удаление всего
всех контейенеров,образов,нетворков,волумов,билд кешей вот так будет правильней звучать

пс.вроде да разобрался что к чему
1.файл инит не нужен - база будет создана из того что пропишешь при создании контейнера
2.инит файл нужен для таких вещей как напрмиер create extension if not exist "uuid-ossp"
3.нужно правильно прописиывать переменные окружения в application.yml и в докер- композе
4.волум - сторит нашу дату- что в приницпе логичено не каждый же раз ее дропать при рестарте контейнера

где физически лежит волум - в нашем случае постгрес дата - судя по всему в докере ,но вне контейнеров( но это не точно- тут нужно мнение профессионалов- я таких директорий на своем серваке не нашел - причем понятно что смотрел все и скрытые)

Сообщение было отредактировано: 31 мар 21, 18:03
31 мар 21, 18:09    [22302657]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
по волумам вот такой ответ

Volumes are stored in a part of the host filesystem which is managed by Docker ( /var/lib/docker/volumes/ on Linux). Non-Docker processes should not modify this part of the filesystem. Volumes are the best way to persist data in Docker
31 мар 21, 18:32    [22302664]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

docket tag ...
docker push ... 

Там отдельный репо создается. Креды к нему и прочее.

Для тебя его полезный эффект будет в виде еще одного экспоуз сетевого порта и все. Больше ничего
не будет. Ни операционки. Ни bash консоли.

Ну а виртуальный приватный хост будет уже чисто для твоего приложения.

Сообщение было отредактировано: 31 мар 21, 18:28
31 мар 21, 18:35    [22302666]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
asv79
Member

Откуда: Тверь
Сообщений: 3319
mayton
Я не знаю как устроено яндек-облако. Но если сравнивать его с AWS, то для докеров там делается
отдельная услуга. Вобщем ты на одной VirtualPrivateService или EC2 поднимаешь весь оркестр.
А так не делается. Дорого для ресурсов. Должна быть отдельная услуга наподобие ECS, и ты после
компилляции образа его туда заливаешь

docket tag ...
docker push ... 

Там отдельный репо создается. Креды к нему и прочее.

Для тебя его полезный эффект будет в виде еще одного экспоуз сетевого порта и все. Больше ничего
не будет. Ни операционки. Ни bash консоли.

Ну а виртуальный приватный хост будет уже чисто для твоего приложения.

в моем случае яндекс .облако - обычная виртуалка ,которую я использую в качестве сервака
для докера в мое конкретном случае там нет ничего -так как это триал версия - взял погонять чтобы вкусить весь путь от пуша до развертывания на кубернетис - чо то меня прям это все увлекло ,да так что в отпуске залипаю на 12 часов у компа)
31 мар 21, 18:50    [22302679]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Попробую смигрировать один проект с Guice на Dagger2.

У задачи нет сроков. Она - игрушечная поэтому могу играться с ней бесконечно. Без лимитов по времени.
10 апр 21, 14:31    [22306963]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
Dmitry Eliseev
Member

Откуда: Saint-Petersburg
Сообщений: 105
Почему в опросе нет трушного CDI ?
20 апр 21, 18:30    [22311602]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничный список инжекторных движков  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5687
Dmitry Eliseev
Почему в опросе нет трушного CDI ?


Потому что поциент скорее мертв, чем жив?!
<:o)
21 апр 21, 15:30    [22311999]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Java Ответить