Giter VIP home page Giter VIP logo

kubemq-community's People

Contributors

antoniogomezalvarado avatar dependabot[bot] avatar kubemq avatar liornabat avatar mgla96 avatar paoloyx avatar rweland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubemq-community's Issues

random limits docker

Hi, I came across a problem when doing some testing against the kubemq community docker image in that /dev/random kept hitting ulimits when running the docker on a linux machine. The solution was to add below to the docker run command line, it forces /dev/random to point to /dev/urandom which has less limitations. I suggest adding it to the readme for anyone running this docker image on a linux machine. On windows there was no issue.

-v /dev/urandom:/dev/random

API port mismatch in k8s file

In several places in the k8s.yaml file the port listing for the API service is 8080, however in the "CONFIG" section it lists the port as 8090

This causes port mapping for the API port to fail, as the container is starting the API service on 8090 as requested by the config section.

Submitted a PR #17 for the change. Will need redeploy of https://deploy.kubemq.io/community

Retry strategies

Hi
Do you plan to implement retries? Do you have a roadmap that lists all future features?

The kubemq cli (release v2.3.5) version return v2.3.0-beta-2

Bad version in cli

$ curl -L 'https://github.com/kubemq-io/kubemq-community/releases/download/v2.3.5/kubemq-linux-amd64.tar.gz' | tar xzf - && \
chmod +x ./kubemq && \
./kubemq --version
# return
kubemq version v2.3.0-beta-2

I have tested with :

  • kubemq-linux-amd64.tar.gz
  • kubemq-windows-amd64.tar.gz

I have test other release

release version return version
v2.3.0-beta-1 v2.2.13
v2.3.0-beta-2 v2.3.0-beta-1
v2.3.0 v2.3.0-beta-2
v2.3.1 v2.3.0-beta-2
v2.3.2 v2.3.0-beta-2
v2.3.3 v2.3.0-beta-2
v2.3.4 v2.3.0-beta-2
v2.3.5 v2.3.0-beta-2

gRPC error with TLS

I have issue when i run kubemq server with certificate (The same command work without TLS)
I can't send message in queue via gRPC:

$ kubemq queues send qdock1 'hello word 1'
2022/12/07 14:33:54 loaded configuration from /tmp/tmp.Ebe1N53171/config.yaml
Sending Queue Message:
{
    "id": "",
    "channel": "qdock1",
    "client_id": "908ci19b-ec5a-4224-8422-64f386761da4",
    "body_string": "hello word 1"
}
error: error sending queue message, rpc error: code = Unavailable desc = error reading from server: EOF

But I can list the queue (via API)
The certificates is valid (pub, key and ca)
I test with:

  • kubemq TLS (security option) and reverse proxy for API
  • kubemq without TLS and reverse proxy for API, REST and gRPC

I looked the exchanges of kubemq queues send qdock1 'hello word 1' with the server:
With TLS or without TLS: i can read all exchanges

Dashboard repeatedly flashes error banner

When I run the following command:

docker run -d -p 8080:8080 -p 50000:50000 -p 9090:9090 kubemq/kubemq-community:latest  

And then go to http://localhost:8080/dashboard

I see the dashboard, and I see a banner appear at the top every few seconds: "KubeMQ Server is Disconnected".

