Встраивание базы данных Java h2 программно

Вы должны использовать одну функцию для каждого события.

Наличие нескольких триггеров для одной Lambda только усложнит ситуацию, так как в итоге вы получите кучу операторов if / else, switch или даже Factory-методы, если вы хотите применить шаблоны проектирования.

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

Еще одним недостатком является то, что вы обязаны использовать один язык только в том случае, если вы создадите его таким образом. Для некоторых случаев использования Java может быть лучшим вариантом. Но для других это может быть Node JS, Python, Go ...

По сути, ваши функции должны быть достаточно маленькими, чтобы их можно было легко обслуживать и даже переписывать при необходимости. Нет ничего плохого в создании одной функции для каждого события, хотя, очевидно, вы решительно не одобряете это. Думайте о каждой лямбде как об отдельной микросервисе, которая независимо масштабируется, имеет собственный конвейер CI / CD и собственный набор тестов.

Еще одна вещь, которую следует учитывать, - это если вы хотите ограничить число одновременных выполнений Lambda в зависимости от типа триггера. Это было бы недостижимо с помощью модели «один-лямбда-все-все».

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

31
задан Georgi 30 September 2008 в 19:43
поделиться

2 ответа

От загрузки я вижу, что файл tutorial.html имеет это

import org.h2.tools.Server;
...
// start the TCP Server
Server server = Server.createTcpServer(args).start();
...
// stop the TCP Server
server.stop();
24
ответ дан 27 November 2019 в 21:32
поделиться

Да, можно выполнить H2 во встроенном режиме. Вы просто используете драйвер JDBC и подключение к встроенному URL как это (их пример):

Эта база данных может использоваться во встроенном режиме, или в режиме сервера. Для использования его во встроенном режиме Вы должны:

* Add h2.jar to the classpath
* Use the JDBC driver class: org.h2.Driver
* The database URL jdbc:h2:~/test opens the database 'test' in your user home directory

Пример соединения с JDBC к встроенной базе данных H2 (адаптированный от http://www.h2database.com/javadoc/org/h2/jdbcx/JdbcDataSource.html ):

import org.h2.jdbcx.JdbcDataSource;
// ...
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:˜/test");
ds.setUser("sa");
ds.setPassword("sa");
Connection conn = ds.getConnection();

, Если Вы надеетесь использовать H2 в чисто в оперативной памяти / встроенный режим, можно сделать это также. См. эту ссылку для больше:

просто необходимо использовать специальный URL в нормальном коде JDBC как "jdbc:h2:mem:db1".

70
ответ дан 27 November 2019 в 21:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: