首页 文章 精选 留言 我的

精选列表

搜索[代码测试工具],共10000篇文章
优秀的个人博客,低调大师

Istio 1.5.5 发布,大型微服务系统管理工具

Istio 1.5.5 发布了。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 此版本是安全更新版本,修复了一项安全漏洞,更新内容如下: ISTIO-SECURITY-2020-006处理参数过多的 HTTP/2 SETTINGS 帧时 CPU 使用率过高,有可能导致拒绝服务。 CVE-2020-11080:通过发送特制的数据包,攻击者可能导致 CPU 尖峰达到 100%。它可以发送到入口网关或 sidecar。 更新说明:https://istio.io/latest/news/releases/1.5.x/announcing-1.5.5/

优秀的个人博客,低调大师

Istio 1.6.1 发布,大型微服务系统管理工具

Istio 1.6.1 发布了。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 此版本包含一些错误修复程序: 修复了对 pod 注释的支持,以覆盖网格范围的代理设置 更新了 EnvoyFilter 以注册所有过滤器类型,支持 typed_config 属性 修复了网关的自定义资源名称的处理 修复了 istiod 无法将证书颁发给远程集群的问题。 Istiod 现在支持集群名称和证书以生成 jectionURL 修复了远程集群的验证控制器,以检查 isidod 的就绪状态端点 改进了正则表达式字段验证以匹配 Envoy 的验证 修复了 istioctl 分析以验证 network.istio.io/v1beta1 资源 修复 ControlZ 仪表板日志中的 istio 错字 修复tar 名称到目录的转换 …… 更多详情见更新说明:https://istio.io/news/releases/1.6.x/announcing-1.6.1/

优秀的个人博客,低调大师

Istio 1.5.4 发布,大型微服务系统管理工具

Istio 先后发布了 1.5.3和 1.5.4 版本。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 1.5.3版本包含以下错误修复程序: 修复了 Helm 安装程序使用动态生成的签名密钥安装 Kiali 的问题 修复了将生成的 Kubernetes 资源与用户定义的叠加层叠加在一起的附加组件 修复了istio-sidecar.deb无法通过iptables默认nftables设置在 Debian Buster 上启动的问题 修复了在DestinationRule.trafficPolicy.loadBalancer.consistentHash.httpHeaderName中指定的标头名称更改后,相应的哈希策略未更新的问题 修复了在 istio-system 以外的名称空间中部署时的流量路由 但由于发布疏漏,1.5.3 镜像不包含本应有的 CVE-2020-10739 修复程序,官方建议升级至 1.5.4 版本。 1.5.4 版本包含以下安全更新: ISTIO-SECURITY-2020-005 启用遥测 V2 时拒绝服务 CVE-2020-10739:通过发送特制数据包,攻击者可能会触发 Null Pointer 异常,从而导致拒绝服务。 发布公告:https://istio.io/news/releases/1.5.x/announcing-1.5.4/

优秀的个人博客,低调大师

使用Chrome开发者工具研究JavaScript里函数的原生实现

As the size of my blog Chrome Development Tool tips used in my daily work turns to be larger I create a separate post to record down this small tip.Are you curious about the “native code” here? At least I am. Today I find that the Profiles tab in Chrome development tool can help us to unveil the mysteries to some degree.In Chrome development, just select this checkbox: And then execute the simple JavaScript code below: var arr = []; for (var i=0; i<1000; i++){ arr.push(i) } console.profile("Array toString"); for( var i = 0; i < 1000; i++){ var a = arr.toString(); } console.profileEnd("Array toString"); Once done, you can see a profile record with the name specified in JavaScript code above, “Array toString”. Hover the mouse to the first row, “anonymous function”, we find the hint “array.js”. Switch display style from Chart to Tree: From here the callstack of native implementation of toString is displayed: The next step is to look into in array.js.Launch url: https://cs.chromium.org/Click this hyperlink: now you can find the array.js file via path: src/v8/src/js/array.js The callstack analyzed through the source code exactly matches the one we get in Chrome development tool Profile tab:ArrayToString will delegate to Join if current caller is an Array: Join will call DoJoin: DoJoin will first call UseSparseVariant to evaluate the possibility to perform Join via SparseVariant. If not possible, call ConvertToString as fall back. ( The line number of source code may vary with the one you see in Chrome Development Tool profile tab due to the different version of Chrome being used. ) If you could not tolerate the poor performance of this online source code repository, you could download the whole source code of V8 to your local laptop by cloning this github repository:https://chromium.googlesource.com/v8/v8.git/ 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