I was able to create a channel and send messages to the channel, so other things appear to work - but not the web interface :(

How to guarantee the order of messages?

If there are multi consumer within one consumer group, how to guarantee the order of message consuming? Like kafka's topic partition, each partition can be listened by each consumer, message can be hashed to special partition.

community vs enterprise features?

Hi,

Is there and difference between community edition and paid?
Perhaps this should be documented somewhere so you know what you get when trying out the community edition.

Installation fails with operator pod in Crashloopbackoff state

Hi,
I'am running a v1.12.10 K8S cluster and I am trying to deploy a kubemq cluster on it.

Right after the kubectl apply -f https://get.kubemq.io/deploy command, I see that the operator pod is in an error state with this message :

...
{"level":"info","ts":1587365069.465001,"logger":"controller-runtime.controller","caller":"controller/controller.go:190","msg":"Starting workers","controller":"kubemqdashboard-controller","worker count":1}
{"level":"error","ts":1587365069.9703064,"logger":"controller-runtime.source","caller":"source/source.go:88","msg":"if kind is a CRD, it should be installed before calling Start","kind":"Ingress.networking.k8s.io","error":"no matches for kind \"Ingress\" in version \"networking.k8s.io/v1beta1\""}
{"level":"error","ts":1587365069.9703994,"logger":"cmd","caller":"manager/main.go:124","msg":"Manager exited non-zero","error":"no matches for kind \"Ingress\" in version \"networking.k8s.io/v1beta1\""}

(The dashboard pod is running)

Do I miss something ?

Thank you for your help

showing error while running KubeMQ

error: running kubemq community version on kubernetes is not supported anymore, please use kubemq commercial version. we believe that kubeMQ community version will support kubernetes - any suggestions on this error?

Cannot start dashboard

Architecture: x64
O/S: Linux
Kubernetes environment: Minikube (latest as of date of posting this)
after following the instructions to install KubeMQ (Community), and verifying that I can send a hello world message, the following fails:

kubemqctl get dashboard
Current Kubernetes cluster context connection: minikube
error: the server could not find the requested resource (get kubemqdashboards.core.k8s.kubemq.io)

Any clues would be very much appreciated, thanks.

Are there arm images?

The operator pod doesn't run properly on an ARM machine cluster, I see there are ARM releases, can we also have some ARM images published?

Installation using kubectl

I tried installing Kube MQ with kubectl command mentioned : "kubectl apply -f https://deploy.kubemq.io/community".
But there is an error in installing and it says : Unable to connect to the server: x509: certificate signed by unknown authority.
Configurations:
Ubuntu VM with a minikube installation. The kubectl is configured by the minikube.

`kubemq-run` processes consume all CPU/memory

Hi! I'm using KubeMQ to connect some microservices, yesterday suddenly the server became inaccessible due to CPU/memory usage (usually there are ~15 kubemq-run processes, while in this case there were a lot of these processes that consumed every resource, below a screenshot of some of them).

image

what I did
I deleted and recreated the cluster to fix this issue. I also made some tests to provoke it again (by sending 32k messages at the same time using parallel processes, 8k per process) and nothing happened, there was never a resource peak, so what can cause this issue?

params
reading the documentation I see there are some resource-related params

 --resources-limits-key-CPU string			set resources limits CPU  (default "1000m")
 --resources-limits-key-memory string		set resources limits memory (default "512Mi")
 --resources-requests-key-CPU string		set resources requests CPU (default "100m")
 --resources-requests-memory string			set resources request memory (default "256Mi")

but they seem to be settings per instance and do not limit the number of processes spawned by kubemq.

Any idea? Thanks

Please provide Julia SDK!

Hello,

Julia is prominent language in DataScience and please provide Julia SDK. Because of unavailability of Julia SDK, we can not use this software and we do not want to use any other language for the sake of message broker. We are currently using kafka.

KubeMQ binds only on IPv6 interfaces

My Setup:
1 Node k3s deployment on IPv4 ONLY lab network
Other workloads up and working as expected
KubeMQ Community latest release (as of 2/25/22) deployed using default config

What happens:
When the community edition is deployed it starts, however all listeners only bind to the containers IPv6 address. This makes it impossible to connect to the container with the CLI from an IPv4 network.

What's expected:
Listeners should bind to both IPv4 and IPv6 interfaces.

Digging in the code, the raw TCP socket listeners appear to be correctly setting the bind port according to the net.Listen documentation. As well the echo servers appear to be setup correctly as well.
Ref: grpc/server.go:111
lis, err := net.Listen("tcp", fmt.Sprintf(":%d", port))
Ref: rest/server.go:172
_ = s.echoWebServer.Start(fmt.Sprintf(":%d", conf.Port))

However as seen from the startup log output, it appears to ignore this.

2022-02-26T02:07:21.322Z	INFO	starting kubemq community edition version: , cores: 16	{"host": "f1a8683371dc", "module": "server"}
2022-02-26T02:07:21.323Z	INFO	⇨ http server started on [::]:8080
	{"host": "f1a8683371dc", "module": "server-api"}
2022-02-26T02:07:22.324Z	INFO	Starting broker-server version 2.1.9	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.324Z	INFO	Git commit [not set]	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.324Z	INFO	Listening for client connections on 0.0.0.0:39983	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.324Z	INFO	Server id is NAT3D4HT53N6MRBB4T35ZVRXEPEC3CSRAWKTVZ5JXGCI3TWT2772BX2E	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.324Z	INFO	Server is ready	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.325Z	INFO	In-Memory client server connection pipe: ya3PsP8PSdGJarJJX9lIIC started	{"host": "f1a8683371dc", "module": "broker"}
2022-02-26T02:07:22.350Z	INFO	STREAM: Starting broker-streaming-server[kubemq] version 0.19.0	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.350Z	INFO	STREAM: ServerID: 08rN2ijHYGp37AYGf7AYqI	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.350Z	INFO	STREAM: Go version: go1.17.7	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.350Z	INFO	STREAM: Git commit: [not set]	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.352Z	INFO	STREAM: Recovering the state...	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.352Z	INFO	STREAM: No recovered state	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: Message store is FILE	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: Store location: store/f1a8683371dc	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: ---------- Store Limits ----------	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: Channels:            unlimited	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: --------- Channels Limits --------	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM:   Subscriptions:     unlimited	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM:   Messages     :     unlimited	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM:   Bytes        :     unlimited	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM:   Age          :       24h0m0s	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM:   Inactivity   :       24h0m0s	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: ----------------------------------	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:22.603Z	INFO	STREAM: Streaming Server is ready	{"host": "f1a8683371dc", "module": "broker-store-server"}
2022-02-26T02:07:23.603Z	INFO	routing service loaded	{"host": "f1a8683371dc", "module": "services"}
2022-02-26T02:07:23.606Z	WARN	started insecure grpc server at port 50000	{"host": "f1a8683371dc", "module": "grpc"}
2022-02-26T02:07:23.606Z	WARN	grpc interface is accepting traffic	{"host": "f1a8683371dc", "module": "grpc"}
2022-02-26T02:07:23.606Z	WARN	rest interface is accepting traffic	{"host": "f1a8683371dc", "module": "rest-interface"}
2022-02-26T02:07:23.606Z	INFO	started insecure rest server at port 9090	{"host": "f1a8683371dc", "module": "rest-interface"}
2022-02-26T02:07:23.606Z	INFO	⇨ http server started on [::]:9090
	{"host": "f1a8683371dc", "module": "rest-api"}
2022-02-26T02:07:23.606Z	INFO	STREAM: Channel "_QUEUE_DELAY_" has been created	{"host": "f1a8683371dc", "module": "broker-store-server"}

This is confirmed by remoting into the container and listing the bound ipv4 and ipv6 ports
Open IPv4 ports

I have no name!@f1a8683371dc:/kubemq$ declare -a array=($(tail /proc/net/tcp | cut -d":" -f"3"|cut -d" " -f"1")) && for port in ${array[@]}; do echo $((0x$port)); done | sort | uniq     
57560

Open IPv6 ports

I have no name!@f1a8683371dc:/kubemq$ declare -a array=($(tail /proc/net/tcp6 | cut -d":" -f"3"|cut -d" " -f"1")) && for port in ${array[@]}; do echo $((0x$port)); done | sort | uniq    
36742
39983
42349
50000
8080
9090

Things I've tried:

  • Rebuild container from source
  • Rebuild with different base image (bullseye-slim)
  • Hardcoded address/ports (ex 0.0.0.0:50000 for grpc)
  • Hardcoded ListenerNetwork for echo servers to tcp

The only thing that has successfully allowed the project to bind on ipv4 was to set the first param of Listen and the ListenerNetwork property of the echo servers to tcp4, which of course forced IPv4 only.

2022-02-26T03:00:41.577Z INFO ⇨ http server started on 0.0.0.0:9090

I've run out of things to try to allow both ipv4 and ipv6, any ideas?

ARM image?

Is it possible for kubemq to provide ARM image?

Max Pub/Sub Client Connections

Very cool project @kubemq! Wondering about benchmarks for max client connections when using the Pub/Sub pattern in the community edition(3 nodes)? Looking to use your python lib. Thanks!

Where's the code?

I'd love to use your service, but not being able see any code is a bit of a deterrent.

Client config section is ignored

There is an issue with the client section of the config where viper seems to ignore the values during unmarshal to appConfig. This seems to be known with using underscores in JSON tags as referenced here spf13/viper#498. Will be submitting a PR to fix.

Tests do not pass

Running the tests with go test ./... fails with port conflicts:

service: api service, error: listen tcp 0.0.0.0:8080: bind: address already in use

If I constrain the tests to being single threaded go test -p=1 ./... they run for longer but still eventually fail with several different failures. Is there something I'm missing?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.