
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
高并发与高可用性都是程序员在开发软件的时候需要满足的一些开发需求,而本文我们就通过案例分享来了解一下,高并发编程开发需要满足哪些开发需求。
防刷分流
搭建两套服务集群,将存在爬虫标记(依赖于专业的爬虫识别算法)的流量分流到另一套集群,甚至可以返回假数据,做蜜罐处理。
静态资源分发
主要依赖CDN技术进行资源的就近部署,可提前预热。常见如html、js、css、image等资源。
数据库并发
单机:MVCC、事务隔离、做好索引优化。
集群:分库分表、读写分离。
结合其他中间件:如简单的查询、统计,或者文本搜索等场景,可使用ElasticSearch,必要时进行二级检索(ElasticSearch检索出id,再到SQL中查询)。
压力测试/性能测试
ApacheJMeter。
搭建压测集群,平时抓取服务真实流量,节日或大促前进行必要的压测,以暴露性能瓶颈。
日常巡检/故障演练
用于提前发现问题,如接口扫描、混沌工程就是做这些事情的。
批量执行
框架层面:可参考Hystrix的请求合并机制HystrixCollapser。
代码层面:服务接口批量调用数据,拿到批量结果后再分派结果。
池化技术
线程池:常用如ThreadPoolExecutor。
连接池:常用如HikariCP、Druid、c3p0、DBCP。
对象池:常用如ApacheCommonsPool2。另外,如Integer等包装类针对(-127~128)的对象缓存,其实也是一种对象池的体现。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。