@@ -832,98 +832,6 @@ NOTE: This particular deployment option may or may not have Spring Cloud Functio
|
||||
|
||||
include::functional.adoc[leveloffset=+1]
|
||||
|
||||
== Dynamic Compilation
|
||||
|
||||
There is a sample app that uses the function compiler to create a
|
||||
function from a configuration property. The vanilla "function-sample"
|
||||
also has that feature. And there are some scripts that you can run to
|
||||
see the compilation happening at run time. To run these examples,
|
||||
change into the `scripts` directory:
|
||||
|
||||
----
|
||||
cd scripts
|
||||
----
|
||||
|
||||
Also, start a RabbitMQ server locally (e.g. execute `rabbitmq-server`).
|
||||
|
||||
Start the Function Registry Service:
|
||||
|
||||
----
|
||||
./function-registry.sh
|
||||
----
|
||||
|
||||
Register a Function:
|
||||
|
||||
----
|
||||
./registerFunction.sh -n uppercase -f "f->f.map(s->s.toString().toUpperCase())"
|
||||
----
|
||||
|
||||
Run a REST Microservice using that Function:
|
||||
|
||||
----
|
||||
./web.sh -f uppercase -p 9000
|
||||
curl -H "Content-Type: text/plain" -H "Accept: text/plain" localhost:9000/uppercase -d foo
|
||||
----
|
||||
|
||||
Register a Supplier:
|
||||
|
||||
----
|
||||
./registerSupplier.sh -n words -f "()->Flux.just(\"foo\",\"bar\")"
|
||||
----
|
||||
|
||||
Run a REST Microservice using that Supplier:
|
||||
|
||||
----
|
||||
./web.sh -s words -p 9001
|
||||
curl -H "Accept: application/json" localhost:9001/words
|
||||
----
|
||||
|
||||
Register a Consumer:
|
||||
|
||||
----
|
||||
./registerConsumer.sh -n print -t String -f "System.out::println"
|
||||
----
|
||||
|
||||
Run a REST Microservice using that Consumer:
|
||||
|
||||
----
|
||||
./web.sh -c print -p 9002
|
||||
curl -X POST -H "Content-Type: text/plain" -d foo localhost:9002/print
|
||||
----
|
||||
|
||||
Run Stream Processing Microservices:
|
||||
|
||||
First register a streaming words supplier:
|
||||
|
||||
----
|
||||
./registerSupplier.sh -n wordstream -f "()->Flux.interval(Duration.ofMillis(1000)).map(i->\"message-\"+i)"
|
||||
----
|
||||
|
||||
Then start the source (supplier), processor (function), and sink (consumer) apps
|
||||
(in reverse order):
|
||||
|
||||
----
|
||||
./stream.sh -p 9103 -i uppercaseWords -c print
|
||||
./stream.sh -p 9102 -i words -f uppercase -o uppercaseWords
|
||||
./stream.sh -p 9101 -s wordstream -o words
|
||||
----
|
||||
|
||||
The output will appear in the console of the sink app (one message per second, converted to uppercase):
|
||||
|
||||
----
|
||||
MESSAGE-0
|
||||
MESSAGE-1
|
||||
MESSAGE-2
|
||||
MESSAGE-3
|
||||
MESSAGE-4
|
||||
MESSAGE-5
|
||||
MESSAGE-6
|
||||
MESSAGE-7
|
||||
MESSAGE-8
|
||||
MESSAGE-9
|
||||
...
|
||||
----
|
||||
|
||||
== Serverless Platform Adapters
|
||||
|
||||
As well as being able to run as a standalone process, a Spring Cloud
|
||||
|
||||
Reference in New Issue
Block a user