Comments (4)
An explanation of robust error handling to handle all possible network failures and race conditions would be immensely useful too, I think.
from nats.c.
@Kazmirchuk I added a FAQ section in the README, hope this helps a bit with some of your questions.
Specifically regarding some of your questions here:
If you have natsOptions_UseOldRequestStyle, what is the new request style then?
There is no API to trigger the new style, it is now the default. The new style improves performance by reducing the number of subscriptions created when doing requests/replies. A single inbox subscription is created per connection and replies are then matched to the appropriate request.
What does this comment means in one of your examples?
// For maximum performance, set no limit on the number of pending messages.
s = natsSubscription_SetPendingLimits(sub, -1, -1);
How do the limits affect performance?
When the publisher publishes as fast as it can, the subscription may fall behind since it is always slower to process a subscribed message than send a message. In order for the example/benchmark to not lose messages and ensure that the subscription will process all sent messages, I set the subscription's queue limits to "unlimited".
In Msgs: 30 - In Bytes: 150 - Delivered: -3689348814741910324 - Pending: 0 - Dropped: 0 - Reconnected: 0
I think, the number of delivered messages got wrong somehow?
I can reproduce this on Windows, I will have a look and create separate issue. Thanks!
from nats.c.
Wow that was quick! Good to know that the negative counter was not a bug in cnats itself.
Thank you so much for the FAQ. It hasn't appeared yet at the main page https://github.com/nats-io/cnats (I guess it needs some time), but I can already read it in the git commit - it is very useful and much more than I could ever expect. Kudos!
from nats.c.
@Kazmirchuk Thanks! I was waiting to get some feedback from you, which apparently is pretty good ;-). I have merged the PR so the FAQ section should now be present in the repo's README at this location.
from nats.c.
Related Issues (20)
- Implement Consumer Pause HOT 2
- Provide Conan recipe HOT 2
- natsOptions_SetTimeout() not being respected under certain conditions
- Example js-sub.c is missing stream parameter in usage HOT 1
- Documentation for Services HOT 1
- callbacks on natsConnection are called after natsConnection_destroy HOT 8
- Compile error on Linux HOT 1
- microEndpoint in microErrorHandler doesn't seem useful
- micro commands give parser errors on names HOT 1
- Request returns error status on callback, rather than from the method itself
- Please make the kvStore watcher async HOT 1
- natsConnection_SubscribeTimeout callback called twice having auto-unsubscribe after 1 message HOT 7
- nats c client hanging forever on natsConnection_PublishString HOT 1
- Support URL (%-) encoding in server URL strings
- Add filtering to KV method returning all keys
- natsConnection_RequestString does not return reply when used with a Jet Stream HOT 2
- Support handshake_first
- Add SNI extension when connecting with TLS
- Crash when using natsMsg_Destroy on a JetStream message HOT 5
- add ref counting for natsMsg (follow up of https://github.com/nats-io/nats.c/issues/793) HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nats.c.