大家要如何以规模化方式运维微服务应用程序?实践当中会出现哪些问题,我们又该如何加以解决?在大规模与非预测性工作负载场景当中,我们需要满足哪些条件才能运行一款大型微服务应用程序,而又能够确保不必受到功能发布或者产品变更的影响?

在围绕微服务展开的探讨当中,我们发现几乎很少有人能够切实回答上述问题。以Docker、Mesos、Kubernetes以及gRPC为代表的各类新型技术成果的快速崛起使得我们能够轻松建立小型新架构。然而,高流量生产性用例又该如何实现?根据我们的推算,目前能够以规模化方式运行微服务,从而解决实际问题的企业数量仍然相当有限。

Twitter就是其中的典型代表。而且尽管其也经历过公共服务中断,但Twitter负责运维的是世界上规模最大的微服务应用之一,其中包含上百种服务、数以万计的节点以及每项服务中的数百万RPS。令人震惊的是,事实证明这样的工作绝非易事。虽然不是不可能,但需要企业投入多年并充分运用自身聪明才智,从而令一切在实践层面运作良好。

当Oliver和我前几年离开Twitter公司时,我们的目标是运用自己多年积累下的专业知识,将其转化成可供全世界各组织机构使用的可行性资源。令人振奋的是,这些知识中已经有相当一部分以开源项目的面貌了,也就是Finagle项目——这是一套用于支撑Twitter微服务架构的高通量RPC库。

Finagle属于Twitter的内部核心库,负责管理不同服务间之通信流程。事实上,Twitter公司的每一项在线服务都立足于Finagle构建而成,而且其支持着每秒发生的成百上千万条RPC调用。除了Twitter之外,Finagle还为多家企业的基础设施提供帮助,具体包括Pinterest、SoundCloud、Strava、StumbleUpon以及其它众多公司。

今天,我们很高兴地宣布我们将Finagle推向大众的愿景已经迈出了重要的一步。linkerd已经迎来其0.1.0版本,而我们亦以Apache License v2为基础对其进行了开源。

linkerd是我们面向微服务的开源RPC代理。它直接立足于Finagle构建而成,设计目标在于帮助用户简化微服务架构下的运维。这些多年积累下来的宝贵经验能够让我们轻松实现自包含、最低依赖性并确保将对现有应用程序的调整幅度控制在最低水平。

如果大家正在着手构建一套微服务方案,那么肯定需要发挥Finagle的各项优势——包括智能化、自适应负载均衡、服务发现抽象化以及内部业务流量路由等等。大家可以利用linkerd将这些功能添加进入,而无需对应用程序代码做出任何变更。另外,linkerd还提供一套漂亮的仪表板!

linkerd目前尚未彻底完工,不过遵循“早发布、频发布”的原则,我们认为现在已经应该将其早期版本交付给大家。

因此,如果大家对此抱有兴趣,那么不妨首先访问linkerd.io网站获取说明文档及进行下载。另外,如果大家乐于为其做出贡献,也可以直接前往linkerd GitHub repo提交您的成果。我们强烈支持开源精神——而我们也乐于以此为核心建立起一整套社区。

我们未来还有着漫长的发展道路,并已经准备好了一份接下来需要被添加进linkerd的令人兴奋的功能清单。欢迎大家加入我们这个开源大家庭。

——William、Oliver以及整个Buoyant团队

如果大家对这个名称感到好奇,我们将linkerd理解为微服务的‘动态链接器’,即dynamic linker。正如操作系统中的动态链接器需要获取库名称与函数以对该函数进行调用一样,linkerd也需要获取服务名称与RPC端点,从而对该RPC加以执行——而且整个过程安全且可靠。

参考资料:

http://j.news.163.com/docs/28/2016022009/BG8MBR7J9001BR7K.html

http://www.tuicool.com/articles/RRFFJrq

