首页 文章 精选 留言 我的

精选列表

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

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/

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

smart-license v1.0.3 发布,为软件提供授权的工具

smart-license 是一款用于安全加固的开源项目。 主要服务于非开源产品、商业软件、具备试用功能的付费软件等,为软件提供授权制的使用方式。 名词解释: License:通过 smart-license 生成的授权文件,导入至要授权使用的软件产品中。 源数据:需要进行 License 加工处理的基础数据。例如,将软件产品运行的配置文件作为源数据,经由 smart-license 授权处理后生成 License 文件。 License源文件:生成 License 的同时,会自动产生一份文件用于记录:源数据,授权时间,过期时间,秘钥对等信息。由软件授权方持有,当客户遗失 License 文件之后可以根据License源文件重新生成 License。 更新说明: 修复:生成的License源文件日期格式化异常问题。 新增:运行时过期策略接口RuntimeExpireStrategy。用户可自由实现软件运行期间触发过期的应对策略,日志告警或退出程序皆可。 License license = new License(); license.setExpireStrategy(new RuntimeExpireStrategy() { @Override public void expire() { System.exit(1); } }); license.loadLicense(); 新增:根据License源文件重新生成License。具体操作见README.MD 新增:提供Windows环境的运行脚本:keypair.bat、license.bat、license_revert.bat 适用场景: 非开源产品、商业软件、收费软件。 限制产品的传播性,每个客户拥有专属 License。 同一款软件发行包根据 License 的不同提供不同的服务能力。 限定软件授权时效 产品特色: 开源,代码完全公开,License的生成原理是透明的。 易用,提供二进制包,直接基于命令行生成 License。 安全,生成的 License 在一定程度上具备防篡改能力,破解难度大。 安全加固,采用非对称加密方式对 License源数据进行预处理,防止伪造License。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

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

Nacos

Nacos

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册