lanzafame
7/6/2012 - 9:14 PM

Hello world web server that scales across multiple processors

Hello world web server that scales across multiple processors

package main

import (
  "net/http"
  "runtime"
)

func main() {
  runtime.GOMAXPROCS(runtime.NumCPU())
  handler := func(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte("hello world\n"))
  }
  http.ListenAndServe(":8000", http.HandlerFunc(handler))
}
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }
  cluster.on('exit', function(worker, code, signal) {
    console.log('worker ' + worker.pid + ' died');
  });
} else {
  // Workers can share any TCP connection
  // In this case its a HTTP server
  http.createServer(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(8000);
}