异构系统的服务化实践.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文档。上传文档
查看更多
异构系统的服务化实践

异构系统的服务化实践 北⽃@蘑菇街中间件 关于我 花名: 北⽃,真名:刘传双 2012年加⼊蘑菇街,先后主导⼲告、商品、有哪些信誉好的足球投注网站、营销、中间件 等技术业务系统的研发; 更早之前在阿⾥巴巴、盛⼤⺴络⼯作过 微信号:liuchuanshuang 微博:@liuchuanshuang 关于蘑菇街 2011.2.14蘑菇街正式上线 ⺫前已成为国内领先的社会化电商平台 8000万注册⽤户 ⽇均4亿访问量 ⽇均活跃⽤户700万 研发团队300⼈,占⽐⼀半 ⼤纲 蘑菇街⺴站的技术架构 Tesla服务化框架的起源 Tesla服务化框架的概况 部分关键点的机制与实现 测试数据及线上使⽤情况 曾经遇到的问题 后续的发展计划 蘑菇街⺴站的技术架构 Tesla服务化框架的起源 业务模式从导购到电商=》业务复杂化=》系统服务化 为什么不⽤开源产品? 满⾜需要 ⾼度可控 对原有开发模式影响⼩ 14年4 ⽉份开始,7⽉份上线,⺫前1.1.4版本 Tesla服务化概况 Tesla 概况-PHP Proxy php stub: 运⾏在fpm进程,封装参数,调⽤ext获取结果 php ext :运⾏在fpm进程,通过进程间通信的⽅式保持与proxy 进程的⻓连 c++ proxy :独⽴进程,epoll模式调⽤后端远程服务 Tesla 概况-Java Server 基于Spring IOC ,bizContext frameworkContext 启动时序 初始化bizContext ,加载相关service、dao等业务对象 初始化frameworkContext ,加载编解码、序列化、压缩、监 控等框架基本组件 扫描tesla注解的service ,注册到配置中⼼,⽣成代理对象到 ⾃定义的容器中 初始化NettyNioServer ,监听服务接⼝ Tesla 概况-Java Server 调⽤时序 NettyNioServer接收到请求 解码、解压缩、反序列化,⽣成TeslaMsg对象 提交处理任务到线程池 根据serviceName查询对应的Invoker对象 调⽤监控、统计、安全、⽇志等拦截链 调⽤真实服务⽅法获取结果 序列化、压缩、编码,返回结果 Tesla 概况-Java Client 根据referConfig⽣成代理targetBean ,包装负载、重试、监控等 向configServer注册监听service ,获取路由、超时配置 对每⼀个provider⽣成⼀个providerInvoker对象,设置到 targetBean的providerList中 providerInvoker通过futureResult⽅式等待结果,底层基于netty 进⾏⺴络请求 Tesla 概况-配置中⼼ 持久化的应⽤配置项管理 ⾮持久化的服务列表管理 基于ZK进⾏简单封装和改造 关键点-通信协议及序列化⽅式 TCP ⾃定义⼆进制协议 序列化:json 通⽤性 健壮性 可调试性 性能表现 关键点-负载均衡策略 加权最⼩并发数(默认) 加权随机:调⽤量⾜够⼤才能⽐较平均 轮询:需要后端服务能⼒对等 第⼀次随机,后续固定 ⼀致性hash(未上线) 关键点-服务路由 基于服务粒度的路由,采⽤@^*,等符号定义consumer和provider之间的关系 需要路由的场景 部署相同,读写分离 将不同调⽤⽅的请求隔离 线上针对⼀台server进⾏调试 example: 只允许20,22两台服务器发起对7的请求 { service : com.mogujie.tesla.rate.DsrService, localfilter : @20,@22, remo

文档评论(0)

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

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

1亿VIP精品文档

相关文档