grpc-java/examples/example-hostname
Eric Anderson a5f3483653 Upgrade distroless base images
gcr.io/distroless/java:8 is no longer being updated. Java 8 isn't a
distroless option any more. Java 11 and 17 are options, but only Java 17
with Debian 12. The main alternative is to stick with Java 8 and use
something like docker.io/library/eclipse-temurin:8-jre . But there
doesn't seem to be much need to use an old JDK for these containers.

jib needed updating to support the oci manifest format used in the
updated image.
2023-12-14 16:58:31 -08:00
..
src examples: Swap to Channel/ServerCredentials API 2022-11-21 09:09:21 -08:00
BUILD.bazel examples: Add hostname example 2020-01-17 15:50:49 -08:00
README.md examples: Fix hostname binary name in README 2023-05-16 15:44:09 -07:00
build.gradle Upgrade distroless base images 2023-12-14 16:58:31 -08:00
pom.xml Upgrade dependencies 2023-12-12 12:40:20 -08:00
settings.gradle examples: Add hostname example 2020-01-17 15:50:49 -08:00

README.md

gRPC Hostname Example

The hostname example is a Hello World server whose response includes its hostname. It also supports health and reflection services. This makes it a good server to test infrastructure, like load balancing.

The example requires grpc-java to already be built. You are strongly encouraged to check out a git release tag, since there will already be a build of grpc available. Otherwise you must follow COMPILING.

Build the example

  1. Build the hello-world example client. See the examples README

  2. Build this server. From the grpc-java/examples/examples-hostname directory:

$ ../gradlew installDist

This creates the script build/install/hostname-server/bin/hostname-server that runs the example.

To run the hostname example, run:

$ ./build/install/hostname-server/bin/hostname-server

And in a different terminal window run the hello-world client:

$ ../build/install/examples/bin/hello-world-client

Maven

If you prefer to use Maven:

  1. Build the hello-world example client. See the examples README

  2. Run in this directory:

$ mvn verify
$ # Run the server (from the examples-hostname directory)
$ mvn exec:java -Dexec.mainClass=io.grpc.examples.hostname.HostnameServer
$ # In another terminal run the client (from the examples directory)
$ cd ..
$ mvn exec:java -Dexec.mainClass=io.grpc.examples.helloworld.HelloWorldClient

Bazel

If you prefer to use Bazel, run from the grpc-java/examples directory:

$ bazel build :hello-world-client example-hostname:hostname-server
$ # Run the server
$ ./bazel-bin/example-hostname/hostname-server
$ # In another terminal run the client
$ ./bazel-bin/hello-world-client