未找到

未发布 条形码控件Dynamsoft Barcode Reader v5.1发布,新增JavaScript版本
by Harriet666 keys 分享 1497254762139
Dynamsoft Barcode Reader SDK一款多功能的条码读取控件,只需要几行代码就可以将条码读取功能嵌入到Web或桌面应用程序,能支持多种图像文件格式以及从摄像机或扫描仪获取的DIB格式。
 
Dynamsoft Barcode Reader 5.1最新版点击下载>>>
 
v5.1更新内容(此次更新仅适用于Windows和JavaScript版本)

新增:

  • 添加了JavaScript版本,支持在客户端的JavaScript中读取条形码。它曾经作为我们基于浏览器的文档扫描SDK - Dynamic Web TWAIN的附件。它现在是一个单独的版本,能够在你的应用程序中无缝嵌入条形码读取功能与Dynamic Web TWAIN在线文档扫描和Dynamsoft Camera SDK网络摄像头捕获。

修复:

  • 【Windows版本】修复了当读取1D条形码时使用去模糊算法导致错误结果点的问题。
  • 其他小的修复和调整。

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

1
未发布 跨平台远程框架Remoting SDK发布v9新版本,增加新的Code First服务器等功能
by Harriet666 keys 分享 1493974124538
Remoting SDK原名RemObjects SDK,是一款成功的跨平台远程框架,可通过简单的方法构建分布式应用程序,为应用程序建构与服务器或云端之间的通信。Remoting SDK支持跨平台和移动应用程序开发,支持在C#、 Visual Basic、Oxygene和Swift中的开发,可与Visual Studio和Fire集成,并提供完整的c#源代码。
 
Remoting SDK 9是Remobjects Software公司屡获殊荣的跨平台远程处理框架的新版本,这可能是他们多年来发布的最重要的一次更新。
 
 
点击查看详细的更改日志、功能增强和bug修复的完整列表。

 

Code-First服务器

对Remoting SDK 9最重要的加强是增加了新的Code First服务器。忽略在Service Builder中手动定义服务接口,并保持RODL和代码同步。

只需在代码中定义你的服务,Remoting SDK就完成了。同时支持.NET和Delphi服务器。

点击了解Code-First服务器详情>>>

 

c7cf1614972a47748f328c88cd9a6230ojpg
 

所有新的CodeGen

使用开源CodeGen4框架可以完全修改和简化Remoting SDK客户端存根的代码生成。实际上Remoting SDK-specific codegen logic也是开源的,如有必要,你可以很容易地调整它来满足的需要。

这是Mac和Windows 的rodl2code命令行工具并集成到Fire,Visual Studio,Delphi和Service Builder的补充。

 

 

846905bcec574543a2b0694cbb3e4a04ojpg
 

Mac新的Service Importer app

我们还为Mac创建了一个全新的应用程序,用于连接到远程服务,导入其RODLs并使用CodeGen4为所有语言生成必要的代码存根。开发人员在不使用IDE与专用的Remoting SDK集成的情况下仍然可以轻松连接。

在文档中了解详情>>>

 

 

在Swift中创建构建服务器

Mac和iOS开发人员现在可以在他们的Mac(使用我们免费的Swift编译器和IDE、Fire)上的Swift中创建服务器应用程序,并将它们部署到Linux、Windows和Mac OS X服务器中。

阅读有关Fire的更多信息或浏览Remoting SDK 文档

当然,你也可以在Fire、for Cocoa、Java / Android和.NET中创建客户端应用程序。

 

  

完全支持Swift

Remoting SDK 9使用Xcode或Elements添加了在Swift中编写客户端的功能。支持Swift CodeGen并优化和注释了该库。

 

连接服务器的新工作流程

连接服务器的新工作流程

在所有三个IDE中,使用新的“连接到服务器”菜单选项可以简化将任何客户端应用程序项目连接到服务器的过程。只需将IDE指向你的服务器的URL,你的项目将自动变成一个Remoting SDK客户端,并创建所有必要的引用和代码存根。

新的.remoteRODL文件让你的客户端项目与服务器保持同步,并且一个新的ServerAccess类存根将帮助你开始调用你的服务器。

点击了解详情>>>

 

570d3966ed77495ab0eb3f66d97235a6ojpg
  

