未发布 .NET Core 2将Visual Basic带到了Linux和macOS平台 Microsoft已经愈加接近将Visual Basic划为.NET Core平台上的一等公民。作为.NET Core 2发行版的一部分,VB开发者现在可以编写针对.NET Standard 2.0的控制台应用程序和类库,并且可以兼容多个平台。这就意味着运行在Windows上的可执行文件或者类库也能够运行在macOS和Linux上。 一旦安装了.NET Core 2 SDK,你就可以开始创建VB项目了。由于这是.NET Core平台,Visual Studio有助于编码,但是它并不是必需的。.NET Core 2.0中有四个VB模板: - 控制台应用程序:Hello World程序样例
- 类库
- 单元测试工程
- xUnit单元测试工程
在命令提示行中,你可以执行:
dotnet –version
来确认你使用的是.NET Core 2.0版本或者是更高的版本。然后你需要创建一个新目录来保存你的工程,并且运行dotnet new来根据其中一个模板创建一个新工程。之后,执行dotnet run来运行这个工程:
mkdir vbcore
cd vbcore
dotnet new console -lang VB
dotnet run
但是这并不意味着Microsoft的工作都已经全部完成,因为目前还有剩余任务要做,例如,让.NET Core平台上的VB开发者拥有使用ASP .NET Core的能力。Microsofs 的Immo Landwerth说,针对于此的模版尚在进行中,这个版本尚不可用。尽管如此,VB开发者现在可以针对macOS和Linux编写跨平台代码了,在此之前,这是不可能完成的。
未发布 矢量图形引擎库VectorDraw Developer Framework 更新v7.7011.0.3 
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
VectorDraw Developer Framework点击下载>>>
VectorDraw Developer Framework(VDF)v7.7011.0.3更新内容:
WebJS
新增需求
| 版本 | 需求 |
7.7011.0.1 | 70001006 支持webgl渲染模式的webgl图像 |
| 70001016 支持webgl节剪辑 |
| 70001019 支持使用scriptCommand hatch绘制阴影边框 |
| 70001024 使用鼠标进行缩放 |
| 70001029 实体选择回调 |
Converter
新增需求
| 版本 | 需求 |
| 7.7011.0.1 | 70001015 具有相同名称的vdXproperties导出不正确 |
漏洞
| 版本 | 需求 |
| 7.7011.0.1 | 70001009 DXF代理对象读取出错 |
| 70001020 某些DWF文件未正确打开 |
| 70001025 DGN Xrefs的问题 |
| 70001033 Layout paper未正确初始化 |
| 7.7011.0.2 | 70001040 SPLines在DWG中未正确导出 |
vdDXF
漏洞
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001011 HANDLE类型的XProperty在DXF中未正确导出 |
Engine
新增需求
| 版本 | 需求 |
| 7.7011.0.1 | 70001008 改进ClearEraseItems方法的速度 |
| 70001012 MergeSelection方法用于传递对象的GUIDs |
| 70001027 虚拟机中的OpenGL问题 |
| 70001034 能够设置UCS图标字母的颜色 |
| 7.7011.0.2 | 70001036 外部引用对话框有一个支持路径按钮 |
漏洞
| 版本 | 漏洞 |
| 7.7011.0.1 | 70001007 当文本具有斜角时,EditText和AddText命令不会正确显示光标 |
| 70001010 点上的多点折线未正确显示 |
| 70001013 Inserts Inside Blocks层是处于ON状态时仍不可见 |
| 70001014 图层组和滤镜在删除后仍会保存到DXF中 |
| 70001017 图像在nonused Block中使用时会被删除 |
| 70001018 线型折线显示不正确 |
| 70001021 RenderToGraphics和RenderToDC会清除目标图形上下文的背景 |
| 70001022 尺寸对象未正确导入PDF |
| 70001026 在vdraw Idle中很少会随机出现exeption |
| 70001030 Bhatch命令为创建的polyhatch添加白色作为fillcolor |
| 70001031 用户选择部分文字的拉伸命令会出现错误 |
| 70001032 vdMtext对象没有对齐 |
| 7.7011.0.2 | 70001035 vdLayout DrawCCSAxis showOnOrigin参数无法正常工作 |
| 70001037 用户尝试打开特定文件后应用程序瘫痪 |
| 70001038 图像不能从EMF正确导入 |
| 70001039 Block名称不适用于DWG |
| 70001042 具有Shape段的LineTypes不能在3d中与ExcludeFromList Draw3DFlag正常显示 |
未发布 多平台移动项目开发工具Elements发布v9.1,支持Visual Studio 2017 Elements是一款多平台移动项目开发工具软件,它包含Oxygene、C#、Swift三种编程语言和相关工具,并且提供这三种语言丰富的开发经验以及最新的Fire开发环境,极大的方便开发人员开发软件项目。
Fire
此版本是Fire最重要的更新。
性能改进
Fire在许多方面都进行了精简和性能改进。代码编辑器的响应速度更快,例如,在构建过程中CPU占用低。100%的响应一直是Fire的首要目标。Fire的大部分工作都是在极低功耗的12“MacBook”Adorable“上完成的,而我们的基准是,即使是最低端的硬件,Fire也可以使用,9.1版本更是如此。
互动调试控制台
Fire的调试功能在许多方面得到了加强,最出色是引入了新的交互式调试控制台。当你的应用程序进入调试器时,底部控制台视图现在允许你使用调试器命令提示符与调试器进行交互。
在使用LLDB的平台(如Cocoa和一些Island targets)上,你可以使用所有功能访问LLDB的完整命令界面;在其他平台上你会收到我们的edb提示,它提供必要的命令并将随着时间的推移而扩展。
Gradle References和EBuild
Fire(和Elements构建链)支持Java和Android项目中的显式Gradle References管理。Gradle References现在是项目的第一类成员,就像常规引用一样,它们可以通过“管理引用”表进行添加和更新。Fire还使用我们即将推出的EBuild工具链的技术预览。
Visual Studio中的Elements
Visual Studio是Windows上开发人员的主要IDE,Elements 9.1为Visual Studio带来了一些新功能和增强功能。
支持Visual Studio 2017
支持所有新的Visual Studio 2017 IDE。虽然没有Shell,Elements 9.1提供了与已安装的Visual Studio 2017集成,包括专业版、企业版和免费社区版。当然,VS2017中支持所有四种平台和三种语言。
Island
我们最初在9版中引入的新版本的Island平台也是这个版本的主要重点,有许多改进和增强和修复:
在Windows 10上运行和调试Linux应用程序
针对Linux的Island开发人员现在可以在Visual Studio、Windows 10 Creators Update或更高版本的本地机器上无缝地运行和调试他们的应用程序,只需点击“ 开始 ”或按F5。
新的子平台:ARM上的Android NDK和Linux
Elements 9.1中Island平台支持两个新的子平台。除了支持英特尔x64之外,Linux应用程序现在可以定位armv6和更高版本的CPU。你可以开发在嵌入式设备上运行的Island应用程序,从Raspberry Pi一直运行到Bare ARM系统等。
此外,我们还添加了Android NDK作为一个brad新的子平台,允许你使用NDK、Oxygene、C#、Swift和Java语言创建Android应用程序扩展(或整个应用程序)。
支持Library
EUnit、Elements RTL和Delphi RTL都已经移植到了这个版本的Island,现在在使用这些(可选)库时,可以在所有三个平台上同步。
Libraries
Elements RTL
Elements 9.1正式引入了新的跨平台兼容性库Elements RTL。代替“Sugar”,Elements RTL是一个可选的库。无论你是在编写一个iOS应用程序并计划移植到Android,还是要创建Mac和Windows版本的桌面应用程序,Elements RTL可以轻松共享代码。
当然,Elements RTL也支持我们新的Island平台。
Delphi RTL改进
用于将Delphi代码移植到Oxygene的Delphi RTL兼容性库得到了改进。它现在基于Elements RTL,并且也适用于Island,使其成为跨所有Elements targets的真正跨平台。
未发布 微软的dotnet-new工具可以使创建JavaScript Web 程序变得更简单 Microsoft发布了一组工具,使用他们的dotnet-new工具和使用Node.js的灵活方法可以快速生成基于JavaScript的Web 应用程序。
dotnet-new工具是.NET Core工具的一部分,用于使用简单的命令启动一个新项目。作为ASP.NET Core JavaScript Services的一部分,Web开发人员现在可以使用相同的命令来启动新的单页应用程序(SPA)。
点击查看完整内容>>>
未发布 组件套包Essential Studio for UWP 2017 v3发布丨附下载
Essential Studio for UWP 2017 v3为图表添加了一个新的选择器控件,轴刻度中断,以及支持甘特图控件的样式定制。
选择器
新控件
新的选择器控件可以从自定义或模板化的视图项目列表中选择一个项目。 此控件也可以作为对话框打开。
主要特征
图表
轴刻度中断
为图表控件提供了轴刻度中断支持。
气泡图拖动
在编辑数据值时,可以拖动气泡图。
图表
增强注释功能
注释支持交互。可以选择、拖动、调整大小并旋转。
注释可以根据它们对齐的段自动旋转。
DOCIO
内容控件
DocIO能够在Word文档中创建和修改内容控件,并提供了一种设计具有以下功能文档的方法:
创建一个类似表单的用户界面。
防止用户编辑内容控件的内容。
将内容绑定到XML数据。
支持Word转为EPUB
DocIO现在支持将Word文档转换为EPUB文件。
PDF
电子签名
使用PKCS#12证书与私钥数字签名文件,如.pfx文件。
标记PDF
通过允许用户创建PDF/通用可访问性(PDF / UA)或符合章节508的PDF文档来提供辅助功能。
PDF查看器
弹出式注释
PDF Viewer现在允许用户添加和操作PDF文档中的弹出式注释。
Pivot客户端
关联数据源
Pivot客户端支持在嵌入式枢轴网格和枢轴图表中可视化关系数据。 它还提供一个UI选项来拖动字段,过滤它们,并在运行时通过数据透视表字段列表创建pivot视图。
演示
支持插入列
演示文稿现在允许在PowerPoint演示文稿中的表中插入列。
甘特图
样式
支持定制网格标题、时间刻度、前置连接器、任务标签和资源标签的样式。
事件和方法
增加了新的可用性事件和方法。
本地化
支持本地化控件中的静态文本。
看板
本土化
支持本地化控件中的静态文本。
XLSIO
过滤器功能增强
未发布 Essential Studio for UWP发布2017 v2,新增甘特图控件 【Essential Studio for UWP最新版点击下载>>>】
图表
区段颜色设置
图表中的每个段现已支持颜色贴图。

