benthos/코드 분석 3

input - generate

컨텍스트 없이 실행되는 [Bloblang](/docs/guides/bloblang/ about) 매핑을 사용해 지정된 interval마다 메시지를 생성한다. generateReader는 다음처럼 생겼다. type generateReader struct { remaining int batchSize int limited bool firstIsFree bool exec *mapping.Executor timer *time.Ticker schedule *cron.Schedule location *time.Location } generateReader를 생성하는 newGenerateReader함수의 프로토타입. conf는 default 값 + 설정 값이 적용된 상태. func newGenerateReader(m..

manager

config internal/manager/config.go 먼저 볼 것은 manager의 Config 구조체다. 이 구조체는 benthos config에서 리소스 구성 요소를 지정하기 위한 필드가 포함된다. input, processor, output, cache, ratelimit 의 설정을 가진다. type ResourceConfig struct { ResourceInputs []input.Config ResourceProcessors []processor.Config ResourceOutputs []output.Config ResourceCaches []cache.Config ResourceRateLimits []ratelimit.Config }

package import

main.go 의 import 부분을 보면, _ "github.com/benthosdev/benthos/v4/public/compoennts/all" 을 import 하고 있다. 사용하지도 않을 패키지를 뭐하러 import 하고 있을까? /github.com/benthosdev/benthos/v4/public/components/all 을 보면 더 이상하다. _ "github.com/benthosdev/benthos/v4/public/components/amqp09" _ "github.com/benthosdev/benthos/v4/public/components/amqp1" _ "github.com/benthosdev/benthos/v4/public/components/avro" ... 이렇게 패키지를 ..