A SIMPLE WORKER POOL IN GO
A SIMPLE WORKER POOL IN GO ABOUT ME ▸ Adam Presley ▸ Father ▸ Software engineer
A SIMPLE WORKER POOL IN GO AGENDA ▸ Discuss designing for concurrency ▸ Using Go language types ▸ Review code ▸ Demo
A SIMPLE WORKER POOL IN GO …CONCURRENCY IS THE COMPOSITION OF INDEPENDENTLY EXECUTING PROCESSES, WHILE PARALLELISM IS THE SIMULTANEOUS EXECUTION OF COMPUTATIONS. Rob Pike
WHAT IS MAILSLURPER?
A SIMPLE WORKER POOL IN GO MAILSLURPER IS A SMALL SMTP MAIL SERVER THAT SLURPS MAIL INTO OBLIVION!
REQUIREMENTS & STRATEGY
A SIMPLE WORKER POOL IN GO SMTP LISTENER TCP GET A WORKER RETURN DO WORK CONNECTION Next available Worker TCP worker is rejoins connection is requested from the pool established pool and listens for clients
HOW DO WE DO THIS? CHANNELS AND GOROUTINES
A SIMPLE WORKER POOL IN GO CHANNELS AND GOROUTINES SERVER POOL WORKER Communicates A channel of with clients, workers. parses mail
LET’S SEE SOME CODE!
A SIMPLE WORKER POOL IN GO USEFUL LINKS AND REFERENCES ▸ Rob Pike - “Concurrency is not Parallelism” - https:// www.youtube.com/watch?v=cN_DpYBzKso ▸ Nick Saika - “Worker Queues in Go” - http://nesv.github.io/ golang/2014/02/25/worker-queues-in-go.html ▸ Marcio Castilho - “Handling 1 Million Requests per Minute with Go” - http://marcio.io/2015/07/handling-1-million- requests-per-minute-with-golang/ ▸ MailSlurper - http://mailslurper.com
Recommend
More recommend