改进SSL&TSL

安全通信比以往更重要,Remoting SDK可以让你的服务器通过HTTPS和TLS进行安全通信变得非常容易。无论你使用的是自动生成、自签名还是已购买的证书,现在都可以设置两个属性来实现安全连接。

点击了解详情>>>

 

7ced0f5cc8b64217b447c6e1a05313d9ojpg
 

减少样板代码

我们已经从根本上抽出了很多需要的板卡代码来使一个服务器完全运行起来。

使用RO9,你现在可以使用一行虚拟代码启动一个服务器 - 包括支持运行组合模式(GUI、命令行和后台服务)、设置SSL等。

点击了解详情>>>

 

09f75ee40f72491b940f09f34fd2de4aojpg
 

创建watchOS应用程序

Remoting SDK 9增加了从Apple Watch apps连接到你的服务器的功能,让你的用户可以直接在手腕上访问网络驱动的信息。

 

 

创建tvOS应用程序

同样,你现在可以在你的tvOS apps中使用Remoting SDK客户端功能,将你的数据和服务器内容呈现到大屏幕上。

watchOS和tvOS客户端库都使用与现有的iOS和OS X库相同的代码库,因此在所有四个Apple平台上共享客户端代码非常容易。

 

未发布 矢量图形引擎库VectorDraw Developer Framework更新至v7.7012.1.1,周年8.5折限时特惠!
by Harriet666 keys 分享 1509529066316
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。VectorDraw Developer Framework最新版点击下载>>>
 
慧都十四周年狂欢开启VectorDraw Developer Framework(VDF)8.5折冰点价,限时一个月,错过不再有,马上咨询>>>
 
VectorDraw Developer Framework(VDF)v7.7012.1.1更新内容:

WebJS

新增需求(7.7012.0.1)
  • 70001107 支持vdPolyface对象的3d形状和GradientColors
  • 70001111 获取实体边界框
新增需求(7.7012.0.3)
  • 70001119 支持vdViews
  • 70001128 WebControl中增加了两个样本
新增需求(7.7012.0.5)
  • 70001115 vdViews的新功能
  • 70001133 Esc键取消整个polyline命令
  • 70001160 3d渲染支持更多的截面剪辑
新增需求(7.7012.0.7)
  • 70001171 在所有绘图实体上绘制新的临时实体
  • 70001172 获取复制的实体
新增需求(7.7012.0.9)
  • 70001194 支持标准折线和直角的宽度
 
漏洞(7.7012.0.1)
  • 70001098 vdSelectionModified事件返回不正确的所选项目数
漏洞(7.7012.0.2)
  • 70001118 GetEntitiesFromLayer()方法中的错误
漏洞(7.7012.0.3)
  • 70001123 isCanceled在scriptCommand.select中始终返回true
漏洞(7.7012.0.4)
  • 70001127 MouseRightButton和e鼠标按钮在Web控件中不一致
漏洞(7.7012.0.9)
  • 70001198 3D视图中的鼠标位置不正确
 
通常( 7.7012.0.5)
  • 70001162 WebCad示例已添加到WebControl中
通常( 7.7012.0.7)
  • 70001179 取消动作已被双击删除
 

Converter

新增需求(7.7012.0.5)
  • 70001159 支持DWG 2018格式
 
漏洞(7.7012.0.5)
  • 70001165 错误的文本转换
漏洞(7.7012.0.9)
  • 70001195 特定的.DWG不打开
 

vdDXF

漏洞(7.7012.0.5)
  • 70001147 无法在ACAD中打开DXF
  • 70001150 DefPoint1和LinePosition在保存后交换特定径向尺寸的值
  • 70001152 DXF文件加载并保存的问题
 

Engine

新增需求(7.7012.0.1)
  • 70001096 无法选择带有窗口选择的面
  • 70001105 提升GradientColors
  • 70001106 cmdMultiline中的自我复制
新增需求(7.7012.0.4)
  • 70001144 ZoomPrevous和鼠标放大
新增需求(7.7012.0.5)
  • 70001155 启用opengl反斜杠的细线
  • 70001157 以2D线模式应用部分剪辑
新增需求(7.7012.0.7)
  • 70001176 MText改进
  • 70001185 禁用默认屏幕显示的新方法
