首页 文章 精选 留言 我的

精选列表

搜索[质量保障],共10000篇文章
优秀的个人博客,低调大师

持续集成篇-- SonarQube代码质量管理平台的安装

视频教程:http://www.roncoo.com/course/view/85d6008fe77c4199b0cdd2885eaeee53 IP:192.168.4.221 环境:CentOS 6.6、JDK7、MySQL5.1 、SonarQube-4.5.4(LTS) root用户操作 准备工作:已安装JDK7并配置好了环境变量 1 、安装MySQL5.1 (可参考前面SVN管理平台的MySQL安装步骤,如果已安装则无需安装) # rpm -qa | grep mysql ## 查看该操作系统上是否已经安装了mysql数据库, 有的话,可以通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉 # yum install mysql-server mysql mysql-devel # service mysqld start # chkconfig --list | grep mysqld mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off 用上面的命令查看到MySQL并没有设置开机启动,所以需要设置开机启动 # chkconfig mysqld on 为了方便远程管理,防火墙中打开3306端口 # vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 重启防火墙,使端口配置生效 # service iptables restart 设置MySQL数据库root用户的密码: # mysqladmin -u root password 'wusc.123' 登录数据库: # mysql -u root -p MySQL授权远程访问(先用root登录mysql) mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'wusc.321' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; 2、配置MySQL 结合SonarQube,MySQL数据库最好使用InnoDB引擎,可提高性能。 看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎: mysql> show variables like '%storage_engine%'; 修改MySQL存储引擎为InnoDB, 在配置文件/etc/my.cnf中的 [mysqld] 下面加入default-storage-engine=INNODB # vi /etc/my.cnf [mysqld] default-storage-engine=INNODB 重启mysql服务器 # service mysqld restart 再次登录MySQL查看默认引擎设置是否生效 mysql> show variables like '%storage_engine%'; +----------------+--------+ | Variable_name | Value | +----------------+--------+ | storage_engine | InnoDB | +----------------+--------+ innodb_buffer_pool_size参数值设置得尽可能大一点 这个参数主要作用是缓存innodb表的索引,数据,插入数据时的缓冲 默认值:128M,专用mysql服务器设置的大小:操作系统内存的70%-80%最佳。 设置方法:my.cnf文件[mysqld] 下面加入innodb_buffer_pool_size参数 # vi /etc/my.cnf [mysqld] innodb_buffer_pool_size = 256M (我们这里设置为256M,因为我们的不是专用的MySQL数据库服务器,还有很多其他的服务需要占用系统内存) 设置MySQL的查询缓存query_cache_size,最少设置15M # vi /etc/my.cnf [mysqld] query_cache_type=1 query_cache_size=32M 重启mysql服务器 # service mysqld restart 验证缓存设置是否生效: mysql> show variables like '%query_cache%'; +------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | have_query_cache | YES | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 33554432 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+----------+ 3、创建sonarqube数据库(UTF-8编码) 二、安装SonarQube的Web Server 下载最新LTS版的SonarQube安装包(当前版本为sonarqube-4.5.4.zip): 下载地址:http://www.sonarqube.org/downloads/ http://dist.sonar.codehaus.org/sonarqube-4.5.4.zip 下载: # wget http://dist.sonar.codehaus.org/sonarqube-4.5.4.zip 解压安装: # unzip sonarqube-4.5.4.zip # mv sonarqube-4.5.4 sonarqube 编辑sonar配置: # cd sonarqube/conf/ # vi sonar.properties sonar.jdbc.username=root sonar.jdbc.password=wusc.123 #----- MySQL 5.x sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance sonar.web.host=0.0.0.0 sonar.web.context=/sonarqube sonar.web.port=9090 保存以上配置(注意,要看看默认的9000端口是否已被占用) 防火墙中打开9090端口: # vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT 重启防火墙,使端口配置生效 # service iptables restart 启动 SonarQube Web Server # /root/sonarqube/bin/linux-x86-64/sonar.sh start (初次启动会自动建表和做相应的初始化) 浏览器中输入:http://192.168.4.221:9090/sonarqube/ 登录,默认用户名/密码为 admin/admin 到此,SonarQube已安装完毕,接下来是对SonarQube做相应的配置和使用 关注公众号:

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

