未找到

未发布 Edraw Max(亿图图示)新手福音:教你思维导图的简单画法!
by Harriet666 keys 分享 1499408993146
思维导图,也就是心智图或者脑图,是近年来十分流行的一种有效地思维管理方法。Edraw Max(亿图图示)作为国内仅有的一款综合类型的图形图表设计软件,除了强大的绘图功能,还有丰富的模板和例子,在绘制思维导图方面也十分的简单、快捷,画出来的图表也更专业、时尚!本文总结了Edraw Max(亿图图示)几点基本的绘图方法、步骤,希望能帮助你更轻松、高效地画出你心中的思维导图!目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
Edraw Max(亿图图示)V8.7中文版点击下载>>>
 

第一步:快速创建思维导图

1、打开亿图思维导图软件,点击新建中的“思维导图”;
2、选择从“模板”或者“例子”中新建,双击即可直接进入;
3、在思维导图的编辑界面你会发现自动为你打开了相对应的库和思维导图菜单栏。
 

第二步:添加主题

方法1:通过用浮动按钮添加:点击浮动按钮右侧功能键进行添加,如下图所示:

 
方法2: 从符号库中添加:
1、软件界面左侧的符号库中有内置的图形符号,根据需求选择相对应的图形,直接拖拽至绘图界面即可;
2、只要该图形拖拽至需要吸附的主题附近,然后松开鼠标就会自动吸附了。
 

第三步:通过“思维导图”菜单栏进行编辑

1、插入主题或者副主题:选中需要添加主题或者副主题的图形,点击“插入主题”或者“副主题”即可。

 
2、插入多个主题:选中需要插入的图形,点击“添加多个主题”,然后在弹出的文本框中输入需要添加的主题名称,一行代表一个主题,如下图所示:

 
3、插入关系:
方法1:点击“插入关系”后,将鼠标移动至绘图界面,当鼠标靠近主题或者副主题附近时,会出现许多的连接点,只要将鼠标移动至需要添加的连接点上,就会出现红色的标识,如下图
所示,然后点击鼠标左键并移动至下一个连接点,再放开鼠标即可。
方法2:通过软件界面左侧“符号库”中的“关系”同样也可以添加关系,将其直接拖拽至绘图界面,然后调整箭头的两个链接点即可。
PS:连接线上一般有两个黄色的菱形符号,拖动它可以对线条的弧度、方向等进行调整。
 
4、插入图形、照片
方法1:从符号库中添加:点击符号库中小图标,根据预览的图片选择需要的符号库,然后拖拽至绘图界面或者双击都可以。当拖动到思维导图旁,出现一个橙色的框显示时,该符号就已
黏附到导图中了。
 
方法2:在打开所需要的符号库后,点击“思维导图”菜单栏下的“从库中插入图形”,然后在下拉框中点击相应图形,即可插入至思维导图主题中。此方法插入的图形与主题是依附在一起的,移动主题时,图形也一起在移动。
 
方法3:通过“插入图片”添加,点击“思维导图”菜单下的“插入图片”,即会弹跳出选择图片的窗口,然后在电脑文件中选择相应图片,点击打开即可添加至导图的标题中。此方法可以对插入图片的位置进行调整。
 
5、对主题进行编号:点击思维导图菜单的编号按钮,即可给整个导图添加编号,再点击一次则取消编号。
6、修改思维导图主题:此功能可以快速的调整整个思维导图的样式,其中包含线条、外框、填充、字体、颜色以及形状属性等等。
 

第四步:调整思维导图的布局

Edraw Max(亿图图示)提供了七种布局样式,可以一键自动将思维导图进行布局整理,让整个思维导图结构更清晰、明了!
 

第五步:保存、导出以及打印