新增需求(7.7012.0.8)
  • 70001189 相对于最后一个折线段的PolarTrack
新增需求(7.7012.0.9)
  • 70001192 使用形状编号获取SHX中形状的ShapeName
 
漏洞(7.7012.0.1)
  • 70001102 编辑文本时的EditText问题
  • 70001109 如果在没有GetGripSelection方法的情况下添加选择,则不会引发GripModified事件
  • 70001110 Mtext未正确呈现
  • 70001113 3D模式中的文本线型显示错误
漏洞(7.7012.0.2)
  • 70001114 手柄选择未正确更新,并且屏幕上仍然显示
  • 70001116 UpdatePropertiesFromPrinter丢失纸张信息
  • 70001117 实用程序GetLineTypeDlg的Wrapper不会返回正确的行类型
漏洞(7.7012.0.3)
  • 70001125 删除特定折线中的RemoveInLinePoints
  • 70001126 3DPolyline未正确导入
  • 70001137 在WPF数字键控中的控制功能可以使5位数字达到9位
  • 70001140 3D pollyine在DXF 12中无法正确保存
  • 70001141 将特定的Poly Hatches保存到DXF会导致生成无效的DXF
漏洞(7.7012.0.4)
  • 70001131 文件没有使用ocx打开
  • 70001142 线型打印出现错误的刻度
  • 70001145 vdInsert的BoundinBox不正确
漏洞(7.7012.0.5)
  • 70001151 MText对象不符合BoxWidth
  • 70001154 ActiveTextHorJustify文本命令的问题
  • 70001158 当在ATI卡中使用OpenGL设置EdgeColor时,不正确的行将被渲染
  • 70001161 vdInsert与AligneToView未正确选择
漏洞(7.7012.0.6)
  • 70001166 CmdSketch忽略MouseElevation属性
  • 70001167当活动图层冻结时,CmdDimStyleDialog预览为空
漏洞(7.7012.0.7)
  • 70001170 vdSelection选择所有的问题
  • 70001173 VDF ActiveX 64位指针问题
  • 70001175 dwg未以vds格式正确导出
  • 70001181 Mtext命令无法正常使用特定文本
  • 70001184 忽略MaxBmpMemorySize for x86应用程序
漏洞(7.7012.0.8)
  • 70001187 EMF文件在不同分辨率的PC上加载不同的绘图大小
  • 70001188 PolarTrackAngle与SnapAngle不相关
漏洞(7.7012.0.9)
  • 70001196 图像透明度在wire2dGdiPlus模式下不起作用
  • 70001199 具有自定义对象xproperties的DXF未正确保存
2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 矢量图像处理控件CAD EditorX 发布v12,支持导出到G-code
by Harriet666 keys 分享 1497342935340
CADEditorX是一个ActiveX控件,在众多的环境中,如 .NET、HTML / JavaScript、VC++、Delphi、Java等等,它能查看、编辑、转换、测量和打印DWG和其他CAD文件以及3D模型和光栅图像。CADEditorX提供易用的API和大量的例子方便开发者快速集成。
 
【CADEditorX 12点击下载>>>】
 
CADEditorX 12更新内容
新版本的CADEditorX 12,可在不同的开发环境中使用DWG、DXF、HPGL、STEP和其他2D和3D文件格式。
 
CADEditorX 12的主要特点是支持最新的DWG版本 - AutoCAD®DWG 2018。在你创建基于CADEditorX的应用程序时,它们将能够打开最新的图形。
 
此外,现在CADEditorX支持导出到G-code。如果你为CNC机床开发程序,CADEditorX可以让你的应用程序从DWG和DXF图形中生成G代码。
6d1bc8e20c614de280cb456e063bcbe9ojpg

CADEditorX 12中包含的改进内容列表:
  • 导入AutoCAD®DWG 2018
  • 导出到G-code
你可以下载CADEditorX最新版来测试新功能>>>
未发布 ASP.NET Core 2加入了Razor页面特性
by Harriet666 keys 分享 1504257472829
最近发布的ASP.NET Core 2.0,连同新发布的.NET Core 2和Entity Framework Core 2.0y,一并构成了.NET Core 2.0生态中的三元组。此发布给出了多个新特性和改进,其中包括通用性能的改进、Razor页面、新的开发模板以及更好的Azure Diagnostics支持。

