Статьи

Введение в монтаж реестра WSO2

Этот пост основан на общих вопросах, касающихся поднятия реестра, его работы и т. Д. Ниже приведены основные вопросы, которые люди задают

1). Как работает монтаж?

2). В чем разница между конфигурацией реестра и реестром управления?

3). Могу ли я использовать базы данных, отличные от H2, для локального реестра?

4). Что подразумевается под путем монтирования и целевым путем?

5). Нужно ли настраивать URL «remoteInstance»?

6). Что я должен использовать в качестве cacheId?

Итак, давайте начнем с того, как настроить монтирование реестра. Когда вы настраиваете монтирование реестра, вы должны добавить соответствующий источник данных в файл master-datasources.xml. В дополнение к этому, вы также должны добавить связанную с монтированием конфигурацию в файл registry.xml.

В файле master-datasources.xml необходимо просто настроить источник данных JDBC, указав URL-адрес JDBC, имя пользователя, пароль, запросы проверки, параметры оптимизации соединения и т. Д. Пример записи источника данных будет выглядеть ниже.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
<datasource>
            <name>WSO2CarbonDB_Gov</name>
            <description>The datasource used for registry- config/governance</description>
            <jndiConfig>
                <name>jdbc/WSO2CarbonDB_Gov</name>
            </jndiConfig>
            <definition type="RDBMS">
                <configuration>
                    <url>jdbc:mysql://blog.napagoda.com:3306/REGISTRY_DB?autoReconnect=true</url>
                    <username>chandana</username>
                    <password>password</password>
                    <driverClassName>com.mysql.jdbc.Driver</driverClassName>
                    <maxActive>50</maxActive>
                    <maxWait>60000</maxWait>
                    <testOnBorrow>true</testOnBorrow>
                    <validationQuery>SELECT 1</validationQuery>
                    <validationInterval>30000</validationInterval>
                </configuration>
            </definition>
        </datasource>

В файле registry.xml есть много доступных областей. Итак, давайте сначала посмотрим пример конфигурации монтажа.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
<dbConfig name="mounted_registry">
        <dataSource>jdbc/WSO2CarbonDB_Gov</dataSource>
</dbConfig>
 
<remoteInstance url="https://localhost:9443/registry">
        <id>instanceid</id>
        <dbConfig>mounted_registry</dbConfig>
        <readOnly>false</readOnly>
        <enableCache>true</enableCache>
        <registryRoot>/</registryRoot>
        <cacheId>chandana@jdbc:mysql://localhost:3306/greg_db</cacheId>
</remoteInstance>
 
<mount path="/_system/config" overwrite="true">
        <instanceId>instanceid</instanceId>
        <targetPath>/_system/apimconfig</targetPath>
</mount>
<mount path="/_system/governance" overwrite="true">
        <instanceId>instanceid</instanceId>
        <targetPath>/_system/governance</targetPath>
</mount>

Вы можете видеть, что при определении конфигурации монтажа я добавил четыре раздела конфигураций. Это «dbConfig», «remoteInstance» и два раздела записи «mount».

Я думаю, что это легко объяснить сначала с помощью записи mount, затем remoteInstance и dbConfig. В записи монтирования вы можете настроить путь, перезаписать, targetPath и instanceId.

гора

путь — путь — это местоположение в реестре, которое похоже на путь файловой системы. Ресурсы, хранящиеся в этом пути, будут храниться в соответствующей настроенной БД.

overwrite — (Virtual, True, False) Будет ли перезаписана существующая коллекция / ресурс по указанному пути. Виртуальный означает, что изменения хранятся только в памяти и не будут записаны в БД.

instanceId — ссылка на «remoteInstance».

targetPath — путь, который хранится в базе данных.

В двух словах, любые пути реестра, начинающиеся со значения в разделе пути, будут храниться в БД для targetPath (путь будет заменен на targetPath и сохранен в БД). При получении пути к реестру он также выполняет обратную замену. Таким образом, этот целевой путь не будет виден вам вообще. Если вам слишком интересно узнать об этом, вы можете проверить это, запросив таблицу REG_PATH.

remoteInstance

‘remoteInstance’ — это отображение между ‘dbConfig’ и Mounts. Это отображение обрабатывается с помощью элементов ‘id’ и ‘dbConfig’. Значение ‘id’, указанное в каждой конфигурации монтирования, и значение элемента dbConfig должны совпадать с именем dbConfig. В дополнение к этому ‘cacheId’ является одной из наиболее важных конфигураций в этом разделе.

url — URL-адрес реестра экземпляра локального реестра. Это используется только в продукте реестра управления WSO2. Таким образом, вы можете использовать любое значение для других продуктов.

readOnly — является ли экземпляр доступным только для чтения.

registryRoot — Корень экземпляра реестра.

enableCacheвключено ли кэширование или нет.

cacheId — это уникальная идентификация удаленного экземпляра, используемого на уровне распределенного кэширования. Здесь мы рекомендуем использовать идентификатор кэша в качестве реестра DBUsername @ DBUrl.

DBCONFIG

Этот dbConfig является ссылкой на источник данных, добавленный в файл master-datasources.xml. Обратите внимание, что вы не должны удалять или изменять стандартный dbConfig, доступный в файле registry.xml. Вместо этого вам нужно добавить новый элемент dbConfig. Кроме того, в качестве имени вновь добавляемого dbConfig вы должны использовать имя, отличное от ‘wso2registry’, поскольку оно использовалось в качестве имени dbConfig по умолчанию.

Итак, позвольте мне ответить на другие вопросы. Любой продукт WSO2 (выпущенный до 2018 года) внутри состоит из трех областей реестра. они локальные, конфиг и управление.

Локальный реестр (хранилище) используется для хранения конкретной информации экземпляра, такой как время последнего индекса и т. Д.

Config Registry (репозиторий) — это место для хранения информации, которой можно делиться только с одними и теми же продуктами, и если кластер многоузловых продуктов, этот раздел будет доступен для общего доступа.

Реестр управления (хранилище) — это место для хранения конфигураций и данных, которые совместно используются всей платформой WSO2.

Мы рекомендуем хранить разделы конфигурации и управления во внешней системе баз данных. Поскольку раздел Local Registry (репозиторий) является специфическим для экземпляра, мы рекомендуем хранить его с базой данных H2 по умолчанию. Информация, хранящаяся в локальном реестре, является отказоустойчивой и может быть восстановлена. Обратите внимание, что если вы хотите сохранить локальный раздел во внешней СУБД, вам необходимо создать отдельную базу данных (схему) для каждого экземпляра.

Итак, давайте перейдем к проверке моей конфигурации монтажа. В вашей конфигурации ‘remoteInstance’ вы должны правильно ссылаться на имя dbConfig. Это имя конфигурации БД не должно совпадать с тем, которое мы использовали для локального реестра. Кроме того, вы должны правильно сопоставить каждый раздел ‘mount’ с ‘remoteInstance’, используя instanceId.

Если у вас есть какие-либо вопросы, связанные с подключением реестра, вы можете оставить комментарий здесь. Я рад помочь вам.