1、保存:可直接保存到本地、个人云盘或者团队云。

 
2、导出:亿图软件支持导出为各种格式的文件,其中包括图片、PS、PDF、Office、HTML、Visio、SVG。

 
3、打印:亿图软件作为一款纯矢量的绘图软件,在打印时,无论将图表放大多少倍,依旧打印十分清晰。同时如果需要多页打印,还可以对打印页面进行统一设置,让打印更方便、快捷!
未发布 Edraw Max(亿图图示)新技能:在软件上进行反激活
by Harriet666 keys 分享 1499240850460
Edraw Max(亿图图示)8.7以上的版本,新增了“反激活”功能,也就意味这用户以后可以自主进行反激活。Edraw Max(亿图图示)一个产品秘钥支持两台电脑同时使用,如果超过两台电脑,则需要清除其中一台电脑的绑定,也就是反激活操作。又或者因为某些原因导致电脑需要重装系统,那么,你也需要进行反激活。否则,就会出现产品秘钥失效的情况。
 
本文将详细介绍Edraw Max(亿图图示)8.7以上版本在软件上应该如何进行反激活操作!目前Edraw Max(亿图图示)在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
首先,请确定软件是8.7及其以上版本,软件版本查看如下图所示:
 
如果软件版本未达到8.7以上,请先进行软件更新。Edraw Max(亿图图示)8.7最新中文版点击下载>>>
 
如果已经是8.7以上版本的,就可以通过软件一键“反激活”按钮,来进行反激活操作了。
 
第一步:点击软件上方菜单栏“帮助”中的“反激活”,然后系统会弹出一个提示框,确认信息后点击“反激活”。
第二步:当提示反激活成功后,软件会自动关闭。
第三步:再次打开软件,软件就显示为试用版本的了。
接下来你就可以任意的换电脑,重装系统了。当这一切都准备完毕,软件也重新下载、安装好了,最后只需要按照一般的激活方法,使用原来的产品密钥激活软件就可以了!
总而言之,如果你要换电脑了,请提前进行反激活;如果你的电脑需要重装系统,也请提前反激活。
 
Edraw Max(亿图图示)8.7最新版下载地址:https://www.evget.com/product/2064/download
 
温馨提示:首次反激活即刻生效,以后再进行反激活则需30天的冷却期。
未发布 【更新】Windows网络守门人UserLock更新至v9.6,可通过Webhooks获取实时登录通知
by Harriet666 keys 分享 1511253721769
UserLock是您的Windows网络守门人,它可以轻松实现有效的Windows和Active Directory网络用户访问控制策略,并严格执行。
 
UserLock v9.6更新内容:

通过Webhooks获取实时登录通知

UserLock客户现在可以配置自己的webhook URL(支持HTTPS和HTTP)并订阅所有会话访问事件。
 
Webhooks可以将更新直接推送到其他应用程序,创造了新的自动化可能性。它允许将实时登录通知集成到其他应用程序或平台中,并且可以基于特定访问事件创建自定义工作流程。
 
每个用户连接事件和登录尝试都将被发送到webhook URL,以及与该事件相关的所有用户和机器详细信息(IP地址、会话类型、时间等)。
 
webhooks和UserLock API有很多方法将UserLock的数据带入到其他应用程序中。
  • 将粒度化登录数据输入到您的SIEM解决方案中,进行更精确的分析。
  • 将粒度化的登录数据输入到考勤系统中,准确记录员工的工作时间和加班时间。
  • 触发实时进程,例如在可疑登录事件之后阻止Active Directory中的用户。
  • 将粒度登录数据与物理访问控制系统集成,以更好地控制员工进入。
     

支持Windows Server 2016

  • UserLock 9.6与Windows Server 2016完全兼容。
 

改进的代理分发数据

“代理分发”数据现在通过多线程机制进行更新。在许多受保护计算机的环境中,数据更新得更快。
 
具体更新内容:

新增

  • 关机和重新启动操作现在可用于Mac电脑。
  • 与Windows Server 2016完全兼容。
  • 会话事件可以通知给webhook。通过在UserLock中配置Webhook URL(支持HTTPS和HTTP),包含会话事件的JSON通知将被通知给该webhook。

改进

  • 只有在主服务器不可用时,才从UserLock备份服务器发送Webhook通知。
  • “代理分发”数据现在通过多线程机制进行更新。
  • 新的“AddUserDataInUserSessionsIfEffRestReq”高级设置可以自动在“用户会话”视图中添加用户帐户数据。