让我们首先看一下Razor页面。Razor页面类似于标准的MVC视图,只是通过使用@Page指令标明自身为Razor页面。Microsoft现在考虑将Razor页面作为ASP.NET Core中构建Web应用UI的推荐方法,当然开发人员也可自由地选择最适合自己的方法。使用Razor页面编写的Web页面,无需经过控制器即可直接处理请求,正如在标准的ASP.NET MVC应用中那样。

转向ASP.NET Core 2平台的另一个好处是简化了对软件包的引用。在项目的.csproj文件中,仅需引用Microsoft.AspNetCore.All。这是一个Meta-package,它在简化了引用问题的同时,确保应用所需的所有库是可用的。而在发布Web应用时,只有应用所需的库才会与应用一并发布,避免了文件膨胀。另一个优点是Meta-package可使应用的启动速度更快,这是因为它使用了.NET Core Runtime Store,其中预编译了所有的软件包和文件。虽然这一Meta-package提供了一种便利的软件包引用方式,但是开发人员依然可以继续在Microsoft.AspNetCore.*中直接引用特定的软件包。

为了支持新的特性,ASP.NET Core 2扩充一些模板,它们来自于Razore页面(模板命名为“Web Application”)、Web API、基于MVC的Web应用、Angular、React.js和React.js& Redux等。所有这些模板也可以通过命令行使用,不必依赖于Visual Studio 2017

在明确声明的情况下,Razor语言引擎提供对C# 7.1特性的支持。为此,需在项目文件中需添加该如下属性:latest。更改将在重新加载解决方案后生效。

规划将应用部署到Azure的开发人员将会看到,ASP.NET Core 2构建的应用不需作任何更改,就可使用Azure App Service。应用的部署可以在VS2017中执行,也可直接在Azure门户上执行。

使用已有ASP.NET Core 1.X软件包的开发人员,要详细了解如何升级应用到ASP.NET Core 2.0,可以参考Microsoft的升级指南。使用ASP.NET 2.0需下载.NET Core 2 SDK,它是独立于visual studio 2017提供的。
未发布 扫描识别工具Dynamic Web TWAIN使用教程:图像操作
by Harriet666 keys 分享 1512460581008
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
 
本文为你介绍Dynamic Web TWAIN中如何进行图像操作,欢迎收藏。

Dynamic Web TWAIN最新版免费下载>>>
 
在Dynamic Web TWAIN中扫描或加载图像时,可以进行图像操作。您可以:
 
1、通过更改属性CurrentImageIndexInBuffer来浏览每个图像
/* Show the 3rd image in the buffer */
DWObject.CurrentImageIndexInBuffer = 2; 
2、通过使用SetViewMode()更改视图模式(除1 * 1或-1 * -1以外)来显示多个图像
/* Show images in buffer with 2 * 2 view */
DWObject.SetViewMode(2, 2);
image018
 
3、旋转,翻转,镜像或裁剪图像等
DWObject.Mirror(0);
DWObject.Flip(1);
DWObject.RotateRight(2);
DWObject.Crop(3,101,243,680,831);
DWObject.RotateLeft(3);
image019
 
另外,您可以通过索引移动/删除图像,也可以一次性移动或删除所有图像。方法是RemoveImage,RemoveAllSelectedImages,RemoveAllImages

未发布 图形图表设计软件Edraw Max更新至v9.1丨8.5折特惠
by Harriet666 keys 分享 1520925391498
Edraw Max(亿图图示)是一款综合图形图表制作软件,它包含丰富的实例和模版,帮助您轻松创建流程图、网络拓扑图、组织结构图、商业图表、工程图,思维导图、软件设计图和平面布局图等。亿图采用更智能和人性化的绘制方式,包括丰富的图形模板库和特色实例库,最大程度帮助设计者降低工作量,更快捷阐述设计思想,提升创作灵感。
 
目前Edraw Max(亿图图示)在线订购享85折优惠正在进行中,欢迎您下载试用版进行运用!
 
 
 