【架构】linkerd:来自Twitter为微服务而生的开源RPC解决方案的更多相关文章

  1. (转)微服务架构 互联网保险O2O平台微服务架构设计

    http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...

  2. Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构

    Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...

  3. Re:从0开始的微服务架构--(二)快速快速体验微服务架构?--转

    原文地址:https://mp.weixin.qq.com/s/QO1QDQWnjHZp8EvGDrxZvw 这是专题的第二篇文章,看看如何搭建一个简单模式的微服务架构. 记得好久之前看到一个大牛说过 ...

  4. go微服务框架go-micro深度学习 rpc方法调用过程详解

    摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取serv ...

  5. 微服务的一种开源实现方式——dubbo+zookeeper

    转自: http://blog.csdn.NET/zhdd99/article/details/52263609 微服务架构成了当下的技术热点,实现微服务是要付出很大成本的,但也许是因为微服务的优点太 ...

  6. 从React Native到微服务,落地一个全栈解决方案

    Poplar是一个社交主题的内容社区,但自身并不做社区,旨在提供可快速二次开发的开源基础套件.前端基于React Native与Redux构建,后端由Spring Boot.Dubbo.Zookeep ...

  7. 微服务(Microservices)和服务网格(Service Mesh)架构概念整理

    注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...

  8. 微服务(Microservices)和服务网格(Service Mesh)的架构概念

    注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...

  9. 看完这篇微服务架构设计思想,90%的Java程序员都收藏了

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 微服务 软件架构是一个包含各种组织的系统组织, ...

随机推荐

  1. MySQL 5.7:非结构化数据存储的新选择

    本文转载自:http://www.innomysql.net/article/23959.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 工作10余年,没有一个版本能像MySQL ...

  2. non-overlapping-intervals

    https://leetcode.com/problems/non-overlapping-intervals/ 其中还用到了Java的Comparator接口和其中的compare方法. packa ...

  3. 第六十九篇、OC_录制语音和播放语音功能的实现

    录制: 1.设置全局属性 NSURL *recordedFile;//存放路径 AVAudioPlayer *player;//播放 AVAudioRecorder *recorder;//录制 NS ...

  4. sqlserver 关于快照

    数据库快照:是数据库某一时间点的视图,快照涉及最初目的是为了报表服务,快照还可以和镜像结合来达到读写分离的目的 数据库快照:是sqlserver数据库的只读静态视图快照的作用:1 提供了一个静态的视图 ...

  5. C# ACM poj1008

    玛雅历 public static void Acm1008(int day, string mon, int year) { ; switch (mon) { case "pop" ...

  6. 有关UIImageView+AFNetworking 下载图片的线程问题

    今天写了一个demo,从服务器获取图片,然后显示在cell上,大家都知道cell的重用机制,当往下拉的时候,上面的cell遮住了,下面的cell就会重用被遮住的cell, 贴代码: NSString ...

  7. 葡萄城报表模板库再次更新!补充医院Dashboard及房地产销售行业报表

    新增模板介绍 近日,葡萄城报表再次对报表模板库进行了更新,除了补充医院用于整体运营监控的5张 Dashboard 报表外,还增加了房地产销售场景中常见的12张报表. 5张 Dashboard 报表模板 ...

  8. JSP Servlet学习笔记——使用fileupload上传文件

    关键代码如下: index.jsp <body> <center> <h3>文件上传</h3> <font color="red&quo ...

  9. 分页器的js实现代码 bootstrap Paginator.js

    参考: http://www.jb51.net/article/76093.htm 如前所述, 不要什么都想到 jquery的 脚本js, 应该首先推荐的是 css 和 元素本身的事件 函数 如: o ...

  10. 转:常用svn命令

    在公司需要提交代码,常用的就是co.ci.add.up.和log 首先 svn help 可以看到 svn 所支持的全部命令: 命令不多,如果用过Tortoise SVN的客户端,从字面上也不难理解这 ...