iOS-《编写高质量代码》笔记-第二章

建议8:C语基本言与Objective-C 语言的关系是充分而非必要条件 1.C 语言的基本语法在Objective-C 语言中是可用的。 2.与C语言相比,Objective-C语言又定义了新的基本数据类型,如BOOL等。 3.Objective-C值对象比C类型变量具有封装常用操作的优势,但在数值计算中,使用C类型标量更为简洁。 建议9:高度警惕空指针和野指针的袭击 1.空指针(NULL 指针),是指没有存储任何内存地址的指针。野指针,是指向“垃圾内存”(不可用内存)的指针。野指针指向的对象被释放了,无指向的指针是空指针。 2.利用野指针发消息是很危险的,会报错。也就是说,如果一个对象已经被回收了,就不要再去操作它,不要再尝试给它发消息。 3.利用空指针发消息是没有任何问题的,也就是说代码是没有错误的。 建议10:在64位环境下尽可能利用标记指针 iphone 5s 采用了arm 64 的cpu. 由于指针地址对齐概念和64位超大地址的出现,指针地址仅仅作为内存的地址是比较浪费的,故此,可以在指针地址中保存或附加更多信息。这就引入了标记(Tagged)指针概念。标记(Tsgged)指针是指那些指针中包含特殊属性或信息的指针。其中指针对齐概念可以来标识一个指针是否是标记指针及相关类型。(指针对齐 地址后四位都是0) 在64位环境下,isa也是64位,实际作为指针部分只用到其中的33位,剩余的部分会运用到标记(Tagged)指针的概念。其中19位将保存对象的引用计数,这样对引用计数的操作只需要原子的修改这个指针即可。如果引用计数超出19位,才会将引用计数保存到外部表,而这种情况往往是很少的,因此效率将会大大提高。 1.利用标记指针,可以在指针地址中保存或附加更多信息 2.利用标记指针处理NSNumber,直接可以把实际的值保存到指针中,而无须再去访问堆中的数据,可提高内存访问速度和整体运算速度。 3.在32位和64位的环境下,isa 指针会产生不同的变化。在64位环境下,标记指针可加快isa指针的处理效率。 建议11:谨记兼容32位和64位环境下代码编写事项 1.不要将长整型数据赋予整型 2.利用NSInteger 来处理32位和64位之间的转换 3.创建数据结构要注意固定大小和对齐 建议12:清楚常量字符串和一般字符串的区别 常量字符串 NSString *str = @“hello”; 1.由于编译器的优化,相同内容的常量字符串的地址值是完全相同的。 2.如果使用常量字符串来初始化一个字符串,那么这个字符串的地址值也是相同的。 3.对常量字符串永远不要release。release也没用。 建议13:在访问集合时要优先考虑使用快速枚举 使用快速枚举可以很容易地枚举集合,在快速枚举集合期间,不能变异集合,即使集合是可变的。如果在循环内,尝试添加或删除集合的对象,则会生成运行时异常。 建议14:有序对象适宜存于数组,而无序对象适宜存于集 1. 数组可维持持续性,故适宜存储有序的对象。集不维持秩序,故适宜存储无序对象,即使不止一次在集中尝试添加一个对象,集也只能存储一个单独对象的一个引用。 2.同一数组可以保存不同的对象,但不能存储基本类型和nil, 存储基本类型都会被设置成0,不能存储nil是因为数组必须用nil 来结尾 建议15:存在公共键时,字典是在对象之间传递信息的绝佳方式 字典可作为有序对象的集合,主要依赖于键值可采用有序。 建议16:明智而审慎地使用BOOL 类型 整型转换为BOOL型的时候要避免直接和YES做比较。

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

HaLow技术提升车载Wi-Fi质量 促进车联网发展

