
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的软件被开发并推广上线,而本文我们就通过案例分析来了解一下,高并发编程开发需要解决哪些问题。
1、补偿
在微服务架构下,会按各业务领域拆分不同的服务,服务与服务之前通过RPC请求或MQ消息的方式来交互,在分布式环境下必然会存在调用失败的情况,特别是在高并发的系统中,由于服务器负载更高,发生失败的概率会更大,因此补偿就更为重要。
2、幂等
幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同,体现在业务上就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为发起多次而产生副作用。在分布式系统中发生系统错误是在所难免的,当发生错误时,会使用重试、补偿等手段来提高容错性,在高并发的系统中发生系统错误的概率就更高了,所以这时候接口幂等就非常重要了,可以防止多次请求而引起的副作用。
在做幂等性设计的时候需要注意的是并不是所有的场景都要做幂等,比如用户重复转账、提现等等,因为幂等会让外部系统的感知是调用成功了,并没有阻塞后续流程,但其实我们系统内部是没有做任何操作的,类似上面提到的场景,会让用户误以为操作已成功。所以说要仔细区分需要幂等的业务场景和不能幂等的业务场景,对于不能幂等的业务场景还是需要抛出业务异常或者返回特定的异常码来阻塞后续流程,防止引发业务问题。
3、异步化
上文提到的消息队列也是一种异步化,除了依赖外部中间件,在应用内我们也可以通过线程池、协程的方式做异步化。
4、做好监控
在微服务中像RPC接口调用、MQ消息消费,包括中间件、基础设施等的监控,这些基本都会针对性的做完善的监控,但是类似像线程池一般是没有现成监控的,需要使用方自行实现上报打点监控,这点很容易被遗漏。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。