多个样条曲线类型
图表控件现在支持样条区域的多个样条类型。

图表
片段装饰
连接器中添加了一种新的装饰元素,以指示连接在另一个连接器或片段上的流动。

PDF
增强PDF安全功能
现在支持PDF 2.0安全功能(AES Revision 6)。

数据透视图表
快速图表类型
在透视图控件中实现了以下快速图表类型:快速列位图、快速条形图、快速行、快速位图、快速步进位图、快速分散位图和快速堆叠列位图。
修饰
添加数据透视图修饰以显示与图表细分元素相关的值。

注释
数据透视图注释显示有关绘图区域中特定目标点的图表或系列的元数据。

Pivot客户端
标签和值过滤器
Pivot客户端支持按标签和值进行过滤。

延迟更新
Pivot客户端可以仅在需要时更新,而不是在每次UI交互期间更新。
Pivot网格
Pivot行
Pivot网格可以定制为平面网格。

分组栏
Pivot网格提供了一个UI选项来拖动字段、过滤,并在运行时通过分组栏创建Pivot视图。

演示
注释功能
可以在PowerPoint演示文稿中创建和修改注释。

富文本框
支持打印
富文本框控件现在支持从桌面和移动应用程序中打印文档内容。

页面布局
富文本框控件支持在移动设备上逐页查看文档内容。

