spooz on consumer-groups-description
SKYEDEN-223 | metadata (compare)
spooz on SKYEDEN-223-consumer-groups-desc
spooz on SKYEDEN-223-consumer-groups-desc
SKYEDEN-223 | metadata (compare)
spooz on consumer-groups-description
consumer groups desc (compare)
spooz on SKYEDEN-223-consumer-groups-desc
spooz on consumer-groups-description
spooz on SKYEDEN-223-consumer-groups-desc
SKYEDEN-223 | consumer groups d… (compare)
adamdubiel on hermes-0.15.7
adamdubiel on master
Release version: 0.15.7 (compare)
druminski on changelogUpdate
druminski on master
Updating changelog (#980) (compare)
I brought up Hermes using “vagrant up” and it successfully came up . Got the below links to access the components too.
UI & Management: http://10.10.10.10:8090
Frontend: http://10.10.10.10:8080
Graphite: http://10.10.10.10:8082
But when I actually paste the links in a browser , it says page isn’t working . Has something changed from the documentation ?
@tnagy81 Hi,
When we started implementing Hermes six years ago, spring-boot wasn’t so popular then. Hermes-management at the beginning was written in Jersey framework which in internals uses hk2 as a light-weight dependency injection framework. So we started with hk2 in hermes-management and decided to use it in hermes-{frontend, consumers} as well.
When spring-boot gained popularity we’ve rewritten hermes-management to use it. However we didn’t use spring-boot in hermes-{frontend, consumers} due to performance reasons.
Hermes-frontend has to be very fast. Therefore we’ve written it on a raw HTTP handlers in Undertow server. spring-boot-starter-web adds additional layers such as servlets implementation and custom filters. They add additional latency for request processing and we don’t want that.
So, as you see there are two reasons, historical and performance, why we don’t use sprint-boot in hermes-{frontend, consumers}. Today, replace of hk2 to spring di framework in hermes-{frontend, consumers} is not a trivial task as it requires rewrite of a lot of code. However, it would be nice to have the same dependency injection framework and configuration method in all Hermes modules. We don’t do this task in our team as we have other priorities right now but in the future it would be nice to do it.
@shimnarkrishnan_twitter
"Also what about this URL of repository? Which URL is expected?"
Both schema repo and schema registry provides http API to manage schemas so you have to provide the server URL where your repository is running.
This URL must have the following form: http://<host>:<port>. By default it is http://localhost:8888/.
"I couldn't figure out where to set the below configurations schema.repository.type: schema_registry"
You have to add these properties to your configuration files. You can look at my development hermes configuration (based on docker containers) where I have configured schema-registry: https://github.com/jewertow/hermes-dev-environment.
Schema-registry configurations:
Schema-registry container configuration: https://github.com/jewertow/hermes-dev-environment/blob/master/docker-compose.yml#L31
@shimnarkrishnan_twitter
Ad 1) Yes, it does. By default message size is a soft limit, warn
log is emitted when message larger than declared topic message size is received.frontend.force.topic.max.message.size
flag can be switched to make it a hard limit (Frontend will return
http 413 Payload Too Large
status).
Ad 2) Schemas are kept in schema-registry. Zookeeper in Hermes is used as metastore to keep information about topics and subscriptions such as topic name, description, owner, max message size, attached subscriptions, subscription name, endpoint, retry policy, etc.
Ad 3) Didn’t use it but I see it supports HTTP & JSON so at first glance it should be possible to use it on Hermes
@shimnarkrishnan_twitter
Could you describe how did you create the subscription for this endpoint?
Did you create it according to the documentation (https://hermes-pubsub.readthedocs.io/en/latest/user/subscribing/#creating-subscription) ?
You can also check out example in my development environment:
@tnagy81 I'm glad I could help
@shimnarkrishnan_twitter
if you want to track every message by hermes message tracking mechanism you have to install trace storage: https://hermes-pubsub.readthedocs.io/en/latest/configuration/message-tracking/
hermes-management
module and ran into an issue because some spring auto configuration. This sounds spring related but actually the cause of it is that spring-mvc
is present on the classpath and two frameworks are listening to requests. I have found spring-boot-starter-web
in the dependencies of hermes-management
. If you are using spring-boot-starter-jersey
it is unnecessary to add starter-web because it will hook up spring MVC which you don't need for JAX-RS endpoints. My workaround was adding spring-webmwc
to exclusions (I am using maven) of hermes-management
dependency. My service and of course the hermes components start without any issue and endpoints are working fine. Though I did not check all the endpoints :Dspring-webmvc
stuff just only because of vacations. I'd really like to contribute though. As far as I understand if we handle this as a small issue I don't have to create a ticket. I also want to note that if I remove spring-webmvc
then Spring Actuator endpoints (like /health
, /info
) start to work in hermes-management
which is nice to have.
@shimnarkrishnan_twitter few years ago we had occasionally problems with docker on different laptops. On one laptops it worked, on others it didn’t, especially after docker updates. Therefore we decided to use Vagrant in our quickstart guide. However, I see that docker is much more stable technology now and our open source users are asking about it, so we are planning to bring it back in Hermes. In the near future we are going to publish new images of Hermes on dockerhub :)
As for Kafka and Hermes. Hermes for Kafka is a client. If you already have a running Kafka cluster on production and you are happy with it then run of Hermes on it should be easy and smooth :)
Hi @bensonmiller, you are the first user who would like to use Hermes with Kafka from Confluent Cloud. So far, we didn’t have that need, but definitely Hermes should be compatible with Confluent Cloud as well. Although, keep in mind that Hermes will still need a Zookeeper cluster to run.
As you noticed, Hermes uses Kafka zookeeper client to manage topics configuration. I will create an issue to replace this old client to something new. When we resolve it, then will see whether something more has to be done to be compatible with Confluent Cloud. Please let me know if this approach is ok for you :)
https
to define a subscription URL with non standard port?