试用、下载、了解更多产品信息请点击"咨询在线客服"  

未发布 GIS软件开发工具包TatukGIS Developer Kernel v11.8发布,改进DWG阅读器
by Harriet666 keys 分享 1507606466738
GIS定制开发首选控件,帮您轻松搞定高效、优质、实惠的GIS解决方案

TatukGIS Developer Kernel(DK)是一个用于开发自定义地理信息系统(GIS)应用程序以及解决方案的综合性软件开发工具包(SDK)。众所周知,构建一个庞大的地理信息系统需要花费大量的金钱和人力,而TatukGIS却是同类产品中性价比最高的控件,TatukGIS Developer Kernel DK因其功能强大,价格适中,已被超过 50个国家的个人、公司、以及政府等客户用来实现其地理信息系统解决方案。根据不同地首选开发环境,本产品分别以五个独立产品的形式提供(即VCL、.NET/WPF、ActiveX、Compact Framework和ASP.NET),各个产品使用相同的框架、应用程序编程接口(API)技术。
 
 
TatukGIS Developer Kernel v11.8更新内容
这个版本大大改进了DWG支持和新的可视域分析。
 
更新内容:
  • 改进DWG阅读器。DK-8319
  • 实现可视域分析。 DK-9643
  • .ttkstyle格式改变。请参阅当前规范:TGIS_ConfigXml类。DK-9686
  • AsText格式的广泛文档(参见:Param AsText语法)。DK-9681
  • 形状参数内存占用减少(对CAD层有重要意义)。 DK-9658
  • 文档中发布的所有示例源代码。
  • MouseWheel事件处理不一致。 DK-9654
  • 重新设计缩放示例以更好地说明鼠标滚轮的操作。 DK-9101
  • 重新设计ShapeOperations示例,以更好地说明使用最顶层(跟踪)图层进行地图快速更新。 DK-9653
  • 所有支持平台上的形状版本相同。 DK-9125
  • 改进了Pixel.TransprentZones与旧的.TTKGP和.INI文件的兼容性。 DK-9644
  • 改进了TIFF处理。DK-9647
  • 小的错误修复和改进。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月30日

未发布 2D/3D文档查看器ABViewer发布v12,大大提高PDF转DWG的速度丨附下载
by Harriet666 keys 分享 1497596728894
ABViewer是一款高质量的2D/3D文档查看器,可提供专业的浏览、编辑和转换功能,支持30多种光栅和矢量图形格式,其中包括AutoCAD DWG, DXF, DWF, Hewlett-Packard HPGL, PLT, HGL, CGM, SVG, IGES/IGS, STEP/STP, STL, 3DS, TIFF, BMP, JPG, GIF等。

【ABViewer 12最新版下载>>>】
ABViewer 12支持AutoCAD®DWG 2018、PDF转DWG速度更快、DWG/DXF转G-code。
ABViewer始终与时俱进,CAD应用程序的新版本ABViewer 12主要用于DWG/DXF和其他2D和3D CAD格式,以及三个主要亮点。

导入AutoCAD®DWG 2018

无论你是在CAD行业工作还是偶尔接收CAD图纸,ABViewer 12始终能够打开所有版本的DWG文件。支持导入最新版本的绘图文件格式 - AutoCAD®DWG 2018。
9e98f9609cea49b4bd3dc4882b979993ojpg

提高PDF转DWG的速度

ABViewer 12中PDF到DWG转换速度大大加快。以前,转换大文件需要很多时间,现在你无需浪费这些时间了。一些文件的转换就在眨眼之间!
bacee89af4214eab84cf49d63cd79b65ojpg

DWG/DXF转换为G-code

许多使用数控机床的人需要从CAD文件中生成G-code。新版本的ABViewer可以实现这个目标。
你可以使用ABViewer创建铣削和切割数控机床的G代码。只需加载你的DWG或DXF文件,调整设置,ABViewer将从你的图纸中生成G-code并将其保存为NC文件格式。
0cb278f4c3bc41e19013d58abc678f9bojpg
 
