Netflix Uses Golang For Rend Proxy
GolangAtNetflix

Netflix Uses Golang For Rend Proxy

Before we start with the understanding of how Netflix is using Golang, let us understand what is Netflix and Rend Proxy in Netflix.

What is Netflix?

An American production company that provides technology and media services. Founded in 1997 by Reed Hastings and Marc Randolph. The primary business of Netflix is to provide streaming services that are subscription-based.

What is Rend Proxy?

Rend and Mnemonic are two new processes to the EVCache server introduced by the Moneta project. Currently, Rend is in production at Netflix and is helping by serving live members' traffic. Rend is a Memcached-Compatible Server and Proxy. Rend Proxy is developed by Netflix. The primary use case of Rend proxy is to be on a server where both the Memcached process and SSD-backed L2 cache is present. The project is open-source and available on Github

As per the Netflix Tech Blog Rend is:-

 It is a high-performance server that speaks the binary and text Memcached protocols. It is written in Go and relies heavily on goroutines and other language primitives to handle concurrency.

Rend Proxy is written in Golang and is actively developed at Netflix. Rend Proxy is developed for:-

1 To handle tens of thousands of concurrent connections

2 It has client packages such as load testing and correctness testing.

3 The design is modular, which provides flexibility for replacing different pieces

Components of Rend Proxy:-

No alt text provided for this image

Rend is servers as well as it is has a set of libraries using which you can build your own Memcached-compatible server.

Components in Rend Proxy:-

  • Servier Loop Package
  • Protocol Parsing Package
  • Request Orchestration Package
  • Backend Handlers Package
  • Metrics library

In Rend as a server, Memproxy.go file act as the main function and showcases the usage of all the above-mentioned component.

To build Rend, a working Golang distribution is required. Rend is developed using the latest Golang version.

Rend has a separate client library under the client directory which is used to do load testing and functional testing of Rend during development.

Rend Libraries:-

  • blast.go - Sends random requests of all types to the target
  • setget.go - Run sets followed by gets, with verification of contents.
  • sizes.go - Runs sets of a steadily increasing size to catch errors with specific size data.
  • fill.go - Sends sets into the cache to test set rate and eviction policy.
  • setops.go - Sends all different kinds of set operations at the target

Netflix Teams said:

The decision to use Go was deliberate, because we needed something that had lower latency than Java (where garbage collection pauses are an issue) and is more productive for developers than C, while also handling tens of thousands of client connections. Go fits this space well.

Read more about the article from the original source here

You can also read more articles about Golang here-

?Author: Reemi Shirsath COO @ Scalent.io - A Golang Specialized Development Company.

Alexandre Siqueira .'.

Scrum Master Corretora de Seguros Santander - Open PF - F1RST

4 年

Thank you

回复
Paulo Robert

Senior Software Engineer at Nubank

4 年

Alexandre Siqueira .. benchmark job R.

回复
Vikram Ranabhatt

CIB, Markets Technology, Market Risk, VaR, Cloud Architect, Artificial Intelligence and Data Engineering,

4 年

What are the advantages in writing backend in Go instead of java?

Adam Kingston

My Expertise includes:- Accounts Manager/ BDM/ Pre Sales/ Inside-Sales/ Marketing - USA/EMEA/APAC markets.

4 年

Golang is best, guys any body need IT Services please contact me at [email protected]/+1(332)600-4985,Thanks

回复
Ami Rajpal

Co-Founder / CTO at DAAM Agency

4 年

Did you know Netflix supports pedophilia. Search "Netflix Cuties" #CancelNetflix

回复

要查看或添加评论,请登录

Reemi Shirsath的更多文章

社区洞察

其他会员也浏览了