v9.1更新内容:
  • 添加了平移/手形工具,只需按住鼠标右键即可自由平移画布。
  • 添加插入QR码的功能。
  • 新增屏幕捕捉功能。捕捉的图像可以立即插入到您的绘图中。
  • 增加了设置默认字体的功能。您可以在选项菜单中选择“使用默认字体而不是主题字体”。
  • 改进了PDF和Word导出的效果,解决了文本错位的问题。
  • 增加了语言更改功能。现在您可以直接从选项菜单更改UI语言。
  • 添加并改进了更多的线框符号库,包括网站线框元素、线框图标、iOS图标和Andriod线框图标。添加了更多的线框模板。
  • 添加Genogram符号和模板。
  • 为K-12教育添加了大量的科学示例和模板。
  • 为物联网、智能家居、大数据、人工智能等添加了剪贴画。

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

315


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

未发布 超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
by Harriet666 keys 分享 1519722650099
VintaSoftImaging.NET SDK是一个为.NET开发人员开发的,强大而易于使用的图像工具包。它可以让你加载、查看、处理、打印和保存数字图像,可将它们转换为不同的图像格式,可用多种TIFF和动态GIF文件提高您的工作效率。目前VintaSoftImaging.NET SDK在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
 
Version 8.6更新内容
在WinForms中查看图像:
  • 新增了多页查看模式以在图像查看器中显示图像:
    · 支持以下预定义的图像显示模式:单列、单列连续列、两列、两列连续列、三列、三列连续列。
    · 支持指定用户定义的图像显示模式功能。
  • 为以下可视化工具添加了以多页面视图模式工作的功能:
    · ZoomTool
    · ZoomSelectionTool
    · MagnifierTool
    · ImageMapTool
    · RectangularSelectionTool
    · OverlayImageTool
    · MultiRectangularSelectionTool
    · CustomSelectionTool
  • 可视化工具放大镜:
    · 增加了处理放大镜显示图像的功能。
    · 增加了为放大镜使用椭圆轮廓的功能。
  • 增加了辅助类,允许存储和管理可视化工具(InteractionAreaAppearanceManager类)的交互区域设置。
在WPF中查看图像:
  • 添加了多页查看模式以在图像查看器中显示图像:
    · 支持以下预定义的图像显示模式:单列、单列连续列、两列、两列连续列、三列、三列连续列。
    · 支持指定用户定义的图像显示模式功能。
  • 为以下可视化工具添加了以多页面视图模式工作的功能:
    · ZoomTool
    · ZoomSelectionTool
    · MagnifierTool
    · ImageMapTool
    · RectangularSelectionTool
    · OverlayImageTool
    · MultiRectangularSelectionTool
    · CustomSelectionTool
  • 现在可视化工具Zoom和Pan可以与触摸屏一起使用。
  • 可视化工具放大镜:
    · 增加了处理放大镜显示图像的功能。
    · 增加了为放大镜使用椭圆轮廓的功能。
  • 增加了辅助类,允许存储和管理可视工具(WpfInteractionAreaAppearanceManager类)的交互区域设置。
  • 修复了可视化工具WpfCompositeVisualTool中的一些非关键性错误。
Web图像查看器:
  • 提高了HTML5和SVG图像查看器的性能。
  • 优化HTML5和SVG图像查看器中的动画显示功能。
数据存储:
  • 创建数据存储:CompositeDataStorage,StreamDataStorageOnDisk,CloneableObjectStorageInMemory,CompressedImageStorageInMemory,CompressedImageStorageOnDisk。
  • 改进了数据存储的体系结构。
  • 增加了在数据存储中缓存图像的功能。
用于图像处理的Web服务:
  • 重构Web服务的体系结构。
  • 增加了在缓存管理器中使用数据存储的功能。
  • 现在可以从服务器下载图像文件作为二进制流。
编解码器:
  • 修复了GIF编解码器中的一些错误。
  • 修复了TIFF编解码器中的一些错误。