未发布 图表解决方案Nevron Chart for .NET发布v2017.1,支持Visual Studio 2017
by Harriet666 keys 分享 1508233222079

Nevron Chart for .NET是一款业界领先的ASP.NET和Windows应用程序开发图表解决方案。该组件的设计从根本上满足您的绘图需求并将他们包装到一个良好的思想和一致的编程模型。不管您是否需要创建商业,科学,财经或演示图表应用程序,甚至是功能齐全,综合的商业智能解决方案, Nevron Chart将为您的Winforms和ASP.NET项目提供最终的数据可视化。

Nevron Chart for .NET v2017.1最新版下载
 
Nevron Vision for NET v20171

2017.1新版本在Nevron Chart for .NET中引入了很多新功能,以扩展最先进的.NET图表组件的数据可视化功能。

以下是2017.1版本引入的新功能的总结:


三元点系列

三元点系列显示三角坐标系中的点。 每个点由其总和为常数的A、B和C值指定。
Nevron Vision for NET

Nevron Vision for NET

三元气泡系列

三元气泡系列在三元坐标系中显示气泡。 每个气泡由其A、B和C值指定,其总和为常数,并且还具有确定其大小的第四个参数。

点系列

Point系列现在支持下拉线。 下降线是从点X,Y,Z值延伸到图表壁的线。 可选择的下拉线可以延伸到轴Min,Max值或用户指定的值(drop lines origin)。
Nevron Vision for NET

Nevron Vision for NET

柱形连接线

Bar系列现在支持相邻条之间的连接线。

浮子条连接器线和甘特连接器线

Float Bar系列现在支持相邻条之间的连接线开始/结束值。 此外,它还支持甘特连接器之间的条形结束值和一个或多个条形开始值。 此功能允许您轻松显示甘特图。
Nevron Vision for NET

Nevron Vision for NET

热图轮廓标签

热图系列支持注释轮廓。 用户可以指定轮廓值(高程)的格式。 沿着轮廓的标签之间的距离,标签方向是否必须遵循轮廓斜率,标签是否应剪切其注释的轮廓线等。

热图横断面

热图系列可以生成形成轮廓横截面的点列表,该列是通过将热图与由位于地图上的两个点定义的平面交叉定义的。
Nevron Vision for NET

Nevron Vision for NET

网格水平和垂直横截面

网格表面支持通过将表面与水平面或任意垂直横截面相交产生的网格表面轮廓(横截面)的提取。

步行交点

步行系列支持任意X或Y值的交集。
Nevron Vision for NET

Nevron Vision for NET

注释拖动工具

注释拖动工具允许用户交互式拖动附加到不同图表锚点(数据点、比例坐标、图例项等)的注释。

范围选择拖动工具

范围选择拖动工具允许用户交互地拖动并调整范围选择对象的大小。
Nevron Vision for NET

Nevron Vision for NET

音量选择工具

此工具允许您交互地选择由四个平面(左、上、右和下)定义的3D体积,稍后可用于快速检查3D点是否包含在选择平面所包围的体积中。

面板缩放工具

该工具允许您以交互方式放大或缩小面板区域。
Nevron Vision for NET

更好的WPF集成

Nevron Chart for WFP现在有更好的WFP集成。 控件也为WFP提供了许多新例子。

各种稳定性和性能改进

新版本功能修复了所有报告的问题,以及控件中的许多小型性能改进。

支持Visual Studio 2017

Nevron Vision for .NET现在提供对Visual Studio 2017的全面支持!

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月31日

未发布 AutoVue使用教程:如何在64位Linux上安装AutoVue
by Harriet666 keys 分享 1490258040212
很多用户在Linux 64位上使用AutoVue时会出现安装方面的问题。在Linux 64位上安装AutoVue(这是一个32位应用程序)可能很棘手,因为AutoVue将要求某些库是32位的而不是64位。在许多情况下,服务器会将由于缺少32位库的相关问题记录下来。AutoVue需要这些库:32位(libGLU,libGL,libz,libbz2,libXt,libXp,libXtst和libXrender)。
【AutoVue系列产品包含:AutoVue 3D Professional AdvancedAutoVue Electro-Mechanical ProfessionalAutoVue EDAAutoVue OfficeAutoVue 2D Professional
 
