微服务运维难维护?数据基础架构公司Segment宣布放弃微服务构架 很多人可能已经知道微服务已成为明日黄花,它曾经作为最佳实践为Segment公司起到很大作用,但是并不适合所有场所。
简单说,微服务是将后台业务拆分成很多各自功能独立的面向服务软件架构,其模块化、减少测试压力、功能组合、开发团队自治等优点广为人知。与之对应的是单体式架构,即用单个服务为测试部署扩展提供所有功能模块。
2017年早些时候,Segment产品开发遇到了问题。如果在每个部门继续采用微服务,不但不会加速开发过程,反而会落入复杂的泥潭。这种架构的优势反而变成了负担。最终,团队发现需要三个全职工程师才能确保这套系统运转,这种无法承受的负担必须改变。这篇博文就是回顾如何将产品和团队需求更好嵌入开发过程的回顾。
在嵌入式设备树莓派上编译QuickJS教程:一个C语言编写的极简JavaScript引擎 QuickJS 是一个完全由C语言编写的极小型JavaScript引擎,作者是大名鼎鼎的FFmpeg和QEMU的创建者Fabrice Bellard以及C专家Charlie Gordon。QuickJS采用开源MIT协议,不限制商业用途。它是一个“小而完整的JavaScript引擎”,支持最新的ES2019语言规范。
因为其复杂度要远远低于用C++编写的Google的V8和Mozilla的SpiderMonkey,因此非常适合在嵌入式设备上使用。
因为完全由C语言编写,可以很方便地集成到一些著名的C语言程序比如,替换掉Redis和Nginx中的Lua脚本。
由于可以单独将JS编绎成可执行文件,应用场景更加广泛。
判断是否为对象typeof abc == 'object' 与 instanceof 性能比较 我们通常使用 typeof obj == 'object' 来判断变量是否为对象。但也可通过 obj instanceof Object 来判断,那么二者的性能如何?
我们写一个简单的测试用例,分别试100万次,结果使用 instance 比 typeof 快近10倍。
Node.JS中用concat和push连接两个或多个数组的性能比较 JavaScript中连接两个数组成一旧新数组,常用concat方法,比如:
借用apply方法 ,push、splice也可和来连接数组。因为push没有创建新数组,如果想要保挂原对象的引用,可使用push方法。
那么两者在node.js的性能如何? 我们做了一组测试数据,两种分别测试100万次。
css去掉table的td单元格的间距cellspacing,设置隔行显示不同背景颜色 单元隔间隔对应table标签上的 cellpadding 和 cellspacing,这里可以用CSS实现,cellpadding 对应 td 的 padding。 去除边框 cellspacing 的间隔有以下两种方法:
border-collapse: collapse
border-spacing: 0
jQuery用outterHtml获取相对innerHTML父一级包含其自身的html代码内容 jQuery可以用html()来获取对应的innerHTML内容,但有时我们要获取其自身html代码,则可用原生的outterText, outterHtml属性。可以jquery对象可写成:
$('.grid').prop('outerHTML')
$('.grid').prop('outerText') JavaScript中将字符串true或false转换成Boolean类型 JavaScript中可以使用parseInt方法将字符串转换成整型。但布尔型没有相关方法。可使用JSON解析:
JSON.parse("true"); jQuery用$.prop,$.attr方法来获取或设置checkbox当前选中状态 使用$.fn.attr来获取或设置html的checkbox元素的状态。但是界面上此复选框并没有反映到界面上,因为这个只是改变html的DOM结构,并不改变当前选中状态。这时使用 prop 即可
$('#chb_data_binding').prop('checked', true)
$('#chb_data_binding').prop('checked')
> true Redis集群,不再雾里看花 注* Antirez是Redis项目的作者和主要维护者,译自其博客有删减; Redis是目前最流行的键值(key-value)数据库,数据集以异步方式从内存同步到硬盘。由于其基于内存特性,性能极好,特别适合应对高并发场合,在NodeJS应用中多用来存储持久化的Session。
我第一次提交有关Redis集群的代码大约在2011年3月29。但我只是合并了别人的一个提交请求:集群分支的历史日志已经不可用了,因为它那一塌糊涂的“正在进行中的”提交,只是为了预留一些API和互动的接口。
现在这个项目已经4岁了。是整个Redis项目历史的三分之二。今天,我准备发布一个Redis3.0.0的候选版(RC),这是正式支持群集的第一个版本。
redis、memcache和mongodb各自的优缺点是什么,怎么选择呢? redis、memcahce 比较相似,但与 mongodb 完全不同,几乎没有可比性。
总的来说 redis/memcache 是基于内存的,讲究的是性能,多用作缓存层,比如说存放session。而 mongodb 是面向文档的,存储的是类似JSON的非结构化数据,查询起来非常方便,开发效率高,比较类似传统SQL关系型数据库。
普遍认为其性能明显好于MemoryCache。所以这里主要比较 Redis 和 Mongodb。