Hi

Its a bunch of questions I will give a few points with the limited time I have.

We want to do a webinar in the future about Camel K with more deep
dive, especially around its 1.0 GA release timeframe.

Ad 1)
You can read about dependency resolution here
https://camel.apache.org/camel-k/latest/configuration/dependencies.html

Camel K uses the camel-catalog to know how to map from component names
to maven artifacts.
https://github.com/apache/camel/tree/master/catalog/camel-catalog


Ad 2)
You can specify multiple files from the CLI

kamel run File1.java File2.java

Being able to run with *.java or something is AFAIK not currently
supported, but we are open for ideas.

Ad 3)
Camel K uses standard Kubernetes CRD (custom resource definitions).
So any tool/language that can talk to the k8s API server (rest calls)
you can use.
And of course also the kubernetes client - kubectl.

For Java there is the kubernetes-java client that has java api for k8s.

Ad 4)
Scaling is not Camel K specific. You can setup replicas and quotes and
limits etc which are standard k8s concepts.
But for scaling then Knative is the interesting add-on for k8s that
event based scaling. Camel K works with that too.

However knative is likely more for modern cloud workloads, and not for
traditional enterprise systems like JMS messaging, or FTP data
transfers.
But Camel can bridge that world and allow Camel components to act as
sink and sources for knative eventing.

For k8s concepts then I also recommend the k8s patterns book by Bilgin
and Roland.
https://k8spatterns.io/




On Mon, Mar 16, 2020 at 6:42 PM ski n <raymondmees...@gmail.com> wrote:
>
> Hi all,
>
> In the last presentation there was also a short demo on CamelK. That looked
> very interesting, but I have some questions on how does it work, especially
> in more complex use cases.
>
> Here are some questions I have:
>
> Question 1: Dependency resolution
>
> In CamelK you can provide the following:
>
> from("imap://ad...@myserver.com")
>   .to("seda:output")
>
> Because imap is not part of core this will start the dependency resolution.
> How does this work? How does CamelK know it needs the mail component as
> dependency? Is there some kind of fixed mapping between the scheme and
> component?
>
> Say for example I have the following route:
>
> from("seda:input")
>   .to("seda:output")
>
> This is then run on Kubernetes/CamelK. Then I change this to:
>
> from("imap://ad...@myserver.com")
>   .to("seda:output")
>
> Is this dependency add as "Maven" dependency and then recompiled? Or is the
> jar downloaded and the added? Or something else...
>
>
> Question 2: Multiple files
>
> In the Java example:
> https://camel.apache.org/camel-k/latest/languages/java.html
>
> There is one simple route with one file. How does it work in more complex
> cases when there are multiple files?
>
> For example I have the following package:
>
> Registry.java
> Route1.java
> Route2.java
> Processor.java
> Connection.java
>
> In Route1.java data is retrieved with the SQL component out of an Oracle
> database, also this routs calls a processor. In route 2 the pojo is
> marshalled to JSON and send to a HTTP endpoint. In registry things like
> SSL, metrics are configured. In the processor some mapping is done and in
> the connection the Oracle driver is configured.
>
> Can I run a whole package with the Kamel CLI? How does Kamel gets for
> example the dependency for the Oracle driver?
>
>
>
> Question 3: Configure and Management from Java.
>
> What I believe is that the Kamel CLI client is written in Go. So the flow
> is as follows:
>
> A) Write some Camel code in the available languages.
>
> https://camel.apache.org/camel-k/latest/languages/languages.html
>
> B) Use Kamel CLI to run/deploy it on Kubernetes
>
> C) Use something like hawt.io to manage it.
>
> Is this also available from Java (or as Camel component) to
> configure/deploy it from Java code and to manage it from Java code?
>
>
> Question 4: Scaling
>
> Kubernetes is ideal for horizontal scaling. How does this work with CamelK?
> Say I have the following two routes:
>
> from("activemq:topic:foo")
>   .to("sftp://sample.com/someDir";)
>
> from("sftp://sample.com/someDir";)
>   .to("activemq:topic:foo")
>
> When the routes are scaled. How does CamelK prevent that in the first route
> multiple messages arrive in the same FTP directory. And in the second
> example there are multiple routes listening to the same directory and get
> file locks. Does it have possibilities how to scale the routes?
>
> Kind regards,
>
> Raymond



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to