2-5 Go在猎豹移动的应用.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2-5 Go在猎豹移动的应用

毛剑 Why Go ? ž  优雅简洁,少就是多; ž  性能好、系统级语言; ž  静态语言、强类型约束; ž  交编译部署; ž  网络模型并发同步模型; ž  标准库、内置工具强大支持; ž  开源社区活跃; 我们做了啥? ž  业务 —  猎豹移动全球passport体系; —  游戏开放平台; —  游戏支付体系; ž  平台 —  基于gopush的推送平台goim ; —  基于redis sentinel的smart client ; —  rpc框架; —  gosnowflake发号器集群; —  goconf统一配置管理; 接入层优化 ž  DNS在移动网络下不适用; —  避免劫持、失效,dns提供商故障; ž  协议压缩:pb+gzip ; —  节约流量; ž  协议设计:职责单一不适用; —  合并请求; ž  TCP Handshake影响RTT; —  keepalived长连接; ž  API动态加速; —  proxy模式动态CDN ; SOA ž  Web站点是PHP开发的,通过RPC交互; ž  rpc和api都是基于Go开发的服务; ž  国内DNS-VIP-lvs-tengine-Go; ž  海外DNS-ELB DNS-ELB-Go; ž  Service之间通过Thrift或者net/rpc通讯; ž  依赖redis sdk访问redis ; ž  直连mysql ; ž  用户的所有业务逻辑基于Go处理; Service ž  服务应该是无状态的; ž  api服务出现瓶颈的时候,直接scale out ; ž  graceful restart依赖健康检测; ž  api质量监控,使用日志来追踪,通过本 地日志+flume+hdfs+hive ; ž  实时监控可以考虑flume sink到kafka,再 依赖Spark计算; RPC ž  协议远程调用的选型; —  net/rpc,thrift ,grpc等; ž  链路追踪,参考Google Dapper论文,核 心思路是关键库植入代码,因为缺乏 AOP编程支持,我们使用golang blog推 荐的依赖context对象; ž  服务发现、负载均衡依赖ZK ; ž  弹性调度的支持,降级处理、动态扩容; RPC选型 ž  是否多语言支持?net/rpc不支持 ž  性能如何? ž  thrift num:111324, time:30s, num/s:3710 ; ž  grpc num:159999, time:30s, num/s:5333 ; ž  net/rpc不依赖context ,实现数据跟踪, 需要修改源码; ž  grpc支持http2,方便移动端app使用; Cache ž  模仿cpu使用多级cache ; ž  L1 cache :不经常修改,大量访问对性 能要求极致的,我们使用go map缓存信 息,使用COW保证无锁更新和访问; ž  使用redis作为核心的cache store ; ž  使用hash mod region方式对cache进行 扩展; goconf ž  xml ,yaml ,json ,ini? ž  阶段1:逐idc,逐机器配置修改; ž  阶段2 :svn统一提交修改,每个idc一份; ž  阶段3 :配置统一管理化(agent模型); ž  一处修改,统一管理; ž  节点状态查看、回滚配置; ž  数据安全、强一致性; goconf /config/ | service/ | idc1/ | current/ ( {last_ver:v1.2, cur_ver: v1.1} ) | | section/ | | key-value ( {value:xxxx, comment:x} )       | snapshot/ | | v1.1/ (value是整个

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档