演示应用程序:
  • 演示ASP.NET WebForms和ASP.NET MVC的应用程序:
    · 增加了本地化演示应用程序界面的功能(使用l20n库)。演示应用程序的界面已经本地化为英语和俄语。
    · 增加了以二进制流的形式从服务器下载图像文件的功能。
    · 增加了在显示图像和PDF文档时使用色彩管理的功能。
    · 演示应用程序的代码已被重构。
  • 演示ASP.NET MVC的应用程序:
    · 增加了显示视频流并从HTML5网络摄像头捕获图像的功能。
  • 为WinForms和WPF创建了以下迷你演示应用程序:
    · “文档查看器”迷你演示应用程序。
    · “加载、查看和保存图像”迷你演示应用程序。
    · “注释图像”迷你演示应用程序。
    · “缩略图查看器定制”迷你演示应用程序。
    · “缩略图查看器拖放”小型演示应用程序。
    · “图像处理”迷你演示应用程序。
未发布 VintaSoft PDF插件VintaSoftPDF.NET Plug-in更新至v5.6,新增多页查看模式
by Harriet666 keys 分享 1520241862267
VintaSoftPDF.NET Plug-in是一个完全的.NET组件,可用于查看,创建以及编辑PDF文档。该程序库还可用于显示,渲染,创建,转化,注释,打印,保存,修改和编辑PDF文档页面。
 

在WinForms或WPF查看器中显示PDF文档:
  • 当查看器以多页查看模式工作时,增加了同时注释多个PDF页面的功能。
  • 当查看器以多页查看模式工作时,增加了同时填写多个PDF页面交互式字段的功能。
在HTML5或SVG查看器中显示PDF文档:
  • 增加了新的可视化工具 - WebPdfImageExtractorToolJS,可以从PDF页面选择和提取图像。
  • 增加了新的可视化工具 - WebPdfTextSelectionToolJS,可以从PDF页面搜索、突出显示和提取文本。
在WinForms和WPF图像查看器中编辑PDF内容:
  • 以多页面查看模式工作时,增加了同时编辑多个PDF页面交互字段的功能。
  • 以多页面查看模式工作时,增加了同时删除多个PDF页面内容的功能。
  • 以多页面查看模式工作时,增加了同时编辑多个PDF页面内容的功能。
  • 以多页面查看模式工作时,增加了将PDF注释和交互式字段从一个页面移动到另一个页面的功能。
  • 增加了新的可视化工具 - PdfContentXObjectTool,它允许从PDF页面查找、突出显示和删除表单或图像。
PDF文档的验证和转换:
  • 将PDF文档转换为PDF/A格式:
    · 增加了转换包含透明度文档的功能。
    · 增加了将TrueType字体转换为CFF字体的功能。
    · 增加了查看文档中修改列表(ConversionProfileResult类的AppliedCommands属性)的功能。
  • 改进PDF/A转换器。
  • 改进PDF/A验证程序。
  • 修复PDF/A转换器中的一些错误。
使用PDF文档:
  • 创建Web API 2控制器以使用PDF文档(VintasoftPdfApi2Controller类)。
  • 创建Web API控制器以使用PDF文档(VintasoftPdfApiController类)。
  • 创建HTTP处理程序以使用PDF文档(VintasoftPdfHandler类)。
  • 创建WCF服务以使用PDF文档(VintasoftPdfWcfService类)。
优化PDF文档:
  • 增加了删除PDF文档中未使用的资源(PdfDocument.RemoveUnusedNamedResources)的功能。
  • 增加了删除PDF页面的未使用资源(PdfPage.RemoveUnusedNamedResources)的功能。
  • 添加了删除PDF表单中未使用的资源(PdfFormXObjectResource.RemoveUnusedNamedResources)的功能。
  • 优化PDF文档的打包算法。
PDF文档中的文本搜索和文本提取:
  • 增加了提取PDF页面的格式化文本的功能。提取的文本可以按段落格式化。架构是开放的,并允许使用自定义文本格式算法。
在PDF页面、XObject表单或注释中绘制:
  • 改进了PdfGraphics.DrawString()方法中的换行算法。现在,即使单词中没有空白,算法也会进行优化。
使用PDF文档的字体:
  • 可以判断是否可以使用指定字体对指定文本进行编码的功能。
  • 改进了字体的解析器。
编辑PDF内容:
  • 改进了裁剪PDF页面内容的算法(PdfPage.Crop)。
  • 改进了裁剪PDF表单内容的算法(PdfFormXObject.Crop)。
与PDF文档的可视化交互:
  • 改进了JavaScript注释器。
 
完整更新内容点击查看>>>

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

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

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

OnceOA