甘特图
甘特图控件用于可视化和编辑项目进度,并跟踪项目进度。它可以帮助你组织和安排项目。你还可以通过编辑、拖动和调整大小等操作来更新项目进度。

主要特征
树型网格
过滤
树状网格控件现在支持使用各种过滤器选项,用编程方的式过滤节点。

未发布 网络安全工具FileAudit更新v5.5版本,更好地识别和分析异常的文件 FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。
FileAudit v5.5新功能
FileAudit 5.5的发布侧重于帮助IT管理员更好地识别和分析异常的文件。
数据泄露必须要找到发生的来源,平均191天就会出现发现违规事件。如果受保护的数据驻留在文件服务器上,会存在明显的违反指示。通过监视文件服务器上受保护数据的访问和使用情况,可以根据异常活动来检测数据泄露。
详细活动概述-按用户
这个新的仪表板提供了关于指定用户已经访问或尝试访问的所有文件和文件夹的详细活动报告。从文件访问查看器或统计中单击任何用户以查看在前4周内执行的所有事件。
详细活动概述-按文件或文件夹
这个新的仪表板提供了关于从所有用户访问指定文件或文件夹的详细活动报告。单击文件访问查看器或统计信息中的任何文件或文件夹路径可查看前4周内执行的所有事件。
完整事件详情
双击访问事件现在将显示完整的事件详细信息。
关于存档数据库的报告
如果需要访问归档的记录,可以在安装文件夹中找到新的工具(FileAuditReporter)。这个工具可以让您轻松检索、分析和报告存档的数据。
发送通知和报告给Slack
将Slack与FileAudit集成可以帮助整个IT团队更容易跟踪问题和共享报告。来自FileAudit的任何消息(警报,计划报告,警告消息)都可以发送到Slack中的共享通道。
改进预定报告
现在有一个新的选项来保存所有的历史报告。(如果需要,您可以自动使用最新版本覆盖旧的预定报告)。
改进服务
能够在更改远程连接设置时重新启动FileAudit服务。

