I am developing the architecture for a web application with native non-browser clients communicating via binary messages through secure websockets to a server complex. Servers are configured with Ubuntu 16.04 LTS, planning on using nginx for load leveling and reverse proxy. Back-end database is planned for VoltDB, with app workers in C++. The last piece I need is the app server itself, and I just discovered OpenResty. Is it a good solution for the use-case described above? If so, are there any special considerations, particularly with C++ workers? I’m a recent escapee from the Microsoft world and don’t have hands-on familiarity with this environment. Any guidance will be much appreciated.
I am developing the architecture for a web application with native non-browser clients communicating via binary messages through secure websockets to a server complex. Servers are configured with Ubuntu 16.04 LTS, planning on using nginx for load leveling and reverse proxy. Back-end database is planned for VoltDB, with app workers in C++. The last piece I need is the app server itself, and I just discovered OpenResty. Is it a good solution for the use-case described above? If so, are there any special considerations, particularly with C++ workers? I’m a recent escapee from the Microsoft world and don’t have hands-on familiarity with this environment. Any guidance will be much appreciated.
--
You received this message because you are subscribed to the Google Groups "openresty-en" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openresty-en...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
The app itself is a collection of relatively simple data-driven business transactions, primarily store-and-retrieve. It is designed to follow the microservices architecture (see https://www.nginx.com/blog/introduction-to-microservices/), with about 6 different service categories. It is fundamentally set up as MVC, with the view layer at the client and a data management layer at the back-end. No graphic rendering is done at the server and all messaging is binary data in both directions. There is a need to maintain multiple data panels at the client, with relatively heavy use of the bidirectional capabilities afforded by websocket connections. That also means that multiple services need to communicate through the same connection, which will normally remain open for lengthy periods (the services can be combined if needed, but will cause activation of threads). Session data will be maintained in the database, and sessions can span websocket connection timeouts. Idle periods beyond a specified length will cause a silent disconnect/reconnect process. We anticipate that the server will have a large number of connections open, but that cpu burden/connection will be modest. I don’t yet know enough about how OpenResty/nginx manages connections and I’m seeking the best way to accomplish this.
--