据科技网站Gizmag报道,Wi-Fi联盟近日宣布推出名为Wi-Fi HaLow的低功耗Wi-Fi技术,Wi-Fi信号覆盖面更广、能耗更低,HaLow技术或将成为车载Wi-Fi的福音,进一步推动车联网技术进步。 汽车电子以及信息传输网络的发展为车联网奠定了技术基础。随着移动互联网、车联网及物联网的发展,智能汽车的步伐正在加快,无线通讯技术与汽车电子技术整合的趋势正在加速,通过配备准捷电子车载Wi-Fi产品,汽车等移动交通工具摇身一变成为一个移动网络,从而让用户享受到无处不在的信息服务。而车载Wi-Fi技术则成为智能汽车的一大关键技术之一。 据报道,Wi-Fi联盟的HaLow技术是基于IEEE 802.11ah标准,可同时运作于2.4GHz、5GHz及900MHz频段,能将现今802.11ac Wi-Fi的讯号覆盖范围扩大一倍,在巩固Wi-Fi技术在物联网市场的地位,也将大大推动车载Wi-Fi技术的发展。 据Wi-Fi联盟总裁兼执行长埃德加·菲格罗亚(Edgar Figueroa)介绍,Wi-Fi HaLow适合智慧家庭、智慧城市与智慧工业等市场的独特需求,比起现今的Wi-Fi技术,由于它的功耗极低、渗透率较高,可以穿墙且拥有较长的传输范围,因此HaLow技术的适用性更广。据悉,HaLow技术原本是为各类穿戴式装置以及小功率传感器打造的,不过现在HaLow技术也可适用于大规模产业设备,并在车载Wi-Fi市场发挥重要作用。 覆盖范围将传统Wi-Fi扩大一倍,在环境变化时,尤其是遇到墙体等物理障碍时,HaLow技术的Wi-Fi信号穿透力更强,信号会更强劲。而且在设备高密度环境——指多个设备使用同一个端口时,HaLow技术的表现亦十分抢眼,效果良好。 车载Wi-Fi是面向公交、客车、私家车、游轮等公共交通工具推出的特种上网设备,Wi-Fi终端通过无线接入互联网获取信息、娱乐或移动办公的业务模式。车载Wi-Fi通过3G/4G/5G to Wi-Fi、无线射频等技术,提供Wi-Fi热点。车载Wi-Fi设备要在高速、高温、振动环境中工作,对设备的稳定性、灵敏度、抗恶劣环境能力等方面提出更苛刻的要求。 作者:何妍 来源:51CTO

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

解析腾讯云环境下终端内发包功能,保障企业文档外发可控流转

随着企业业务全面上云,大量涉密图纸、技术文档、商务资料、项目方案依托腾讯云实现集中存储、云端协同与跨主体交付。文档对外流转已成为企业数据安全管控的核心难点,传统网盘传输、邮件外发、即时通讯转发等方式存在明显管控短板,文件交付后完全脱离企业管控边界,极易出现随意打印、二次转发、批量扩散、截图外泄等安全问题,给企业核心数据资产带来严重泄露风险。在腾讯云架构体系下,终端内发包功能可有效补齐云端文档外发安全短板,构建云端存储、终端封装、可控外发、全程可追溯的标准化文档交付体系。

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

❤️‍🔥FlyFlow 工作流触发器异常处理:灵活应对,保障流程稳定运行