优秀的个人博客,低调大师

使用Chrome开发者工具研究JavaScript的垃圾回收机制

I use the following simple JavaScript code to illustrate: var JerryTestArray = []; (function(){ for( var i = 0; i < 100; i++){ JerryTestArray[i] = document.createElement("div"); } })(); Create a new empty tab in your Chrome, and first create a snapshot with empty heap status by click “Take Snapshot” button: The Snapshot1 is generated. Now switch to tab Console, paste the JavaScript code and execute it in console. And switch to Profiles tab again to make the second snapshot: Once done, select the second snapshot, choose “Comparison” and “Snapshot1” as filter: We can find out from column “New” that 100 div nodes are created as we expect. Since these nodes are not appended to document node so they are invisible to end user, so displayed as “Detached DOM”. The JerryTestArray still holds the reference to each div node so Garbage collector will not touch these nodes. In order to make Garbage collector recycle the memory occupied by these nodes, just assign another value to JerryTestArray in console: Once done, make the third snapshot and compare it with the second. Now we can find that the re-assignment to JerryTestArray will trigger the destruction of those 100 div nodes by Garbage collector: Meanwhile, the string we use in assignment could also be inspected via the combination of filters below: There is another kind of profile in Chrome development tool which can give you an overview about timeline of memory allocation: Click Start button in above screenshot, and paste the following code in console and executed: var JerryTestArray = []; (function(){ for( var i = 0; i < 98; i++){ JerryTestArray[i] = document.createElement("span"); JerryTestArray[i].className = "JerryClassName" + i; } })(); After the code is executed, paste the following code and execute: JerryTestArray[30] = "this is a long test............................end"; Now stop the profile. The profile is displayed as below. The highlighted vertical blue line indicates the timeslot when the 97 Span elements are created. Note that the number of Span elements displayed here is not 98 but 97 since Chrome development tool displays the final status of objects after “stop profile” button is clicked ( the reference to 30th Span element is replaced by String, so it is recycled by GC ). You can drag the two vertical bars to define the time range between which you would like to inspect. For example the time range below contains the timeslot when the below assignment occurs: JerryTestArray[30] = "this is a long test............................end"; With this gained knowledge now we can check the memory allocation and destruction in some real application. For example click tile “My Tasks” to enter this application, make the first snapshot and click back button within application to return to launchpad, and make the second snapshot and review the comparison result. From the result we find out lots of stuff are deleted after we return to launchpad: Hover your mouse to a given destructed object and you can review its detail: For more tips How I use Chrome development tool in my daily work, please refer to this blog Chrome Development Tool tips used in my daily work 本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

优秀的个人博客,低调大师

Istio 1.5.2 发布,大型微服务系统管理工具

Istio 1.5.2 发布了。Istio 是一个由谷歌、IBM 与 Lyft 共同开发的开源项目,旨在提供一种统一化的微服务连接、安全保障、管理与监控方式。具体来说,Istio 是一个开源服务网格平台,它确保微服务在处理故障时以指定的方式相互连接。 新版本主要更新内容包括: 修复:Istiod 部署缺少匹配 PodDisruptionBudget 使用的标签 修复:使用 istioctl 进行自定义 Istio 安装无法通过外部图表使用 修复:通过向stdErr发送警告来记录验证 修复:当用于IstioOperator API的外部Prometheus链接时,Kiali无法正常工作 修复:IstioOperator 切片验证 修复:由于默认的excludeInboundPort配置不包括端口15090,因此在CNI注入的Pod中Prometheus抓取失败 改进:添加注释以设置 Sidecar 上的 CPU/内存限制 改进:默认情况下启用 rewriteAppHTTPProbe 注释 更多内容见更新说明: https://istio.io/news/releases/1.5.x/announcing-1.5.2/

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册