未发布 超实用CAD控件CAD VCL发布v12,支持Embarcadero®RAD Studio 10.2 Tokyo丨附下载 CAD VCL是一个高品质多功能且含源码的控件,它提供了几个强大的类用于为您的Delphi/C++Builder应用程序创建AutoCAD DXF, CGM, Hewlett-Packard PLT/HPGL, PDF和SVG文件。 CAD VCL 12支持Embarcadero®RAD Studio 10.2 Tokyo,并支持最新的AutoCAD®DWG 2018。
我们发布了CAD VCL 12,它是一个Delphi和C ++ Builder的新版本CAD库。不久前Embarcadero®RAD Studio 10.2 Tokyo发布。我们很高兴地通知你,新版本的CAD VCL 12也与此开发环境兼容。
除了这项更新,CAD VCL还支持最新的DWG版本 - AutoCAD®DWG 2018。因此,使用CAD VCL 12创建的应用程序将能够阅读最新的图纸。
CAD VCL 12中包含的改进内容列表:
未发布 百度正式开源其RPC框架brpc 9月14日,百度正式在GitHub上基于Apache 2.0协议开源了其RPC框架brpc。brpc是一个基于protobuf接口的RPC框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有RPC协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc的性能领跑于其他同类RPC产品。
brpc开发于2014年,主要使用的语言是C++和Java,是百度内部使用最为广泛的RPC框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约75万个同时在线的实例。据了解,百度内部曾有多款RPC框架,甚至在2014年时还开源过另外一款RPC框架sofa-pbrpc。那brpc是在什么样的背景下诞生的?它有什么样的优势?又为何要开源?就这些问题,InfoQ记者采访了brpc负责人戈君。
Q:谈谈brpc的一些基本情况?什么时候开始研发的?经过了怎么样的迭代和升级?目前在内部应用情况如何?
戈君:brpc于2014年创建,在百度内部称为“baidu-rpc”。到目前为止,brpc一共进行了3000次左右的改动,现在仍在持续优化中,百度内的wiki上可以查询到每次改动的描述。brpc的主要语言是C++和Java,对其他语言的支持主要是通过包装C++版本,比如brpc的Python版包含C++版的大部分功能。
brpc目前支撑百度内部大约75万个同时在线的实例(不含client),超过500种服务(去年的统计,现在已不统计这类数据)。Hadoop、Table、Mola(另一种广泛使用的存储)、高性能计算、模型训练、大量的在线检索服务都使用了brpc。brpc第一次统一了百度内分布式系统和业务线的通信框架。
Q:为什么百度当时要研发brpc?
戈君:我们在实践中意识到,RPC作为最基础的通信组件,当时的百度已经不领先了。我当时的经理刘炀曾是Google的工程师,非常重视基础架构的建设,也愿意在这个方向投入资源。
我们在内部会更加深入地讨论这些问题。“好用”有时看起来很主观,但其实还是有据可循的,它的关键点是能不能真正地提高用户的效率:开发、调试、维护都要考虑到,如果用户效率真的被提高了,用户会想着你的,靠吹嘘或政令推广的东西得不了人心。我们创建brpc的初衷是解决百度业务所面临的实际挑战,同时也希望成为百度同学最喜爱的工具,哪怕离开百度也会怀念brpc。我们希望在提供了一个好用框架的同时,也展现了一种工作方法:注释怎么写,日志怎么打,ChangeLog怎么写,版本怎么发布,文档怎么组织,甚至对未来不在百度的同学的工作也有帮助,所以从这点来说brpc从一开始就是拥抱开源的。事实上,我们在口碑上做得还不错,brpc的wiki可能是百度内被点赞最多的内容之一。
Q:与其他的一些开源的RPC框架相比,brpc的优势是什么?
戈君:brpc主打的是深度和易用性。一方面我们没有精力像gRPC那样摊大饼,什么都做。另一方面我们也注意到gRPC(包括更早的Thrift)的深度和易用性并不够。技术方面的东西就是这样,看示例程序,文档非常牛逼,但实战中可能就是另一回事了,为什么各个公司都要造自己的轮子,一个隐藏原因就是表面高大上的东西在一些细节上让你无法忍受。
RPC真正的痛点是什么?是可靠性、易用性和定位问题的便利性。服务中不要出现不可解释的长尾,程序的可变项要尽量少,各种诡异问题要有工具支持快速排查。而这些在目前开源的RPC框架中做的并不好,它们大多看着很牛,但就是无法在自己组织中推广开来。回到前面那三点,brpc是如何做的呢?
- 可靠性。这一方面是代码质量问题,通过为brpc团队设立很高的招聘门槛,以及在团队中深入的技术讨论,我们确保了稳固的代码基础。另一个问题是长尾问题,这是设计问题,brpc其实包含了很多模块,其中的bthread是一个M:N线程库,就是为了更好地提高并发避免阻塞。brpc中的读和写都是wait-free的,这是最高程度的并发。技术细节请点击链接查看。
- 易用性。有种设计是什么选择都做成选项丢给用户,号称功能都有,但一旦出问题,则是用户“配置错了”。而且这样用户还非常依赖开发团队,没有开发团队的支持基本用不了,开发团队有足够的理由扩充团队。这么做其实非常不负责任,用户面对海量的选项也很难受。brpc对于增加选项非常谨慎,框架能自己做判断的绝不扔给用户,所有用户选项都有最合理的默认值,不设也能用。我们认为这对用户体验来说非常重要。
- 定位问题的便利性。这点其它开源框架目前做的都不好,正常使用是可以的,但出问题就麻烦了。这个问题在百度内部其实也很严重,brpc之前用户排查问题都要拉RPC同学一起排查,RPC框架对用户是个黑盒,用户根本不知道里面发生了什么。按我们的经验,基本每天都有几个用户在群里问server卡顿,client超时之类的问题,排查问题是常态,人手必然不够。时间长了用户就觉得你这个框架各种问题,人还拽的不行很少回他们消息。brpc的解决办法是给server内加入各种HTTP接口的内置服务,通过这些服务,用户可以很快看到server的延时、错误、连接、跟踪某个RPC、CPU热点、内存分配、锁竞争等信息,用户还可以使用bvar来自定义各类统计信息,并在百度的运维平台NOAH上汇总。这样大部分问题用户可以自助解决。其实我们去看也是看这些,只是会更加专业。内置服务的具体说明可以看这里。
Q:作为公司内部的RPC框架,在服务治理方面有什么考虑?
戈君:百度内部RPC使用非常广泛,基本都是RPC调用,一些产品线还会通过local RPC隔离工程框架和策略代码。这么多年下来,服务周边的系统也比较全面了:编译是BCLOUD,发布是Agile,服务注册和发现是BNS,认证是Giano,监控和运维是NOAH。在百度内部,brpc和这些系统做了比较紧密的绑定,用户体验是一站式的。虽然在开源版本中,这些结合大都删掉了,但用户可以根据自己组织中的基础设施来进行定制:交互协议,名字服务,负载均衡算法都可以定制。对于其中一些特别通用的,我们希望用户反馈到开源版本中来以方便所有人。
Q:之前百度还开源过sofa-pbrpc,brpc与它的区别是什么?
戈君:sofa-pbrpc也是百度开发的一个比较早期的RPC框架,属于sofa编程框架的一部分,在搜索有应用。brpc相比sofa-pbrpc有如下优点:
- 对协议的抽象更一般化,并统一了全百度的通信架构。bprc能容纳非常多的协议,基于Protobuf的,基于HTTP的,百度内的nshead/mcpack,开源的Redis/Memcached,甚至RTMP/FLV/HLS直播协议,brpc能逐渐地嵌入现有系统,而不需要彻底重构,但sofa-pbrpc则不具备扩展协议的能力。类似的,sofa-pbrpc也无法定制负载均衡算法,brpc默认提供round-robin、随机、一致性哈希,Locality-aware(局部性感知)四种算法,用户还能定制。
- 多线程质量更好。多线程编程是非常困难的,看起来简单的RPC遍布多线程陷阱,比如处理超时的代码可能在RPC还没发出去时就运行了;发送函数还没结束,处理回复的回调就被运行了;一个回复还在被处理另一个回复回来了,诸如此类。另外,一个异步RPC的回调里发起一个同步RPC会发生什么,带着锁做同步RPC会发生什么。这些问题我们都不能在sofa-pbrpc中找到满意的答案。
- 完备的调试和运维支持。解决这个问题的本质还在可扩展性,你如何让用户参与进来定制他们感兴趣的指标,为此我们设计了bvar,让用户能用比原子变量代价还小的方式自由地定制各种指标,用户能在浏览器上看到指标的变化曲线,或在运维平台NOAH看到汇总的监控数据。brpc还加入了大量内置服务方便用户调试程序,查看连接,在线修改gflags,追踪RPC,分析CPU热点,内存分配,锁竞争等一应俱全。
无需讳言,brpc在诞生之初和sofa-pbrpc在百度内部是有竞争关系的,但就像其他地方一样,这种竞争带来了活力。类似的,brpc和其他已经开源的RPC框架也是良性的竞争关系,在比拼谁能真正提高用户效率的过程中共同进步。每个用户都可以去对比代码、文档质量,接口设计,易用程度,扩展能力等,投出自己的一票。
Q:谈谈brpc的整体架构?
戈君:技术栈无外乎是从传输层垒到应用层,就略过不讲了,具体可以去看下开源出来的文档。brpc在架构上强调“在不牺牲易用性的前提下增强可扩展性”,比如brpc支持非常多的协议,在百度内部一个brpc server同端口可以支持二十几种协议,这对于服务的平滑迁移就非常好用。
Client端的协议也非常多,用户用brpc和bthread用得很爽,所以希望我们最好能统一所有的客户端,像对Redis和Memcached的客户端支持也是在这个背景下做的,这两个客户端比官方Client好用多了,感兴趣的读者可以去尝试一下。但这么多协议的配置非常简单,填个字符串就行了,比如HTTP就是把ChannelOptions.protocol设为“http”,Redis就是“redis”。Server端甚至不用设,它会自动判断每个client的协议,怎么做到的开源文档里也有。
名字服务、负载均衡也都可以定制。但为了对用户负责,我们也不鼓励“太自由”的定制,比如一点点需求的变化就要搞个新的,这时更需要想清楚本质区别是什么。这个事情我们在百度内的支持群里每天都在做,我们是开放的”乙方”,但我们也是严厉的”乙方”。
Q:brpc的性能如何?这么高的性能是怎么做到的?
戈君:性能是我们非常看中的一点,它和用户体验也是紧密联系的。好用但性能不行,或不好用但性能很牛,用户会很难受,我们不希望用户纠结。从另一个角度来看,在推广初期,我们要说服产品线用brpc靠什么?最直观的就是性能提升。而且这儿的性能不能停留在benchmark的图片上,而是能在真实应用中体现出来。开放出来的案例文档中或多或少都包含了性能提升,具体如下:
- 百度地图API入口
- 联盟DSP
- ELF学习框架
- 云平台代理服务
Q:为什么要将brpc开源?接下来在开源项目的迭代方面有什么计划吗?
戈君:因为马上还有不少依赖RPC的百度系统要开源啊。RPC作为最基础的组件,开源不仅仅是为了自身,也是为其它开源项目铺路,比如说我们马上还会开源基于brpc的RAFT库,搭建高可用分布式系统非常方便;以及使用brpc的bigflow,让流式计算变得很顺手。这些年百度对开源的认识也在不断加深,开源看似曝光了百度的核心技术,但带来的生态影响力更重要。从Apollo、PaddlePaddle开始,百度真的开始拥抱开源了。brpc的开源版和内部版很接近,只是去掉了对百度内部独有的一些基础设施的支持,我们在内网写的深入分析RPC技术细节的文档也都一并开源了,后续也会及时推送改动,请大家放心。这是一个活项目,不会拉个开源分支就不管了。
查看更多资讯>>>