Config 구성

7061 단어 skynet
skynet 서버를 시작하려면 프로필을 제공해야 합니다. 모에 파일의 작성은 examples/config를 참고할 수 있습니다. 다음은 간단한 프로필 예입니다.
root = "./"
thread = 8
logger = nil
harbor = 1
address = "127.0.0.1:2526"
master = "127.0.0.1:2013"
start = "main"  -- main script
bootstrap = "snlua bootstrap"   -- The service for bootstrap
standalone = "0.0.0.0:2013"
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua"
lualoader = "lualib/loader.lua"
snax = root.."examples/?.lua;"..root.."test/?.lua"
cpath = root.."cservice/?.so"

이 프로필은 실제적으로 루아 코드입니다. 보통 키=value 형식으로 프로필에 값을 부여합니다. skynet은 시작할 때 필요한 프로필을 읽고 일시적으로 사용할 수 없는 프로필을 문자열 형식으로 skynet 내부의 env표에 저장합니다. 이 프로필은 skynet을 통해 사용할 수 있습니다.getenv 가져오기.
필요한 구성 항목은 다음과 같습니다.
thread는 몇 개의 작업 라인을 시작합니까? 일반적으로 당신이 실제로 가지고 있는 Cpu 핵심 수를 초과하지 않도록 설정합니다.
bootstrap skynet이 시작하는 첫 번째 서비스와 그 시작 매개 변수, 기본 설정은 snlua bootstrap입니다. 즉, bootstrap이라는 루아 서비스를 시작합니다. 보통 서비스/bootstrap을 가리킵니다.루아 이 코드.
cpath는 C로 작성된 서비스 모듈의 위치를 가리키며, 통상적으로cservice 아래에 있는 것을 가리킨다.so 파일, 시스템의 동적 라이브러리가 아니라면.so는 접두사로 상응하는 수정이 필요합니다. 이 경로는 여러 가지를 설정할 수 있습니다.분할하다
기본 bootstrap 코드에는 다음 구성 항목이 더 사용됩니다.
logger, 스카이넷에 지어진 스카이넷을 결정했습니다_error 이 C API는 정보를 어떤 파일에 출력합니까? 만약logger가 nil로 설정되어 표준 출력으로 출력된다면 특정한 파일에 정보를 기록할 파일 이름을 설정할 수 있습니다.
log 서비스는 기본적으로'logger'입니다. 맞춤형 로그 서비스 (예를 들어 시간 스탬프 등 더 많은 정보) 를 설정할 수 있습니다. 서비스_logger.c로 그것을 실현합니다. 주: 만약에 루아로 이 서비스를 작성하고 싶다면 여기에 snlua를 기입한 다음logger에서 구체적인 루아 서비스의 이름을 설정할 수 있습니다.examples 디렉터리에 config가 있습니다.userlog라는 범례는 참고할 수 있다.
logpath는 하나의 경로를 설정합니다. 실행할 때 하나의 서비스에 log를 열 때 이 서비스의 모든 입력 메시지는 이 디렉터리에 기록됩니다. 파일 이름은 서비스 주소입니다.
standalone이 skynet 프로세스를 메인 프로세스로 시작하면 (skynet은 여러 기기에 분포된 여러 프로세스로 네트워크를 구성할 수 있습니다.) standalone를 설정해야 합니다. 이 프로세스가 실행될 때 메인 노드를 표시합니다. 제어 센터를 열고 포트를 감청하여 다른 노드가 접속하도록 해야 합니다.
master는 skynet 제어 센터의 주소와 포트를 만듭니다. standalone 항목을 설정하면 standalone와 같습니다.
address 현재 skynet 노드의 주소와 포트는 다른 노드와 네트워크를 구성하는 데 편리합니다. 주: 한 노드만 사용하더라도 제어 센터를 열고 이 노드의 주소와 포트를 추가로 설정해야 합니다.
harbor는 1-255 사이의 임의의 정수일 수 있습니다. 스카이넷 네트워크는 최대 255개의 노드를 지원합니다. 노드마다 유일한 번호가 있어야 합니다.
만약harbor가 0이라면, skynet은 단일 노드 모드에서 작동합니다. 이때master와address,standalone는 설정할 필요가 없습니다.
start 이것은 bootstrap의 마지막 부분에서 시작될 루아 서비스, 즉 당신이 맞춤형한 skynet 노드의 메인 프로그램입니다.기본적으로main, 즉main, 루아 스크립트를 시작합니다. 이 루아 서비스의 경로는 아래의 루아 서비스에서 지정합니다.
클러스터 서비스에 사용되는 구성 항목:
cluster는 그룹 프로필의 경로를 결정합니다.
lua 서비스는 snlua에서 제공하며, lua 코드를 불러올 구성 항목을 찾습니다.
lualoader는 어떤 루아 코드로 루아 서비스를 불러오는지 루아/loader로 설정합니다.루아, 그리고 이 코드로 서비스 이름을 해석하고 루아 코드를 불러옵니다. snlua는 다음 몇 가지 설정 항목을 꺼내서 초기화된 루아 가상 기기의 전역 변수에 넣습니다. 구체적으로 참고할 수 있습니다.
SERVICE_NAME 첫 번째 매개 변수, 보통 서비스 이름
LUA_PATH config 파일에 구성된 lua_path
LUA_CPATH config 파일에 구성된 lua_cpath
LUA_PRELOAD config 파일에 구성된 preload
LUA_Service config 파일에 구성된 luaservice
  • luaservice lua 서비스 코드가 있는 위치입니다.여러 가지를 구성할 수 있습니다.분할하다.루아 서비스를 만들 때, 하나의 파일이 아닌 디렉터리로 제공하면, 최종적으로 찾은 경로는 패키지에 추가됩니다.path 중.예를 들어 루아 서비스를 작성할 때, 때때로 이 서비스가 사용하는 라이브러리도 같은 디렉터리에 두기를 원할 때가 있다
  • lua_path가 패키지에 추가됩니다.path의 경로,require 호출을 제공합니다
  • lua_cpath가 패키지에 추가됩니다.cpath의 경로,require 호출을 제공합니다
  • preload는 패키지의 경로를 설정한 후 루아 서비스 코드를 불러오기 전에 preload가 만든 스크립트를 실행합니다. 기본값은 비어 있습니다
  • snax가 snax 프레임워크로 작성한 서비스의 검색 경로..

  • 또한 환경 변수에 설정 옵션을 설정할 수도 있습니다.예를 들어,thread를SKYNET_THREAD
    이 환경 변수 안에config 파일에 다음과 같이 쓸 수 있습니다.
    thread=$SKYNET_THREAD

    이렇게 하면 skynet이 시작될 때SKYNET_THREAD
    이 환경 변수의 값은config의$SKYNET_THREAD
    됐어.

    백그라운드 모드


    데몬 설정 데몬 = "./skynet.pid"는 다음 데스크톱 모드에서 skynet을 시작할 수 있습니다.로그 항목 출력 로그를 설정하십시오.

    좋은 웹페이지 즐겨찾기