kafka를 만진 메모
8359 단어 microserviceskarafkaKafka
kafka란? 특징은?
kafka의 시스템 레벨 이벤트 구동 개발 이미지
kafka의 logo가 나타내는 것처럼 다양한 서비스가 kafka를 통해 실시간으로 정보를 연계 할 수 있습니다.
5
시스템을 설정할 때의 유의점
docker로 Kafka server 만들기
사용
docker-compose -f docker-compose-single-broker.yml up
rails + karafka로 메시지 교환
rails new karafka_example
gem 'karafka'
bundle exec karafka install
다음 파일이 생성됨
app/consumers/application_consumer.rb
app/responders/application_responder.rb
karafka.rb
ENV['RAILS_ENV'] ||= 'development'
ENV['KARAFKA_ENV'] = ENV['RAILS_ENV']
require ::File.expand_path('../config/environment', __FILE__)
Rails.application.eager_load!
class KarafkaApp < Karafka::App
setup do |config|
config.kafka.seed_brokers = %w[kafka://127.0.0.1:9092]
config.client_id = 'example_app'
config.backend = :inline
config.batch_fetching = true
config.logger = Rails.logger
end
Karafka.monitor.subscribe(Karafka::Instrumentation::Listener)
consumer_groups.draw do
consumer_group :bigger_group do
batch_fetching false
topic :users do
consumer UsersConsumer
end
end
end
end
KarafkaApp.boot!
app/consumers/users_consumers.rb
class UsersConsumer < ApplicationConsumer
def consume
Karafka.logger.info "New [User] event: #{params}"
end
end
app/responders/users_responder.rb
class UsersResponder < ApplicationResponder
topic :users
def respond(event_payload)
respond_to :users, event_payload
end
end
bundle exec karafka server
UsersResponder.call({ event_name: "user_created", payload: { id: 1 } }
관련 자료
wurstmeister/kafka-docker message 순서
↩ 로그 삭제
↩ commit-offset
↩ message guarantee
↩ transaction
Reference
이 문제에 관하여(kafka를 만진 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/qiuyin/items/666d221aa23b24baa621텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)