现实中的路由规则,可能比你想象中复杂的多
几乎每一个分布式系统,都会给用户提供自定义路由的功能。因为,仅通过range、mod、hash等方法,很大概率已经满足不了用户的需求。下面以一个实际场景为例,说一下数据路由的思路。 某个大型toB的应用,使用MySQL存储,单表数据量已达数亿,在结构变更、数据查询方面,已表现出…
也浅谈下分布式存储要点
几年之前,曾不自量力的想要写一个兼容RDBMS和NoSQL的数据库,结果仅实现了一个Raft协议,写了一棵BTree,就放弃了。使用Golang写这个算是比较简单的了,但过程难以言诉,有点蚂蚁撼大树了。 而个人,由于工作的关系,也已经有四五年没有和SQL打交道了。最近重拾,感慨…
小技巧:SpringBoot项目如何让前端开发提高效率?
更多精彩文章。 今天要分享的小技巧,或许能够大幅提高你的开发效率。你可以用省下来的时间打个盹,浏览个美女写真什么的。 众所周知,java项目的启动速度就像沙子里走路。要是你的前端模块也很大,有一大堆node_modules,SpringBoot会毫不犹豫的给你打包进去。每次修改…
linux配置ftp问题
Jobforvsftpd.servicefailedbecausethecontrolprocessexitedwitherrorcode.See"systemctlstatusvsftpd
Mac PHP报错
在终端使用'php'指令出现:Segmentationfault:11
记录一个有关 curl 和 tar 的小问题
作为程序员的两大利器之一,StackOverflow 和 github。第一步就跟踪到了 StackOverflow,查找到了这个问题,问题描述一模一样 如果没有使用 gzip 压缩,那需要使用 tar 解压的时候,去掉 -z 参数。 无果。 这里安利一个工具,explains…
You-Dont-Know-JS 疑难汇总
最近我看了 You-Dont-Know-JS 的两个小册,在看书的过程中,为了方便以后索引与更深入的了解,也为了避免遗忘,我对每一册的较为复杂的点做了总结,编辑如下。
那些需要自己开发的安全需求(服务端)
最近在实施App安全方面的方案,下面是一些思考。有些安全方面的产品需要购买,本文中的却要自己集成。需要开发的组件很多,所以依个人经验,简单做了下分层,不包括App端和主机环境。 http协议简单易懂、使用方便,我们大多数网络应用都是基于它开发的。数据展示,移动互联网已经占据了大…
坑爹项目「spring-cloud-alibaba」,我们也来一个
我们通常说的SpringCloud,指的是Spring Cloud Netflix,在独立的主机环境中也能使用部署,血统最为正宗,后面的文中,指的都是它。虽然有些组件不再维护了,但好在是可以热拔插的(除非你已经上了贼船)。 SpringCloud只是一堆规范,其中的组件是可以替…
在终端画画、炒股、玩游戏
如果要加个形容词,那就是优越感。 :) 一个shell终端,黑漆漆的,总觉得缺少生机。其实除了盯下日志,也可以用来玩游戏,甚至可以用来炒股盯盘。可怜的老板还以为你在工作呢,呵呵。 中,我们看到有通过telnet看电影的这种神器。 有意思的东西还有很多。我们统一把无功效、无回报、…
模拟邮件服务器,批量注册利器
我们的目标就是把这互联网搞的更乱更臭,所以我们是不被规则束缚的。今天要拿来开刀的,是邮件系统。 垃圾邮件,很多人都深受其害,但我们今天并不是要搞它。以相反的方式进行思考,我们并不讨厌它,而且欢迎它的到来。比如,我要批量注册一万个github账号。github通过邮箱验证就算注册…
【有趣】这段java代码太古怪
首先呢,来一段java代码来开点胃。等等等等,耍我呢,这是java代码? 非常负责任的告诉你,是的!不信请看下图。纯纯正正的java代码,class为XJJ的java源码,执行后打印小姐姐我爱你。 还是不信?自个儿拷贝下去执行一下。不过,IDEA是会报错的,用命令行哦。 其实没…
JAVA堆外内存排查小结
这几天遇到一个比较奇怪的问题,觉得有必要和大家分享一下。我们的一个服务,运行在docker上,在某个版本之后,占用的内存开始增长,直到docker分配的内存上限,但是并不会OOM。版本的更改如下: 使用ps查看进程使用的内存和虚拟内存 ( Linux内存管理 )。除了虚拟内存比…
WebSocket协议 8 问
更多精彩文章。 WebSocket是一种比较新的协议,它是伴随着html5规范而生的,虽然还比较年轻,但大多主流浏览器都已经支持。它使用方面、应用广泛,已经渗透到前后端开发的各种场景中。 对http一问一答中二式流程的不满,催生了支持双向通信的WebSocket诞生。WebSo…
使用多线程增加kafka消费能力
kafka通过一系列优化,写入和读取速度能够达到数万条/秒。通过增加分区数量,能够通过部署多个消费者增加并行消费能力。但还是有很多情况下,某些业务的执行速度实在是太慢,这个时候我们就要用到多线程去消费,提高应用机器的利用率,而不是一味的给kafka增加压力。 使用Spring创…
当我有一台云服务器时,我做了些什么
刚开始调研服务器渲染写了一个 demo,正好对诗词感兴趣,就做了一个关于诗词的站点,越写越大,demo 变成了 DEMO,总的来说还是特别简单。随手挂到了服务器下。 有了前端自然需要服务器端支持,遵循着简单方便好用易于上手的原则,在 parse-server 与 graphql…
关于 http cache 的一个小问题以及引发的思考
本文主要介绍在没有设置强制缓存时的 lm factor 算法,以及关于缓存策略的思考。以及如何使用 service worker 增强缓存。 前几天,写了一篇博客,浏览器中的二进制,其中总结了一张图。 后来,我对图片做了一些更改,又发布了上去。这时候问题出现了,图片没有更新! …
由 GraphQL 来思考如何做一个好的 API Design
目前我已经写了一年多 graphql,也时常思考和 Rest API 的不同,以及对 API Design 的启发。 他山之石可以攻玉。qraphql 一些天然的设计或者思想对写 Rest API 有很大的借鉴或参考意义。 这里总结下一些受启发的 API 设计规范。 在 gra…
JAVA多线程使用场景和注意事项
我曾经对自己的小弟说,如果你实在搞不清楚什么时候用HashMap,什么时候用ConcurrentHashMap,那么就用后者,你的代码bug会很少。 编程不是炫技。大多数情况下,怎么把代码写简单,才是能力。 多线程生来就是复杂的,也是容易出错的。一些难以理解的概念,要规避。本文…
由图片乱码所想 - 前端中的二进制以及相关操作与转换
最近工作中遇到了很多有关二进制的处理,如PDF的生成,多个PDF的打包,音频的拼接。为了数据的一致性,以及减少与后端通信的复杂度,工作量都在浏览器端。 浏览器,或者前端更多处理的是 View 层,即 UI = f(state),状态至界面的转化。但是也有很多关于二进制的处理,如…