2020-02-19 10:27:59 UTC - gfouquier: pulsar broker and pulsar bookeeper. Both are started as a service with systemd. ---- 2020-02-19 10:28:36 UTC - gfouquier: how I start a broker ---- 2020-02-19 10:54:16 UTC - Kannan: @Kannan has joined the channel ---- 2020-02-19 10:57:59 UTC - Kannan: <#C5Z4T36F7|general> We want to run Apache Pulsar with mTLS enbled by istio in Kubernetes cluster. Is this support out of the box available ? if not how can i do this? ---- 2020-02-19 11:01:45 UTC - Kannan: Once mTLS is in strict mode the bookeeper init jobs failing to talk with zookeeper on 2181 port. ---- 2020-02-19 11:03:04 UTC - Antti Kaikkonen: I'm also a beginner with pulsar but here is my thoughts:
I don't think that it is possible to have a pulsar function instance assigned to a single topic partition unless you have only 1 partition in your topic. As a workaround you could use multiple single partition topics, e.g. one topic for each 1000 devices. If you only use the function state API and don't rely on in-memory state, then you should not need the above workaround as the whole state is available to all instances of your function. Use device id as message key and Key_Shared subscription mode. Is it possible to use numeric device ids (0, 1, 2...) so that you could load all of them one by one to memory in the beginning without using a range query? ---- 2020-02-19 11:22:39 UTC - Antti Kaikkonen: I would probably try to only rely on the functions state API without any in-memory state and I would implement the punctuation as a separate producer application that queries the function state every X milliseconds. The obvious issue with above approach is the performance of loading the whole device state every X milliseconds. I think that for this to work efficiently you would have to implement something like a min-heap with the function state API so that you could efficiently query only the devices that have timed out. ---- 2020-02-19 13:26:04 UTC - Abhilash Mandaliya: hello everyone where are the logs for the pulsar admin? I am trying something which throws 500 exception. But I am not seeing any exception in `/var/log/pulsar/pulsar-server.log` ---- 2020-02-19 14:05:53 UTC - Fabien LD: Jsute guessing: This 500 is reported by pulsar admin which is sending requests to brokers API. So I would look for stacktraces in broker logs ---- 2020-02-19 14:10:12 UTC - Abhilash Mandaliya: isn’t the broker log same as I mentioned above? `/var/log/pulsar/pulsar-server.log` I am running pulsar standalone on docker using ubuntu image ---- 2020-02-19 14:13:29 UTC - Fabien LD: No idea about standalone, sorry (stdout maybe) ---- 2020-02-19 14:46:15 UTC - Tanner Nilsson: We had a similar problem using linkerd, and we ended up just having to ignore those ports and not encrypt the traffic between bookies and zookeeper... ---- 2020-02-19 15:21:59 UTC - Alexander Ursu: I've noticed in the apache/pulsar repo, under `/tests/compose` there seems to be a setup for a non-standalone instance of pulsar using docker, but I assume this is not officially documented as it uses test images? Can this be adapted in a way to use production images and have a cluster setup with docker swarm? ---- 2020-02-19 15:24:56 UTC - Mikhail Veygman: @Sijie Guo What's the maximum number of clients one can create without incurring this issue? ---- 2020-02-19 15:36:18 UTC - David Kjerrumgaard: Where is your Pulsar broker running? If you are running it from a Docker image locally, did you remember to use the `-p 6650:6650` option to do the port forwarding? ---- 2020-02-19 16:13:09 UTC - Pavel Tishkevich: Hi All! Is there any reason for splitting topics into a bundles in addition to the rebalancing across brokers? I’m just trying to come up with reasonable `defaultNumberOfNamespaceBundles` value for 3 brokers and approximately 200k short-living topics. Any advice will be much appreciated! ---- 2020-02-19 16:15:40 UTC - David Kjerrumgaard: You will need to override the broker properties inside the conf/standalone.conf file. I have a working example available here: <https://github.com/david-streamlio/pulsar-in-action/blob/master/docker-images/pulsar-standalone/Dockerfile> +1 : Devin G. Bost ---- 2020-02-19 16:20:31 UTC - Sijie Guo: Why do you need to create so many clients? ---- 2020-02-19 16:25:06 UTC - David Kjerrumgaard: Did you look in the docker logs? ---- 2020-02-19 16:29:10 UTC - David Kjerrumgaard: @Pavel Tishkevich How many namespaces will you have and how many topics for each? ---- 2020-02-19 16:31:29 UTC - Pavel Tishkevich: 4 namespaces: 30 topics 10k topics 50k topics 50k topics ---- 2020-02-19 17:00:13 UTC - David Kjerrumgaard: Since you have 3 brokers and a small number of topics, you can get away with `defaultNumberOfNamespaceBundles=3` which would distribute them evenly across the 3 brokers. ---- 2020-02-19 17:38:21 UTC - Kannan: @Tanner Nilsson you mean 2181,2888,3888 all this ports ? ---- 2020-02-19 17:50:05 UTC - Pavel Tishkevich: Thanks a lot! ---- 2020-02-19 17:52:54 UTC - Tanner Nilsson: Yep, we have ignored those ports in linkerd for mTLS to work. I have heard though that BookKeeper TLS is added in 2.5.0, so we may pull linkerd out of our pulsar namespace and enable TLS through pulsar ---- 2020-02-19 17:53:56 UTC - Tanner Nilsson: <https://github.com/apache/pulsar/pull/5042> ---- 2020-02-19 18:20:08 UTC - Pavel Tishkevich: @David Kjerrumgaard but isn’t it better to have at least 6 bundles? If one broker fails, its 2 bundles will be acquired by remaining 2 brokers? ---- 2020-02-19 18:26:21 UTC - tcourdy: quick question surrounding this variable `numFunctionPackageReplicas` . The docs state to set it to a value greater than 2. Is a safe bet to set it to the same number of broker replicas that one is running? Im assuming if I set it to the number of broker replicas i have then each broker will contain a replica of the functions so if one goes down it will never be an issue as long as all don't go down. ---- 2020-02-19 18:40:34 UTC - David Kjerrumgaard: If you lose one of your 3 brokers the other brokers will have to take on the additional load either way, regardless of the number of bundles. ---- 2020-02-19 18:42:03 UTC - David Kjerrumgaard: The key is having the bundles be an factor of the number of brokers, e.g. 3, 6, 9 etc to ensure even distribution of the topics across the brokers. ---- 2020-02-19 18:47:58 UTC - David Kjerrumgaard: I wouldn't worry about trying to balance the load of a single namespace across the brokers, as each broker (including the failed one) will be serving multiple namespaces. So, in reality you would have 4 bundles to redistribute (2 per namespace) across 2 brokers. ---- 2020-02-19 19:29:38 UTC - Pavel Tishkevich: Ah, I see. Thanks! ---- 2020-02-19 19:42:10 UTC - Kirill Podkov: ```root@localhost:~/apache-pulsar-2.5.0# bin/pulsar-admin brokers get-internal-config { "zookeeperServers" : "pulsar-zookeeper-0.pulsar-zookeeper,pulsar-zookeeper-1.pulsar-zookeeper,pulsar-zookeeper-2.pulsar-zookeeper", "configurationStoreServers" : "pulsar-zookeeper-0.pulsar-zookeeper,pulsar-zookeeper-1.pulsar-zookeeper,pulsar-zookeeper-2.pulsar-zookeeper", "ledgersRootPath" : "/ledgers", "stateStorageServiceUrl" : "<bk://pulsar-bookkeeper.pulsar.svc.cluster.local:4181>" }``` Try checking with `bin/pulsar-admin brokers get-internal-config` to see if `stateStorageServiceUrl` is configured. This was missing in our initial deployment and state was not working. ---- 2020-02-20 02:18:33 UTC - vanchhay: @vanchhay has joined the channel ---- 2020-02-20 02:35:34 UTC - vanchhay: Thank you for your good works. Suppose Producer published message [ A, B, C ] Using Java library, I can retrieve message from latestMessage and so on by using seek(consumer.getLatestMessgeId). Is it possible to do the same thing using websocket library? ---- 2020-02-20 04:05:47 UTC - Sijie Guo: I don’t think that was implemented in websocket yet. ---- 2020-02-20 04:07:07 UTC - Sijie Guo: > Is a safe bet to set it to the same number of broker replicas that one is running you mean managedLedgerEnsembleSize? > Im assuming if I set it to the number of broker replicas i have then each broker will contain a replica of the functions so if one goes down it will never be an issue as long as all don’t go down no. it is the replicas used for storing the function package in bookkeeper. ---- 2020-02-20 04:09:14 UTC - vanchhay: I see. Thank you. ---- 2020-02-20 04:50:33 UTC - Eugen: @Sijie Guo Perhaps we should remove the following statement on <https://pulsar.apache.org/docs/en/client-libraries-websocket/> > Through WebSockets you can publish and consume messages and use all the features available in the Java, Go, Python and C++ client libraries. ---- 2020-02-20 04:51:57 UTC - Eugen: (Not having had a look at the websocket code yet), how hard/easy do you think it would be to add a seek feature? ---- 2020-02-20 04:53:53 UTC - Sijie Guo: @Eugen it should be pretty straightforward to add one. +1 : Eugen ---- 2020-02-20 05:04:05 UTC - Abhilash Mandaliya: good point. let me check ---- 2020-02-20 05:51:10 UTC - Devin G. Bost: Sounds like a leak. ---- 2020-02-20 05:51:36 UTC - Devin G. Bost: Do you have a code example with what you’re doing? ---- 2020-02-20 05:54:26 UTC - Devin G. Bost: What’s your reason for wanting such a long acknowledgment timeout? ---- 2020-02-20 05:56:58 UTC - Isaiah Rairdon: This might be an easy ask but I haven't located an example or docs that specify what the rest api request looks like for admin api when using authentication. So if I have authentication enabled what does the full rest call look like in a curl call or something like postman. ---- 2020-02-20 05:57:16 UTC - Devin G. Bost: Are you opposed to running Kubernetes or Docker bare-metal instead of docker swarm? ---- 2020-02-20 05:58:45 UTC - Devin G. Bost: I know many people who are running successfully in production with Kubernetes. At Overstock, we’re running Kubernetes in one cluster and bare-metal docker in another cluster. I don’t know of anyone using Docker Swarm in production, but there might be people in the community who have had success with it. ----
