goquic、libquic、quic_client_server_example源码注释分析
群号:568892619
在校生nginx、redis、memcache、twemproxy等源码实现交流
群号: 581089275
主要针对有一定技术基础的开发人员,提升其基础组件源码技术深度(如nginx、redis、memcache、twemproxy、mongodb、存储引擎、内核网络协议栈等)
nginx多进程、高性能、低时延机制应用于缓存中间件twemproxy,对twemproxy进行多进程优化改造,提升TPS,降低时延:
http://blog.itpub.net/69908606/viewspace-2565161/
- 
echo $GOPATH查看环境变量路径,然后进入该目录(根据自己实际情况进入相应目录) 
 [root@XX reading-and-annotate-quic]# echo $GOPATH
 /root/gopath
- 
cd /root/gopath/src/github.com 
 如果没有想要目录,则创建
- 
在github.com目录下devsisters目录 
 mkdir devsisters;
 cd devsisters;
- 
下载代码 
 git clone https://github.com/y123456yz/reading-and-annotate-quic
- 
拷贝reading-and-annotate-quic目录中的goquic文件夹到/root/redisbackup/src/github.com/devsisters/目录下面 
- 
编译 GOQUIC_BUILD=Release ./build_libs.sh 
 如果编译没问题会有如下信息:
 d/stateless_rejector.o
 ar: creating libgoquic.a
 a - build/adaptor.o
 a - build/adaptor_client.o
 a - build/chlo_extractor.o
 a - build/go_ephemeral_key_source.o
 a - build/go_proof_verifier.o
 a - build/go_quic_alarm_factory.o
 a - build/go_quic_client_packet_writer.o
 a - build/go_quic_client_session.o
 a - build/go_quic_connection_helper.o
 a - build/go_quic_dispatcher.o
 a - build/go_quic_per_connection_packet_writer.o
 a - build/go_quic_server_packet_writer.o
 a - build/go_quic_simple_crypto_server_stream_helper.o
 a - build/go_quic_simple_dispatcher.o
 a - build/go_quic_simple_server_session.o
 a - build/go_quic_simple_server_session_helper.o
 a - build/go_quic_simple_server_stream.o
 a - build/go_quic_spdy_client_stream.o
 a - build/go_quic_time_wait_list_manager.o
 a - build/go_utils.o
 a - build/proof_source_goquic.o
 a - build/stateless_rejector.o
 lib/linux_amd64/ updated
- 
测试 
 [root@centlhw1 goquic]# go build example/server.go
 [root@centlhw1 goquic]# ./server
 [root@centlhw1 goquic]# ./server -h
 Usage of ./server:
 -addr string
 TCP/UDP listen address (default "0.0.0.0")
 -cert string
 Certificate file (PEM), will use encrypted QUIC and SSL when provided
 -key string
 Private key file (PEM), will use encrypted QUIC and SSL when provided
- 先进入libquic-client-server-example/libquic目录,编译出libquic库
- 进入libquic-client-server-example/quic_client_server_example目录,编译出quic client和quic server可执行文件
goquic和libquic-client-server-example都依赖libquic,他们各自一份libquic的原因是: quic_client_server_example参考quic_toy源码, 它是基于libquic老版本开发的,goquic是基于libquic新版本开发。
nginx源码中文详细分析注释参考:https://github.com/y123456yz/reading-code-of-nginx-1.9.2
libquic goquic编译安装,源码分析注释:https://github.com/y123456yz/reading-and-annotate-quic
nghttp2相关参考:https://github.com/y123456yz/reading-and-annotate-nghttp2