14
回答
【开源访谈】腾讯刘豪:腾讯内部有 160 多个业务使用微服务架构
华为云实践训练营,热门技术免费实践!>>>   

近几年,微服务架构由于其简单和灵活性,受到业内越来越多人士的青睐。目前对“微服务” 的架构风格并没有提供精确的定义,它的优势是什么?在技术选型上需要注意哪些问题?在企业中的应用程度又如何呢?本期【开源访谈】邀请到腾讯后台高级工程师刘豪,与大家分享开源微服务架构在企业中的应用。

本期嘉宾:刘豪,腾讯后台高级工程师,主要从事于微服务架构、分布式 NoSQL存储、大数据计算平台等技术领域的相关工作。

1、嘉宾自我介绍

我叫刘豪,2012 年硕士毕业进入腾讯公司,目前是一名后台开发的高级工程师,主要从事于微服务架构、分布式 NoSQL 存储、大数据计算平台等技术领域的相关工作。

2、先谈谈您对“微服务”这个概念的理解。

个人理解,微服务是一种架构风格,通常一个大的业务系统由多个具体的服务组成,而这些服务本身有一些特点:

  1. 每个服务都比较简单,服务功能单一;
  2. 拥有轻量级的通信框架;
  3. 有各自独立的进程,能独立部署;
  4. 服务之间松耦合,具有很高的灵活性。

3、微服务架构的优势是什么?主要解决了哪些痛点?

从 Tars 架构上来看,微服务架构的优势有很多,主要体现在以下几个方面:

  1. 每个服务功能简单单一,只关注于一个业务功能,每个服务可以独立开发,开发效率高。
  2. 微服务架构方式是松耦合的,每个服务可独立部署,灵活性好。
  3. 微服务架构提供的轻量级通信框架和高可用能力,能有效解决不同编程语言、不同系统平台之间服务交互的问题,以及服务在分布式环境下遇到的容灾容灾、复杂均衡等问题,让开发更加聚焦业务逻辑本身。
  4. 微服务架构提供了持续交付和运营的能力,让运维工具、运维管理机制更加统一和标准化,让服务部署、发布、监控、问题定位等运营操作变得简单高效。

4、微服务目前在企业的应用程度如何?它能给企业带来什么价值?

目前互联网企业中很多都在使用微服务架构,帮助企业提供了敏捷开发、持续交互、高效运营等方面的能力。

5、能否向大家介绍一下利用“微服务架构”进行实践的典型案例?

这里介绍一下公司旗下某个投资公司进行“微服务架构”的实践。

下面是他们先前的架构和快速发展下遇到的问题和瓶颈:

 

使用 Tars 微服务架构后,很好的解决了他们的问题。最后,他们改造的系统架构如下:

6、微服务架构在技术选型上,主要要注意哪些方面的问题?

我个人认为,在微服务的技术选项上,需要重点注意的有以下几个问题:

  • 服务注册与发现
  • 负载均衡
  • 通信框架与通信协议
  • 服务部署、发布、升级
  • 服务监控和告警
  • 资源管理和服务调度
  • 配置管理和日志收集

7、谈到微服务,大家都会联想到容器技术。如果没有容器技术的支持,会给微服务带来哪些不便?

容器化,特别是 Docker,给我们带来了非常大的好处。在没有容器化以前,我们经常遇到一些问题,比如:

  • 环境异构造成的交付失败,主要体现在几个方面,一是基础环境,如OS、GCC等,二是运行环境,如Apache、Nginx、Tomcat等,三是依赖环境,如各种动态库和jar。
  • 运行包异构造成的部署复杂,比如执行文件、目录管理的问题
  • 如何提高部署的效率,并且提升资源的利用率,一直是比较头脑的问题。

8、目前腾讯对微服务架构的使用情况如何?是否已将多数业务架构转向微服务?

这里主要说下,Tars 在腾讯的使用情况,目前腾讯内部有 160 多个业务(比如手机 qq、qq 手机浏览器、应用宝、腾讯手机管家等)在使用,覆盖的服务器规模超过 1.6w 多台,有 2w 多个服务模块,6w 多的服务进程在平台上运行,每天模块间的调用量超过 10 亿次。

9、您对微服务未来的发展有哪些期待?

期待微服务在资源隔离、资源调度等方面能做的更好,以达到运维自动化和提高整体资源利用率的目的。

举报
OSC源创君
发帖于3个月前 14回/4K+阅
共有14个评论 最后回答: 3个月前

引用来自“獜彝”的评论

竟然有php!

https://github.com/tencent-php/tsf
腾讯基于Swoole的Tencent Server Framework(TSF)在腾讯公司的企业QQ,QQ公众号项目都有大规模应用.

您好, 我们也正在利用微服务的思想尝试将后端服务化, 虽然目前只是初具规模, 但服务化的好处我们是深有体会, 复用率高, 服务的隔离原则和松散的耦合使开发效率大大提高.  但是因为我们是按照restful + http的方式在业务逻辑层组合的各个服务的数据,  当一个业务逻辑需要调用大量顺序执行的服务的话(不需要顺序的我们用curl的多线程并发请求以提高速度), 就会很慢~毕竟http很耗时~ 我想请问大神, 有么有什么成熟的轻量级通讯框架能解决我这个痛点啊~ 我们公司规模不大, 重量级的框架对我们来说反而是个负担.

顶部