草庐IT

once do, do it well

昨天出现一个生产问题。我们的channel系统代码里,调用其中一个三方服务商的http接口时未设置超时时间。碰巧昨天出现一笔http请求持续数小时始终无响应,加之程序是单线程处理交易请求,就出现因为线程一直处于RUNNABLE状态而导致系统生产能力严重下降。现在说这个结论很easy,而昨天排查这个问题却很是花费了许多周折。那么,解决这个问题,自然是为这个服务商的http请求设置合理的超时时间。组内的小伙很快fix了这段代码,为方法里的http请求设置了connectTimeout和socketTimeout。   发现问题,上来就解决,往往是低效的方式。为什么这么说呢?曾经我们系统化地调整过c

once do, do it well

昨天出现一个生产问题。我们的channel系统代码里,调用其中一个三方服务商的http接口时未设置超时时间。碰巧昨天出现一笔http请求持续数小时始终无响应,加之程序是单线程处理交易请求,就出现因为线程一直处于RUNNABLE状态而导致系统生产能力严重下降。现在说这个结论很easy,而昨天排查这个问题却很是花费了许多周折。那么,解决这个问题,自然是为这个服务商的http请求设置合理的超时时间。组内的小伙很快fix了这段代码,为方法里的http请求设置了connectTimeout和socketTimeout。   发现问题,上来就解决,往往是低效的方式。为什么这么说呢?曾经我们系统化地调整过c

服务商系统集中高频交易CPU飙升问题解决优化过程

通过创建数据表索引,有效提升系统性能。一、问题背景在11月10日下午5点,出现channel异步下发消息队列消息积压报警,经排查分析是因为channel请求鑫某亿服务商落单时间过长,导致了channel消费消息队列的消息变慢的情况。所以,专项对鑫某亿系统相关业务进行优化。一(1)、现场如下是grafana监控平台上,鑫某亿服务商当时的服务器CPU使用率,如下所示:图中可见,当时鑫某亿的CPU很长一段时间都是满负荷的状态,以至于服务器出现了卡顿的现象,间接的导致了落单慢的问题。一(2)、分析鑫某亿服务商系统和数据库部署在同一台服务器上,服务器配置:阿里云虚拟服务器8核16G。CPU持续飙高一般都

服务商系统集中高频交易CPU飙升问题解决优化过程

通过创建数据表索引,有效提升系统性能。一、问题背景在11月10日下午5点,出现channel异步下发消息队列消息积压报警,经排查分析是因为channel请求鑫某亿服务商落单时间过长,导致了channel消费消息队列的消息变慢的情况。所以,专项对鑫某亿系统相关业务进行优化。一(1)、现场如下是grafana监控平台上,鑫某亿服务商当时的服务器CPU使用率,如下所示:图中可见,当时鑫某亿的CPU很长一段时间都是满负荷的状态,以至于服务器出现了卡顿的现象,间接的导致了落单慢的问题。一(2)、分析鑫某亿服务商系统和数据库部署在同一台服务器上,服务器配置:阿里云虚拟服务器8核16G。CPU持续飙高一般都

[设计案例分享]基于数据中心实现系统间数据解耦

 公司主做基于灵活用工市场的业务场景系统。企业为了把握市场先机,通常是业务先行,所以,首先会做业务系统。随着业务系统和交易量增多,内部管理系统也随之增加。系统耦合如下,上面是业务系统,下面是支撑系统。渠道商系统要计算渠道商分润,销售管理系统要统计销售业绩,报表系统呢,要出各种数据报表,这些支撑系统一个共同的特征是,它们要依赖业务数据,交易数据必不可少。显然,各支撑系统都从各业务系统获取数据,并进行数据整合。一方面,可能会增加各业务系统压力。另一方面,各支撑系统都要开发重复的数据整合工作。系统解构于是,数据中心就诞生了。系统结构见下图,通过数据中心,使得支撑系统与业务系统实现解耦,也有利于上层业