在现代企业数字化转型的浪潮中,工作流自动化工具的重要性日益凸显。FlyFlow作为一款高效自动化的工作流程解决方案,凭借其强大的功能和灵活的配置,受到了众多用户的青睐。今天,我们就来深入探讨一下FlyFlow工作流中触发器异常处理的几种方式:忽略异常、抛出异常、终止流程和跳转指定节点。 一、触发器异常处理概述 在工作流的运行过程中,触发器是启动流程的关键环节。然而,触发器可能会因为各种原因出现异常,比如数据格式错误、外部服务不可用等。如果不对这些异常进行妥善处理,可能会导致整个工作流无法正常运行,甚至引发更严重的问题。因此,FlyFlow提供了多种异常处理机制,让用户可以根据实际业务需求灵活选择处理方式。 二、忽略异常 在某些情况下,触发器的异常可能并不影响整个工作流的执行,或者我们希望在出现异常时继续执行后续流程。这时,可以选择忽略异常的方式。通过配置触发器的异常处理策略为“忽略异常”,当触发器出现异常时,系统会自动忽略该异常,继续执行后续节点。 这种方式适用于以下场景: 触发器的异常对业务流程的影响较小,后续节点可以独立运行。 为了保证工作流的连续性,允许在部分数据或操作失败的情况下继续执行。 三、抛出异常 如果触发器的异常是严重错误,可能会导致后续流程无法正确执行,那么可以选择“抛出异常”的处理方式。这种方式会将异常信息传递给后续节点,使得整个工作流能够及时感知到异常的发生,并采取相应的措施。 抛出异常的适用场景包括: 触发器的异常对后续流程有直接影响,必须进行处理。 需要通过异常信息来触发特定的错误处理逻辑或通知机制。 四、终止流程 当触发器的异常表明整个工作流无法继续正常执行时,可以选择“终止流程”的处理方式。这种方式会立即停止工作流的运行,避免后续节点继续执行可能导致的错误或资源浪费。 终止流程适用于以下情况: 触发器的异常是致命错误,无法通过任何方式修复。 继续执行后续节点可能会导致更严重的后果或数据错误。 五、跳转指定节点 在某些复杂的工作流中,我们可能希望在触发器出现异常时,跳转到特定的节点进行处理。FlyFlow支持“跳转指定节点”的异常处理方式,用户可以在配置中指定一个目标节点。当触发器出现异常时,工作流会自动跳转到该节点,继续执行后续流程。 这种方式的优势在于: 可以根据异常类型或业务逻辑,灵活地将工作流引导到不同的处理路径。 提高了工作流的容错能力和灵活性,能够更好地应对各种复杂的业务场景。 六、总结 FlyFlow工作流的触发器异常处理机制为用户提供了强大的灵活性和可靠性。通过忽略异常、抛出异常、终止流程和跳转指定节点等多种方式,用户可以根据实际业务需求,精准地控制工作流在异常情况下的行为。这不仅有助于提高工作流的稳定性和可靠性,还能在面对复杂业务场景时,快速调整和优化工作流程。 无论你是技术新手还是资深开发者,FlyFlow都能为你提供简单易用且功能强大的工作流管理体验。如果你还没有尝试过FlyFlow,不妨去官网或演示地址体验一下,感受它带来的高效与便捷吧! 立即体验: 访问官网www.flyflow.cc,了解更多关于 FlyFlow 的信息与案例。 前往 ElementPlus 演示网址pro.flyflow.cc,体验基于 ElementPlus 组件库构建的精美界面与流畅操作。 访问 AntDesign 演示网址ant.flyflow.cc,感受 AntDesign 风格带来的不同视觉享受与交互体验。

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

从 0 到 1,亿级消息推送的稳定性保障 | 得物技术

