幸福的烦恼 张大胖最近是又喜又忧,喜的是业务量发展猛增,忧的是由于业务量猛增,一些原来不是问题的问题变成了大问题,比如说新会员注册吧,原来注册成功只要发个短信就行了,但随着业务的发展,现在注册成功也需要发 push,发优惠券,-等 这样光注册用户这一步就需要调用很多服务,导致用户注册都需要花不少时间,假设每个服务调用需要 50 ms,那么光以上服务就需要调用 200 ms,而且后续产品还有可能再加一些发新人红包等活动,每加一个功能,除了引入额外的服务增加耗时外,还需要额外集成服务,重发代码,实在…
本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让大家见笑了. 本文我们来探索一下主流的各种应用服务器的网络处理模型,看看大家都是怎么设计网络程序的.在本文中,我会从Node.js.Apache Server.Nginx.Netty.Redis.Tomcat.MySQL.Zuul等常用的服务器程序,给大家逐一分析,分析各种服务器程序的性能,心中有数,才能手中…
以代码的思想去详细讲解yolov3算法的实现原理和训练过程,并教使用visdrone2019数据集和自己制作数据集两种方式去训练自己的pytorch搭建的yolov3模型,吐血整理万字长文,纯属干货 ! 实现思路 第一步:Pytorch搭建yolo3目标检测平台 模型yolov3和预训练权重下载 yolo3算法原理实现思路 一.预测部分 1.yolo3的网络模型架构和实现 2.主干特征网络darknet53介绍和结果(获取3个初始特征层) 3.从初始特征获取预测结果(最终的3个有效的特征层) 4…
文章有点长,耐心看完应该可以懂实际原理到底是啥子. 这是一个KV数据库的C#实现,目前用.NET 6.0实现的,目前算是属于雏形,骨架都已经完备,毕竟刚完工不到一星期. 当然,这个其实也算是NoSQL的雏形,有助于深入了解相关数据库的内部原理概念,也有助于实际入门. 适合对数据库原理以及实现感兴趣的朋友们. 整体代码,大概1500行,核心代码大概500行. 为啥要实现一个数据库 大概2018年的时候,就萌生了想自己研发一个数据库的想法了,虽然,造轮子可能不如现有各种产品的强大,但是,能造者寥寥无…
万字长文:从计算机本源深入探寻volatile和Java内存模型 前言 在本篇文章当中,主要给大家深入介绍Volatile关键字和Java内存模型.在文章当中首先先介绍volatile的作用和Java内存模型,然后层层递进介绍实现这些的具体原理.JVM底层是如何实现volatile的和JVM实现的汇编代码以及CPU内部结构,深入剖析各种计算机系统底层原理.本篇文章超级干,请大家坐稳扶好,发车了!!!本文的大致框架如下图所示: 为什么我们需要volatile? 保证数据的可见性 假如现在有两个线程…
这是公众号<Throwable文摘>发布的第22篇原创文章,暂时收录于专辑<架构与实战>.暂定下一篇发布的长文是<图文分析JUC同步器框架>,下一篇发布的短文是<SpringBoot2.x入门:引入jdbc模块与JdbcTemplate简单使用>. 前提 在日常使用SpringMVC进行开发的时候,有可能遇到前端各种类型的请求参数,这里做一次相对全面的总结.SpringMVC中处理控制器参数的接口是HandlerMethodArgumentResolver,…
PKM闭环中有一个很重要的环节就是信息输入,包括各种信息来源,例如微信公众号.博客.知乎.RSS等等,因此也就诞生了一大堆稍后读软件,如何真正有效的获取输入而不是做一只仓鼠是需要思考的.最近看了<小强升职记>很有收获,里面提到最好在每个方面都有一个自己的小系统,"做事要靠系统而不是靠感觉",因此这里简单记录下自己的思考和目前构建起来的信息收集整理系统. 需求场景 手机在浏览阅读一些比较有价值的文章的时候,无法立马吸收,例如读到一些专业的技术博客.长文等等,此时,就需要将这些…
一.HBase 读优化 1. HBase客户端优化 和大多数系统一样,客户端作为业务读写的入口,姿势使用不正确通常会导致本业务读延迟较高实际上存在一些使用姿势的推荐用法,这里一般需要关注四个问题: 1) scan缓存是否设置合理? 优化原理:在解释这个问题之前,首先需要解释什么是scan缓存,通常来讲一次scan会返回大量数据,因此客户端发起一次scan请求,实际并不会一次就将所有数据加载到本地,而是分成多次RPC请求进行加载,这样设计一方面是因为大量数据请求可能会导致网络带宽严重消耗进而影响其…
ELK(7版本)部署与架构分析 1.ELK的背景介绍与应用场景 在项目应用运行的过程中,往往会产生大量的日志,我们往往需要根据日志来定位分析我们的服务器项目运行情况与BUG产生位置.一般情况下直接在日志文件中tailf. grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量过大.文本搜索太慢.如何多维度查询.这就需要对服务器上的日志收集汇总.常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问. 一般大型系统往往是一种分布式…
目录 0 修订 0.1 修订说明 0.2 修订历史 1 基本概念 1.1 CabloyJS是什么 1.2 CabloyJS核心解决什么问题 1.3 CabloyJS的开发历程 2 数据版本与开发流程 2.1 数据版本 2.2 开发流程 3 特性鸟瞰 3.1 多实例与多域名 3.2 数据库事务 3.3 完美的用户与身份认证分离体系 3.4 模块编译与发布 4 业务开发 4.1 原子的概念 4.2 角色体系 4.3 API接口权限 4.4 数据访问权限 4.5 简单流程 5 解决方案 5.1 Cab…