Skip to content
This repository has been archived by the owner on Apr 22, 2022. It is now read-only.

Allow for multiple endpoints and many-to-many mappings of endpoints to sinks #115

Merged
merged 103 commits into from Aug 9, 2016

Conversation

friso
Copy link
Collaborator

@friso friso commented Dec 30, 2015

This is substantial change that allows to define multiple endpoints as event sources and route events through different mappings, using different schema's and sink them into different sinks (multiple HDFS locations, multiple Kafka topics).

asnare and others added 30 commits November 5, 2015 23:35
Changes include:
 - A new configuration layout for supporting multiple sources, sinks and mappings.
 - No more enqueuing delay. Queues tend to either be full or empty, and are really only effective at smoothing jitter. Spinning to delay doesn't really help, so we just drop the events immediately instead of blocking.
 - No more session-binning strategy for HDFS. In practice we didn't use this, and it's complicated to do properly when multiple sources (with their own idea of sessions) might be feeding into a sink.

For now, the code only supports the existing single browser-based source and HDFS/Kafka sinks. Configuration validation is also not yet implemented.
…mapping exceptions and turn them into useful error messages and leave configuratio invalid.
# Conflicts:
#	build.gradle
…operty is not optional. This is to make the constructor args match the reality of the config params, such that we can later use JavaDoc for the documentation. Default values are set using the defaultValue annotation, which is however not interpreted by the deserializer. We will later fix this using a custom deserializer in Jackson.
# Conflicts:
#	src/main/java/io/divolte/server/kafka/KafkaFlusher.java
#	src/main/java/io/divolte/server/kafka/KafkaFlushingPool.java
#	src/main/resources/reference.conf
All users of this class did this anyway.
 - Eliminate a bunch of empty configuration files.
 - Change test layout to let tests run against the default configuration with the test server, or a base convenience configuration.
The browser source requires this or the tracking script won't correctly locate the event end-point.
No trailing period (.) required.
It's invoked by the constructor, and constructors shouldn't normally invoke instance methods because they might not expect the instance to be partially constructed.
Changes include Sphinx markup, and updates to reflect that we now support more than a single mapping.
@asnare asnare merged commit bc5d765 into master Aug 9, 2016
@asnare asnare deleted the dev/many-to-many branch August 23, 2016 11:42
@icychocolate98
Copy link

Good morning,

I'm trying to send 2 custom events to kafka; the idea is send each event to its topic; but at the moment I receive both events in both topics.

I have configured 2 mappings with different schemas and 2 sinks (one for each mapping).

I don't know what is exactly happening, do you hace any idea?

Thanks !
Manu

@soufianeodf
Copy link

Did you find any solution for that ? I'm also running in the same issue.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants