NATS Messaging
![]() | |
Developer(s) | Synadia Communications, Inc. |
---|---|
Initial release | 2011 [1] |
Stable release | 2.7.3
/ 24 February 2022 |
Repository | https://github.com/nats-io/nats-server.git |
Written in | Go |
Operating system | Cross-platform |
Type | Message broker, , message-oriented middleware |
License | Apache 2.0 |
Website | www |
NATS is an open-source messaging system (sometimes called message-oriented middleware). The NATS server is written in the Go programming language. Client libraries to interface with the server are available for dozens of major programming languages. The core design principles of NATS are performance, scalability, and ease of use.[2]
Synadia develops and provides support for NATS. NATS was originally developed by Derek Collison as the messaging control plane for Cloud Foundry and was written in Ruby. NATS was later ported to Go.
The source code is released under the Apache 2.0 License. NATS consists of:
- The NATS Server - The core Publish-Subscribe Server for NATS.
- Client libraries for a variety of programming languages
- A connector framework - a pluggable Java based framework to connect NATS and other services. NATS is a CNCF project with Kubernetes and Prometheus (software) integration.[3]
Microservices frameworks such as Micro, Mainflux, and Hemera rely on NATS as their messaging backbone.
Example[]
Below is a sample connection string from a telnet connection to the demo.nats.io site:[4]
telnet demo.nats.io 4222
Trying 107.170.221.32...
Connected to demo.nats.io.
Escape character is '^]'.
INFO {"server_id":"NBRTLDOI4STEAGVQNG445CWVBGODOTFFGWKOLPGAAVBG3CCFPTLHEWIP","server_name":"us-central-nats-demo","version":"2.7.0","proto":1,"go":"go1.17.6","host":"0.0.0.0","port":4222,"headers":true,"auth_required":true,"tls_available":true,"max_payload":1048576,"jetstream":true,"client_id":2342,"client_ip":"2603:8080:1e40:11f7:b041:5c:b33e:ab83","nonce":"zuFy57-_GyhCQeM"}
References[]
- ^ "Release v0.3.12 · nats-io/Nats.rb". GitHub.
- ^ "NATS Documentation".
- ^ "What's New in NATS 2.2".
- ^ "NATS Protocol". NATS Documentation. Retrieved 6 May 2016.
See also[]
- Prometheus nats exporter
Further reading[]
- Aslam, Asim. "Micro on NATS - Microservices with Messaging". Micro Blog. Retrieved 6 May 2016.
- Werthheim, Daniel (2016-04-27). "NATS - What a beautiful protocol". Retrieved 4 May 2016.
- Riggins, Jennifer (2015-12-15). "How NATS, a REST Alternative, Provides Messaging for Distributed Systems". TheNewStack. TheNewStack. Retrieved 6 May 2016.
- Monteiro, Diogo. "Using NATS instead of HTTP for inter service communication". Diogo GMT. Retrieved 2 May 2016.
- Sohlich, Radomir (23 April 2016). "NATS to REST Proxy". NATS Blog. Retrieved 1 May 2016.
- Gracely, Brian; Delp, Aaron. "NATS - Cloud Native Infrastructure". The CloudCast. Retrieved 23 December 2015.
- "A signaling system for 10M+ concurrent connections". Greta.io. Greta. 2016-03-21. Retrieved 6 May 2016.
- Treat, Tyler. "Benchmarking Message Queue Latency". Brave New Geek.
- Fulton III, Scott (2016-07-18). "NATS Moves to Real-time Message Streaming with Persistence". The New Stack. Retrieved 19 July 2016.
- Free software programmed in Go
- Message-oriented middleware
- Cloud infrastructure
- Free software for cloud computing
- Service-oriented architecture-related products
- Enterprise application integration
- Free software