UnixSocketPubSub
UnixSocketPubSub는PubSubUnix 도메인 소켓을 사용하여 단일 호스트의 프로세스 전체에 이벤트를 전달하는 구현입니다. 하나의 프로세스를 브로커로 선택하고 다른 프로세스는 클라이언트로 연결됩니다. 브로커가 종료되면 나머지 클라이언트는 자동으로 새 브로커를 선택합니다.
Mastra Code 터미널 인터페이스에서 스레드 스트림을 조정하는 경우처럼 여러 로컬 프로세스가 스트림을 공유해야 할 때 사용하세요. 단일 프로세스 전송에는 EventEmitterPubSub를 사용하세요. 호스트 간 분산 전송에는 RedisStreamsPubSub 또는 GoogleCloudPubSub을 사용하세요.
UnixSocketPubSub푸시 전송입니다. 이벤트는 읽기 루프 없이 도착하므로 Mastra는 이에 대해 풀 작업자를 실행하지 않습니다.
사용예사용예에 대한 직접 링크
참여하는 모든 프로세스가 공유하는 소켓 경로를 전달합니다.
import { Mastra } from '@mastra/core'
import { UnixSocketPubSub } from '@mastra/core/events'
export const mastra = new Mastra({
pubsub: new UnixSocketPubSub('/tmp/mastra/events.sock'),
})
생성자 매개변수생성자 매개변수에 대한 직접 링크
socketPath:
options?:
속성속성에 대한 직접 링크
socketPath:
supportedModes:
["push"]를 반환합니다.isBroker:
remoteClientCount:
행동 양식행동 양식에 대한 직접 링크
UnixSocketPubSub는 PubSub 계약을 구현합니다. 아래 메서드는 이 구현에만 해당합니다.
close()close에 대한 직접 링크
소켓 연결을 닫고 이 인스턴스가 브로커인 경우 브로커 역할을 해제합니다. 정상적인 종료 중에 이를 호출하십시오.
await pubsub.close()
브로커 선출브로커 선출에 대한 직접 링크
소켓을 바인딩하는 첫 번째 프로세스는 브로커가 되어 연결된 모든 클라이언트 간에 이벤트를 라우팅합니다. 다른 프로세스는 클라이언트로 연결됩니다. 브로커가 종료되면 배타적 잠금 파일이 다음 선택을 직렬화합니다. 정확히 한 명의 클라이언트가 새 브로커가 됩니다. 나머지 클라이언트는 이를 다시 구독합니다. 이렇게 하면 두 프로세스가 모두 브로커 역할을 하는 분할 브레인 상태를 방지할 수 있습니다.