你可以通过使用locate命令来检查特定库丢失的是32位还是64位。例如,找到libGL应该返回:
/usr/lib/libGL.so 
/usr/lib/libGL.so.1 
/usr/lib/libGL.so.1.2 
/usr/lib/libGLU.so 
/usr/lib/libGLU.so.1 
/ usr / lib /libGLU.so.1.3.060501 
 
libGL的位置如下:
/usr/lib64/libGL.so.1
这将表明你已安装64位库,AutoVue还需要32位库。 
 
【本文作者慧都Elyn,转载注明出处】
未发布 LEADTOOLS v19更新发布文档和医疗功能,增加Visual Studio 2017兼容性!
by Harriet666 keys 分享 1490165179812

LEAD Technologies发布了LEADTOOLS v19 SDK的重大更新,本次更新侧重于文档和医疗功能,其中一些功能在商业SDK市场中是前所未有的。包括第一个完整的商业Hanging Protocol SDK解决方案、大图像(以TB为单位)支持、文档格式支持以及更新各种识别技术,包含OCR、表单、OMR、条码、信用卡读卡器和Visual Studio 2017的兼容性。

LEADTOOLS v19 (Windows、Linux、IOS/macOS、Android)下载>>>

LEAD Technologies总裁Rich Little表示:“这次更新是LEAD继续加强LEADTOOLS以解决现实问题的一个很好的例子。我们非常高兴能够拥有第一个商业医疗查看器SDK,包括完整的DICOM Hanging Protocol、优化的大图像加载和一个新的超快速表单识别算法。26年前我和Moe创建LEAD时,我们从来没有想过可以加载1TB的图像。”

以下是一些主要更新内容:
  • 第一个商业性DICOM Hanging Protocol SDK
  • HTML5 Zero-footprint 医疗Web浏览器 - 新的功能和增强
  • DICOM存储服务器 - 新功能
  • 更高效地处理DICOM Pixel数据
  • SDK识别技术 - 增强对OCR、表单 & OMR以及新的复合条形码的识别
  • 文档查看器 - 新的功能和增强
  • 文档格式 - 功能增强
  • 信用卡读卡器SDK - 支持更多平台
另外,本次更新后LEADTOOLS v19可以与Visual Studio 2017实现兼容!
点击查看具体功能更新日志>>>
未发布 多功能文件格式转换器VectorDraw File Converter v7.7011.0.1发布
by Harriet666 keys 分享 1490843010437

VectorDraw File Converter是一个终端应用程序,使得用户能将常用的图像文件(DWG,DGN和DXF)转换为VectorDraw格式标准(VDF,VDI),反之亦然。该工具能将上述文件导出为SVG与DWF格式。VectorDraw File Converter还能进行多种文件的转换(比如*.dwg 到 *.vdf或者 *.dxf,反之亦然)。

VectorDraw File Converter更新至v7.7011.0.1,新版本针对提出的需求和bug做了调整和优化。

VectorDraw File Converter点击下载试用>>>

未发布 百度正式开源其RPC框架brpc
by Harriet666 keys 分享 1506650334597
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技术细节的文档也都一并开源了,后续也会及时推送改动,请大家放心。这是一个活项目,不会拉个开源分支就不管了。
查看更多资讯>>>


 近期热门 - 点击最多
  1. ZOT 极简而强大的 Docker OCI 镜像仓库
  2. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Node.js 打印vite react+go项目目录树
  5. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  6. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  7. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

  全端社区 - 最新回复
  1. ZOT 极简而强大的 Docker OCI 镜像仓库
  2. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  3. 在无管理员权限的情况下,使用安装Python补全pip临时配置环境变量;即零权限使用node.js/npm
  4. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中
  5. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  6. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  7. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  8. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  9. Node.js 打印vite react+go项目目录树
  10. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA