【CC++服务器开发】中间件的含义及常用中间件介绍.pdfVIP

【CC++服务器开发】中间件的含义及常用中间件介绍.pdf

  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文档。上传文档
查看更多
【CC++ 服务器开发】中间件的含义及常⽤中间件介绍 ⽂章⽬录 ⼀、中间件的定义 中间件⼀词的由来 中间件这个术语第⼀次出现是 1968 年在德国加尔⽶施帕滕基兴举办的 NATO 软件⼯程⼤会 结束后发表的⼀份报告中。 这届⼤会正式确定了软件⼯程(Software Engineering)的概念,同时还探讨了软件设计、⽣产和分发等主题。 中间件的定义 中间件(英语:Middleware),⼜译中间件、中介层,是⼀类提供系统软件和应⽤软件之间连接、便于软件各部件之间的沟通的软件,应 ⽤软件可以借助中间件在不同的技术架构之间共享信息与资源。中间件位于客户机服务器的操作系统之上,管理着计算资源和⽹络通信。 – 维基百科 什么不是中间件 我们按照类别来看⼀些经常会遇到的⼀些不是中间件的概念 - 业务平台不是中间件,业务平台是从服务的视⾓抽象的能同时⽀撑多个业务,业务之间的信息能形成交互和增强的平台。 - 营销⼯具不是中间件,营销⼯具是直接作⽤于最终消费者⽤户的软件或者插件服务。 - ⼆⽅/三⽅⼯具包不是中间件,⼆⽅/三⽅⼯具包是在各种场景的程序开发过程中沉淀的⼀些常⽤⼯具类(功能)的集合,包含于软件代码本 ⾝。 - SaaS 不是中间件,SaaS(Software as a Service) 更多的是⼀种软件交付模式,⽆需⽤户安装,通过⽹络在线访问的⼀种服务模式。 - PaaS 不是中间件,PaaS(Platform as a Service) 将软件研发的平台做为⼀种服务,提供软件部署平台(强调的是屏蔽系统和软件细节的 runtime平台)。 评判关键 从定义可以总结出评判的⼏个地⽅ 1. 性质:中间件是软件。 2. 作⽤层级:系统软件和应⽤软件之间、软件各部件之间;管理客户机与系统软件之间的计算资源和⽹络通信。 3. 服务对象:中间件为应⽤软件服务,应⽤软件为最终⽤户服务,最终⽤户并不直接使⽤中间件。 中间件的好处 中间件能给客户带来什么? 为上层应⽤软件的开发提供便捷的、开箱即⽤的服务交互和计算的能⼒,缩短开发周期;屏蔽底层runtime的差异;节省应⽤本⾝的系统资 源,减少运⾏成本。 中间件分类 什么时候使⽤中间件 基于中间件的定义我们知道中间件是连接软件与系统之间的服务,那么我们什么时候使⽤了中间件,在哪些地⽅⽤到了中间件了。我们不妨 假设⼀个http请求过程来窥视⼀番。 当你在浏览器中输⼊⼀个⽹址时,它会通过 DNS 解析到⽬标服务注册的公⽹IP地址 请求到达⽬标服务的 web 反向代理服务器 Tengine 之后,经过⼀定的过滤转发到⽬标服务A上 服务A通过 RPC框架 Dubbo 请求服务B的结果做中间计算,并且从 Tair 缓存中读取计算因⼦,计算结果 服务A接着使⽤ Druid 通过 TDDL 写⼊计算结果到 MySQL Master 节点然后返回结果 异步过程中 Canal 通过模拟 Binlog 主从复制的原理,迅速将这条 Binlog 消费并下发到消息队列 RocketMQ 服务C通过 RocketMQ 消费到事件之后,通过配置中⼼ ConfigServer 拉取到的策略进⾏对应策略的事件处理。 这个过程中我们使⽤了⼀系列的中间件来协同各个微服务完成整个流程,如web反向代理服务器 Tengine、RPC框架 Dubbo、缓存 Tair、 连接池 Driud、数据库代理层 TDDL、Binlog 同步⼯具 Canal、消息队列 RocketMQ、配置中⼼ ConfigServer。 常⽤基础中间件 - 路由与web服务器:处理和转发其他服务器通信数据的服务器。 如被业界⼴泛使⽤的阿⾥基于 Nginx 研发的 Tengine、阿⾥内部的集中 式路由服务 VipServer - RPC框架:微服务时代的远程服务调⽤框架。如grpc, Thrift, 阿⾥的 HSF, Dubbo, SOFA-RPC - 消息中间件:⽀持在分布式系统之间发送和接收消息的软件。 如 Apache kafka, Apache RabbitMQ, NSQ, 阿⾥孵化开源的 Apache RocketMQ - 缓存服务: 分布式的⾼速数据存储层,⼀般是内存存储。如 阿⾥ Tair,业界的 Redis, Memcached, Ehcache - 配置中⼼:⽤来统⼀管理各个项⽬中所有配置的系统。如 阿⾥ Nacos、携程 Apollo、百度 Disconf - 分布式事务:事务的参与者、⽀持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。 如 阿⾥ seata、腾讯 DTF

文档评论(0)

文库垃圾佬 + 关注
实名认证
文档贡献者

这个人很懒

1亿VIP精品文档

相关文档