1 消息推送简介 1.1 什么是消息推送 消息推送每天都在我们的手机上发生,如图所示,除非你的手机没有安装 App 或关闭了通知栏权限。 1.2 消息推送的价值 从用户的生命周期来看,消息推送对于提高 App 活跃度、提升用户粘性和用户留存率都起到了重要作用。 提升新用户次日留存,低成本促活,对平台的短期留存率影响显著。 提升老用户活跃度,push 可以通过外部提醒起到拉活的作用。很多内容平台类 App 的用户 push 首次启动占比可达 10%以上,因此 push 对 DAU 的增量贡献不容小觑。 流失用户召回,当用户流失后,若 push 权限未关闭,通过消息推送的方式,有可能重新唤醒用户。 2 背景和痛点 消息中心为得物 App 提供了强大,高效的用户触达渠道,其中 push 对于得物 DAU 的贡献有可观的占比,这也就意味着每一条推送消息都是一次与用户沟通的宝贵机会,所以推送的稳定性成为我们关注的首要问题,那么我们遇到的以下痛点就亟待解决。消息中心没有明确消息推送的耗时标准,业务和技术之间存在 gap,业务方对于推送的消息什么时候到达没有明确的心理预期。从技术上来讲消息推送各个节点的耗时不明确,无法对各个节点的耗时做针对性的优化,这也就需要我们针对消息推送的节点耗时进行监控。消息推送的稳定性依赖于第三方的推送通道,而三方通道对于我们来讲就是个黑盒子,如何做到三方通道异常及时发现并止损也是需要考虑的问题。在我们正常的迭代过程中有时候不可避免的会出现些异常或者有坏味道的代码,这些问题能不能及时发现、及时止损,能不能及时告警出来。 3 监控的实践 3.1 SLA 监控简介 SLA(Service-Level Agreement),也就是服务等级协议,指的是系统服务提供者(Provider)对客户(Customer)的一个服务承诺。这是衡量一个大型分布式系统是否“健康”的常见方法。在开发设计系统服务的时候,无论面对的客户是公司外部的个人、商业用户,还是公司内的不同业务部门,我们都应该对自己所设计的系统服务有一个定义好的 SLA。因为 SLA 是一种服务承诺,所以指标可以多种多样。最常见的四个 SLA 指标,可用性、准确性、系统容量和延迟。 对于消息推送而言,我们主要关注的是消息能否及时可靠的送达给用户,也就是 SLA 中关注的时效性和稳定性的问题。目前消息中心针对实效性和稳定性的开发已经完成并初显成效,下面主要针对时效性和稳定性的监控做一些介绍。 3.2 系统架构图 3.3 时效性监控 3.3.1 节点的拆分 如何做到时效性的无死角监控,那么我们就要对消息推送的整个流程进行拆分,把整个流程拆分成若干个独立且无依赖的可监控节点。从消息系统流转图中可以看到,整个推送流程是清晰明了的,消息的的推送主要会经历推送鉴权、用户查询、防疲劳过滤、防重复过滤等的逻辑处理,考虑到每个业务逻辑的处理是相互独立且无依赖的,那我们就可以根据具体的业务处理逻辑进行节点的拆分,这样就可以做到拆分无遗漏,监控无死角,拆分后的具体节点如下: 3.3.2 节点耗时的计算 具体的节点拆分逻辑和耗时逻辑的计算如下图: 备注:节点耗时的计算:记录节点消息推送到达的时间,并计算节点推送耗时,例如防疲劳耗时=T7(antiFatigueConsumeTime)-T6(checkrepeatConsumeTime)节点阻塞量的计算:记录节点消息推送的瞬时阻塞量, 例如防疲劳节点阻塞量 = 防疲劳的总量-防疲劳已经处理的量 3.3.3 节点指标的制定 既然需要监控的节点已经拆分明确了,那针对这些节点我们监控哪些指标才是有意义的呢。 目前消息推送高峰耗时较长,各业务域对于消息的到达时间也没有明确的心理一个预期,另外消息中心也无法感知推送在整个链路各个节点的耗时情况,无法针对节点耗时做到有针对性的优化,所以节点的推送量和推送耗时就是我们需要重点关注的指标。 节点的阻塞量可以让我们及时感知到推送中存在的积压问题,在大促期间,消息的推送量也会达到一个高峰,消息目前是否有堆积,处理的速度是否跟的上,是否需要临时扩容,那么节点的阻塞量就成了一个比较有意义的参考指标。 考虑到消息推送是有优先级的并且区分单推和批量推,所以我们要针对不同的优先级和推送方式设置不同的标准,消息推送耗时的具体标准如下。 3.3.4 技术方案的实现 为了能感知到消息推送中发生的异常和耗时情况,这就需要我们标准化监控指标和监控的节点。其中耗时指标可以感知节点的耗时和代码的坏味道,阻塞量可以监控到节点的堆积情况,推送成功率可以感知节点的推送异常等。另外节点拆分后我们可以很快定位到异常发生的具体位置,经过拆分监控的主要节点包括鉴权、风控、用户查询、防疲劳、防重复、厂商调用等。 另外消息中心每天推送大量消息给得物用户,SLA 监控任何一个操作嵌入主流程中都可能导致消息推送的延迟。这也就要求监控和主流程进行隔离,主流程的归主流程,SLA 的归 SLA,SLA 监控代码从主流程逻辑中剥离出来,彻底避免 SLA 代码对主流程代码的污染,这也就要求 SLA 逻辑计算需要独立于推送业务的主流程进行异步计算,防止 SLA 监控拖垮整个主流程,那么 Spring AOP+Spring Event 就是最好的实现方式 。 3.3.5 结果 消息推送实效性监控做完之后,对服务节点耗时异常可以及时感知,同时也完成了关键节点耗时的指标化,可以明确的看到所有节点在各个时间的耗时情况,同时也对消息推送针对各个节点的的优化起到了指导作用。时效性节点监控: 时效性节点告警: 3.4 厂商推送监控 3.4.1 监控指标制定 消息推送接入的有多个推送通道,如何做到对这些通道做到无死角的监控,及时感知呢。 在做厂商监控之前,我们就已经遇到了厂商通道推送跌零的情况,这种情况下整个推送通道都挂掉了,我们要及时通知厂商进行修复,所以厂商推送跌零告警和厂商余量监控是必须的。 从现有数据来看,厂商的推送成功率、回执成功率、点击率都稳定在一定的的区间。如果厂商推送的指标数据偏离这个区间则说明推送有异常,所以推送成功率、回执成功率、点击率的监控是必须的。 另外从业务请求发送的用户数来看,每天的消息推送基本是稳定的,相对应的厂商的回执数量和点击数量也是稳定的,那么对厂商推送成功的数量,回执的数量和点击的数量监控也有一定的参考意义。 业务侧请求发送的用户数: 厂商监控告警: 3.4.2 技术方案实现 厂商每天有数亿的消息推送,这也就意味着厂商的监控不能嵌在主流程中处理。厂商的监控代码要从主流程逻辑中剥离出来,避免监控拖垮主流程,同样避免监控异常影响到推送的主流程。针对厂商推送的监控,目前使用的是有界内存队列实现。 3.4.3 结果 消息推送厂商监控上线之后,可以及时感知到厂商推送的异常信息,对于厂商推送的异常和厂商规则的更改等可以做到及时的感知。 4 带来的收益 4.1 异常的及时发现 监控上线后及时发现了发现了厂商推送线程关闭失败,厂商推送跌零、厂商营销消息规则更改、厂商通道偶发不可用等问题,并做到了及时的止损。 在时效性监控上线之后,发现了因厂商推送线程创建关闭失败导致线程数逐渐上升问题,避免了线上故障的发生。 厂商异常导致推送跌零,监控发现后及时通知到厂商并止损。 发现厂商营销消息规则更改的异常,并及时经梳理各大厂商文档后发现除了多个厂商通道在未来一个月内也会有规则的更改,消息平台及时适应了厂商规则,接入厂商系统通道,做到了及时止损。 4.2 服务性能的提升时效性监控上线后发现了多个服务可以优化的点,其中多个厂商和推送节点在高峰推送时耗时较高,很明显节点耗时和厂商推送 SDK 连接池和连接时间参数需要优化。优化后消息推送整体的吞吐量实现了翻倍的提升。 5 展望未来 由于时间问题,目前消息监控只做了时效性和厂商推送稳定性相关的监控,但是监控上线后带来的收益还是比较可观的,可以预见的是监控的构建在未来必将带给我们更大的收益,后续我们可以从以下点丰富现有监控。 考虑到业务预的推送量和推送时间是稳定的,那么我们可以针对业务维度添加推送数据的监控,及时感知上游推送数据的变化。 其次我们可以针对各个节点的推送异常、漏斗转化率、服务性能等做监控,进一步丰富消息平台的监控体系。 对于消息推送来讲也要考虑推送的转化率问题,那么卸载、屏蔽等指标也是我们需要监控的点,通过这些业务指标及时感知推送的效果,做到精细化的管控。 6 总结 消息平台监控上线后带来的收益还是比较可观的,包括多次异常的及时发现和止损,还有发现多个个可以优化的性能点,实现了服务高峰吞吐量的翻倍,同时也解决了我们现在遇到的以下痛点。 时效性明确的给到了不同优先级的耗时标准,避免了业务和技术之间的 gap,业务方对于推送的耗时也有了明确的心理预期。 时效性使得节点耗时的性能问题可以一目了然,通过对现有节点耗时问题的优化,消息服务的吞吐量实现了翻倍的提升。 厂商稳定性监控使得厂商异常可以及时感知,其中厂商稳定性监控上线后发现多起厂商推送的异常,并做到了及时的解决和止损。 SLA 时效性和厂商稳定性上线后,消息中心可以及时感觉到推送链路的异常和代码的坏味道,特别是对于新上线的代码,如果存在异常可以及时感知。

资源下载

更多资源
Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

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等操作系统。

用户登录
用户注册