[设计案例分享]基于数据中心实现系统间数据解耦

 公司主做基于灵活用工市场的业务场景系统。企业为了把握市场先机,通常是业务先行,所以,首先会做业务系统。随着业务系统和交易量增多,内部管理系统也随之增加。系统耦合如下,上面是业务系统,下面是支撑系统。渠道商系统要计算渠道商分润,销售管理系统要统计销售业绩,报表系统呢,要出各种数据报表,这些支撑系统一个共同的特征是,它们要依赖业务数据,交易数据必不可少。显然,各支撑系统都从各业务系统获取数据,并进行数据整合。一方面,可能会增加各业务系统压力。另一方面,各支撑系统都要开发重复的数据整合工作。系统解构于是,数据中心就诞生了。系统结构见下图,通过数据中心,使得支撑系统与业务系统实现解耦,也有利于上层业

姜还是老的辣,看看老战哥的老底儿和老道

上周日,2022年8月7日,参加了一场久违的半马。中伏天的傍晚,热度不减,全程挥汗如雨,虽不是PB,但也算尽力。晒一下战绩。  支付宝安全发这个通道要对接,今天上午10点,产品经理跟我们开发小组过需求。与历往通道不太一样的是,这个通道的商户入网不是全部由系统间api调用来完成的,而是需要客户介入,客户在支付宝的签约页面先完成签约,然后系统才能继续调用相关开户api来完成开户。 其中,我们要调用支付宝api来获取这个签约页面url,然后我们的运营人员在oms系统复制这个url给客户,客户接下来在支付宝这个签约页面完成签约入网。产品经理说这个签约url的有效期是100s,可以想象,短短的100s内

姜还是老的辣,看看老战哥的老底儿和老道

上周日,2022年8月7日,参加了一场久违的半马。中伏天的傍晚,热度不减,全程挥汗如雨,虽不是PB,但也算尽力。晒一下战绩。  支付宝安全发这个通道要对接,今天上午10点,产品经理跟我们开发小组过需求。与历往通道不太一样的是,这个通道的商户入网不是全部由系统间api调用来完成的,而是需要客户介入,客户在支付宝的签约页面先完成签约,然后系统才能继续调用相关开户api来完成开户。 其中,我们要调用支付宝api来获取这个签约页面url,然后我们的运营人员在oms系统复制这个url给客户,客户接下来在支付宝这个签约页面完成签约入网。产品经理说这个签约url的有效期是100s,可以想象,短短的100s内

生产问题处理,可别头疼医头脚疼医脚

当遇到生产问题/当系统在使用过程中出现问题时,你是怎么处理的,斩草除根?or头疼医头/脚疼医脚?下面几个,看看是否中招le!你也可以说,我肯定没有这么草率 1​并发导致数据表里出现了同样的数据-加唯一索引 2程序fullGC频繁-修改程序启动参数,加大堆内存 3mq消息堵塞-重启服务…重启服务不奏效?清空队列 4rpc调用超时导致方法上的事务回滚-去掉事务处理-把rpc调用放到异步线程 5-调用的某个util方法不好使-自己重新写一个 6用户重复点击导致出现重复数据-页面按钮点击后变为不可用 7学生成绩列表要显示学生所在班级-学生成绩表冗余“所在班级”字段 8程序跑着跑着,突然因为某些数据字段

生产问题处理,可别头疼医头脚疼医脚

当遇到生产问题/当系统在使用过程中出现问题时,你是怎么处理的,斩草除根?or头疼医头/脚疼医脚?下面几个,看看是否中招le!你也可以说,我肯定没有这么草率 1​并发导致数据表里出现了同样的数据-加唯一索引 2程序fullGC频繁-修改程序启动参数,加大堆内存 3mq消息堵塞-重启服务…重启服务不奏效?清空队列 4rpc调用超时导致方法上的事务回滚-去掉事务处理-把rpc调用放到异步线程 5-调用的某个util方法不好使-自己重新写一个 6用户重复点击导致出现重复数据-页面按钮点击后变为不可用 7学生成绩列表要显示学生所在班级-学生成绩表冗余“所在班级”字段 8程序跑着跑着,突然因为某些数据字段