elasticsearch 플러그인 개발 - 플러그인 설정 설명

2773 단어 elasticsearch
es 플러그인은 우선 es의 setting 모듈을 빌려 설정 항목을 노출하여 사용자 매개 변수에 설정할 수 있습니다.이전 플러그인 클래스 코드 세션을 살펴보십시오.
public class NacosPlugin extends Plugin {
    protected final Settings settings;
    public NacosPlugin(final Settings settings) {
        this.settings = settings;
        
    }
    
    @Override
    public List> getSettings() {
        ...
    }
}
getSettings 방법은 Setting 집합을 되돌려야 합니다.es는 이 집합에 따라 elasticsearch.yml 중의 설정 항목을 구조 함수를 통해 플러그인에게 전달합니다.Setting류는 범형이다.예를 들어 Setting bool 형식의 설정 항목을 표시합니다.nacos-elasticsearch에서 선언NACOS_ENABLED을 통해 기능 스위치로 구성:
public static final Setting NACOS_ENABLED = 
Setting.boolSetting("nacos.register.enabled", false, Setting.Property.NodeScope);
nacos.register.enabled 즉, es에 설정된 설정 항목입니다. 우리는 설정 파일에서 다음과 같이 설정할 수 있습니다.
nacos.register.enabled: true

구성하지 않으면 기본적으로 코드에 명시된 false 입니다.코드에서 get 방식으로 값을 얻을 수 있습니다.
boolean enabled = NACOS_ENABLED.get(this.settings);

비교적 자주 사용하는 유형은 모두 Setting 유형으로 두 가지 특수한 것TimeValueList을 말할 수 있다.사용자 구성 시간 값을 제공하려면 다음과 같이 하십시오.
nacos.beat.interval: 20s

로 선언할 수 있습니다.
public static final Setting NACOS_BEAT_INTERVAL = 
Setting.timeSetting("nacos.beat.interval", TimeValue.timeValueSeconds(10), Setting.Property.NodeScope);

목록 항목을 제공하려면 다음과 같이 하십시오.
nacos.server.addrs: ["192.168.1.2:8848","192.168.1.2:8848"]

로 선언할 수 있습니다.
public static final Setting> NACOS_SERVERS = 
Setting.listSetting("nacos.server.addrs", Collections.emptyList(), x -> x, Setting.Property.NodeScope);

특히 일부 설정은 암호와 같은 민감한 정보에 속한다.es는 민감한 구성 항목을 저장하기 위해 keystore 를 제공합니다.사용자는 elasticsearch-keystore 도구를 통해 설정 항목을 저장하고 코드에서 이 민감한 설정 항목을 얻을 수 있습니다.예를 들어 nacos-elasticsearch keystore로 암호를 저장할 수 있습니다 nacos.server.password.keystore.
bin/elasticsearch-keystore add nacos.server.password.keystore
Enter value for nacos.server.password.keystore:

코드에서 선언해야 하는 유형 SecureString:
public static final Setting NACOS_SECURE_PASSWORD = 
SecureSetting.secureString("nacos.server.password.keystore", null);

좋은 웹페이지 즐겨찾기