08 2018 档案

摘要:我一个好朋友,他在一家国内较大借贷平台做前端工程师,每天五点起床,早早的到公司,开始读一些经典的前端类的书籍。起的这么早的动力是觉得自己还没能够掌握前端的很多细节,真正在做开发的时候,依然会忘记之前看到过的东西,总是下意识的告诉自己:『可能我还处在入门水平』。 长此以往,起的越来越早,中午同事休息联 阅读全文
posted @ 2018-08-31 13:44 割肉机 阅读(181) 评论(0) 推荐(0) 编辑
摘要:du -ah --max-depth=1 这个是我想要的结果 a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度。 du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh 一、du的功能:`du` reports the 阅读全文
posted @ 2018-08-31 10:31 割肉机 阅读(2885) 评论(0) 推荐(0) 编辑
摘要:一、JVM 内存模型 根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。 1、虚拟机栈:每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每个方法会创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象引用)、操作数栈、方法 阅读全文
posted @ 2018-08-31 08:25 割肉机 阅读(2731) 评论(0) 推荐(1) 编辑
摘要:Trace跟踪参数 -verbose:gc -XX:+printGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:log/gc.log // 指定GC log的位置,以文件输出 -XX:PrintHeapAtGC // 每一次GC后,都打印堆 阅读全文
posted @ 2018-08-30 09:23 割肉机 阅读(349) 评论(0) 推荐(0) 编辑
摘要:前面学习的都是和类加载相关的知识,接下来学习的则和GC相关的知识,都是JVM的几个重点块。 零、在IDE的后台打印GC日志: 既然学习JVM,阅读GC日志是处理Java虚拟机内存问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。 既然如此,那么在IDE的控制台打印GC日志是必不可少的了。现 阅读全文
posted @ 2018-08-30 09:22 割肉机 阅读(326) 评论(0) 推荐(0) 编辑
摘要:概述 metaspace,顾名思义,元数据空间,专门用来存元数据的,它是jdk8里特有的数据结构用来替代perm,这块空间很有自己的特点,前段时间公司这块的问题太多了,主要是因为升级了中间件所致,看到大家讨论来讨论去,看得出很多人对metaspace还是模棱两可,不是很了解它,因此我觉得有必要写篇文 阅读全文
posted @ 2018-08-30 09:09 割肉机 阅读(1013) 评论(0) 推荐(0) 编辑
摘要:前言 昨天谢照东大神在群里提出一个问题:怎么查看Metaspace里具体包含的是什么,起因是他的某个服务设置了-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m,但是通过jstat -gcutil pid查看M的值为98(M的=MU/MC),即Metas 阅读全文
posted @ 2018-08-30 09:07 割肉机 阅读(15326) 评论(0) 推荐(1) 编辑
摘要:https://mp.weixin.qq.com/s/1VP7l9iuId_ViP1Z_vCA-w 某天早上,毛老师在群里问「cat 上怎么看 gc」。 好好的一个群 看到有 GC 的问题,立马做出小鸡搓手状。 之后毛老师发来一张图。 老年代内存占用情况 图片展示了老年代内存占用情况。 第一个大陡坡 阅读全文
posted @ 2018-08-30 09:00 割肉机 阅读(4161) 评论(0) 推荐(0) 编辑
摘要:一、元空间替换持久代 1.1、持久代 PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,说说为什么会内存益出:这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和和存放Ins 阅读全文
posted @ 2018-08-30 08:58 割肉机 阅读(37231) 评论(1) 推荐(6) 编辑
摘要:原文:The top data structures you should know for your next coding interview 译者:Fundebug 为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。 1976年,一个瑞士计算机科学家写一本书《A 阅读全文
posted @ 2018-08-30 08:22 割肉机 阅读(5780) 评论(0) 推荐(0) 编辑
摘要:一个目标:容器操作;两地三中心;四层服务发现;五种Pod共享资源;六个CNI常用插件;七层负载均衡;八种隔离维度;九个网络模型原则;十类IP地址;百级产品线;千级物理机;万级容器;相如无亿,K8s有亿:亿级日服务人次。 一个目标:容器操作Kubernetes(k8s)是自动化容器操作的开源平台。这些 阅读全文
posted @ 2018-08-29 18:39 割肉机 阅读(586) 评论(0) 推荐(0) 编辑
摘要:https://mp.weixin.qq.com/s/Gp6Ur7omGY6ZqDWygU2meQ Redis 是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说 Redis 是实现网站高并发不可或缺的一部分。 我们使用 Redis 时,会接触 Redis 的 5 种对象 阅读全文
posted @ 2018-08-29 18:10 割肉机 阅读(1463) 评论(0) 推荐(0) 编辑
摘要:之前讲过Redis的介绍,及使用Redis带来的优势,这章整理了一下Redis的应用场景,也是非常重要的,学不学得好,能正常落地是关键。 下面一一来分析下Redis的应用场景都有哪些。 1、缓存 缓存现在几乎是所有中大型网站都在用的必杀技,合理的利用缓存不仅能够提升网站访问速度,还能大大降低数据库的 阅读全文
posted @ 2018-08-29 18:08 割肉机 阅读(602) 评论(0) 推荐(0) 编辑
摘要:前言 一提到线程安全的并发计数器,AtomicLong 必然是第一个被联想到的工具。Atomic* 一系列的原子类以及它们背后的 CAS 无锁算法,常常是高性能,高并发的代名词。本文将会阐释,在并发场景下,使用 AtomicLong 来充当并发计数器将会是一个糟糕的设计,实际上存在不少 Atomic 阅读全文
posted @ 2018-08-29 18:07 割肉机 阅读(10233) 评论(0) 推荐(0) 编辑
摘要:alias(中文称为“别名”)允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会节省时间,而且也能提高效率,真是一举两得的好事。 基本用法: alias 的基本使用方法为:alias 新的命令='原命令 阅读全文
posted @ 2018-08-29 17:38 割肉机 阅读(2101) 评论(0) 推荐(0) 编辑
摘要:手册地址:http://wproxy.org/whistle/install.html whistle是基于Node实现的跨平台web调试代理工具,支持windows、mac、linux等所有安装了Node的操作系统,可以部署在本地机器、虚拟机或远程服务器,并通过本地网页查看或修改HTTP、HTTP 阅读全文
posted @ 2018-08-28 16:08 割肉机 阅读(669) 评论(0) 推荐(0) 编辑
摘要:阅读目录: 使用场景 算法原理 虚拟节点 代码示例 使用场景 以Redis为例,当系统需要缓存的内容超过单机内存大小时,例如要缓存100G数据,单机内存仅有16G时。这时候就需要考虑进行缓存数据分片,也即是把100G的数据拆分成多块小于单机内存的数据。例如以10G为单位,拆分10份,存储到多台机器节 阅读全文
posted @ 2018-08-28 11:30 割肉机 阅读(1183) 评论(0) 推荐(0) 编辑
摘要:阅读目录: 性能相关的数据指标 内存使用率used_memory 命令处理总数total_commands_processed 延迟时间 内存碎片率 回收key 总结 性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息。 阅读全文
posted @ 2018-08-28 11:23 割肉机 阅读(252) 评论(0) 推荐(0) 编辑
摘要:背景 Redis是单进程的,为了发挥多核的优势,我们redis集群采用在单台机器上部署多个redis实例,同时对持久化方式做了改进,采用rdb和增量的aof相结合的方式,appendfsync配置为no。那这样会有一个时段同时进行aof和rdb,当aof和rdb同时进行时,监控系统报警说某些请求Ti 阅读全文
posted @ 2018-08-28 11:10 割肉机 阅读(3231) 评论(1) 推荐(0) 编辑
摘要:Redis为了解决AOF后台重写造成的数据不一致问题,设置了AOF重写缓冲区。即使设置了no-appendfsync-on-rewrite yes也会造成短暂的主进程阻塞。原因就在于子进程完成AOF重写之后,会发送一个信号给主进程,而父进程会在这个时候调用信号处理函数,主要是将新的AOF文件替换旧的 阅读全文
posted @ 2018-08-28 10:42 割肉机 阅读(2724) 评论(1) 推荐(0) 编辑
摘要:我的上一份工作是在一家世界500强金融集团担任架构师,当时,公司的IT团队规模将近2000人。与其他IT公司一样,程序员的流动性也比较高,而作为架构师,我需要为所在的部门招聘各个层级的开发人员,当然也包括外包。在这长达5年时间里,我面试了大约400名程序员。我并没有参加过任何人力资源方面的培训,也没 阅读全文
posted @ 2018-08-28 09:43 割肉机 阅读(421) 评论(0) 推荐(1) 编辑
摘要:触发MinorGC(Young GC) 虚拟机在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代的所有对象总空间 1、如果大于的话,直接执行minorGC 2、如果小于,判断是否开启HandlerPromotionFailure,没有开启直接FullGC 3、如果开启了Hanler 阅读全文
posted @ 2018-08-22 10:59 割肉机 阅读(14688) 评论(0) 推荐(3) 编辑
摘要:在 Plumbr 从事 GC 暂停检测相关功能的工作时,我被迫用自己的方式,通过大量文章、书籍和演讲来介绍我所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是我写这篇博客的原因,我希望能清楚地解释这其中的一些疑惑。 文章要求读者熟悉 JVM 内置 阅读全文
posted @ 2018-08-22 10:45 割肉机 阅读(9920) 评论(0) 推荐(0) 编辑
摘要:首先,向数据库插入一条bjson数据 首先是定义文档,然后使用admin用户名密码登录,进入test数据库,向test数据库中插入此文档(“表名称和表中的记录”) 插入结果,查看mongoVUE如下图所示 从上图可以看出系统自带的三个数据库,local,admin,test,在加入一条记录的时候,会 阅读全文
posted @ 2018-08-21 15:57 割肉机 阅读(20609) 评论(0) 推荐(0) 编辑
摘要:>>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Memcach 阅读全文
posted @ 2018-08-21 15:52 割肉机 阅读(530) 评论(0) 推荐(0) 编辑
摘要:我这段时间在用redis,感觉挺方便的,但比较疑惑在选择内存数据库的时候到底什么时候选择redis,什么时候选择memcache,然后就查到下面对应的资料,是来自redis作者的说法(stackoverflow上面)。 You should not care too much about perfo 阅读全文
posted @ 2018-08-21 15:51 割肉机 阅读(6303) 评论(0) 推荐(1) 编辑
摘要:上周,我们举办了第二届技术沙龙,我这边主要演讲了消息队列技术的议题,现分享给大家: 在我们团队内部,随着消息应用中心(任务中心)的广泛应用,有时候我们感觉不到消息队列的存在,但这不影响消息队列在高可用、分布式、高并发架构下的核心地位。 消息队列都应用到了哪些实际的应用场景中? 一、再谈消息队列的应用 阅读全文
posted @ 2018-08-21 15:37 割肉机 阅读(379) 评论(0) 推荐(0) 编辑
摘要:JVM架构图分析 下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类、参数调优化) JVM被分为三个主要的子系统 (1)类加载器子系统(2)运行时数据区(3)执行引擎 1. 类加载器子系统 Java的动态类加载功能是由类加载器子系统处理。当它 阅读全文
posted @ 2018-08-21 14:24 割肉机 阅读(1128) 评论(0) 推荐(0) 编辑
摘要:Redis技术交流群 481804090 Redis:https://github.com/zwjlpeng/Redis_Deep_Read Redis中采用两种算法进行内存回收,引用计数算法以及LRU算法,在操作系统内存管理一节中,我们都学习过LRU算法(最近最久未使用算法),那么什么是LRU算法 阅读全文
posted @ 2018-08-20 15:32 割肉机 阅读(964) 评论(0) 推荐(0) 编辑
摘要:序言 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案。实际上这意味着你可以使用Sentinel模式创建一个可以不用人为干预而应对各种故障的Redis部署。 它的主要功能有以下几点 监控:Sentinel不断的检查master和slave是否正常的运行。 通知:如果发现某个 阅读全文
posted @ 2018-08-20 15:29 割肉机 阅读(4450) 评论(0) 推荐(0) 编辑
摘要:漏斗限流是最常用的限流方法之一,漏斗流水的速率大于灌水的速率,漏斗就永远装不满,反之水就会溢出。 所以漏斗的剩余空间就代表当前行为可以持续进行的数量,水流出的速率代表系统允许该行为的最大频率。 import time class Funnel: def __init__(self, capacity 阅读全文
posted @ 2018-08-20 14:46 割肉机 阅读(5044) 评论(0) 推荐(0) 编辑
摘要:一、场景描述 很多做服务接口的人或多或少的遇到这样的场景,由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统。 也就是面对大流量时,如何进行流量控制? 服务接口的流量控制策略:分流、降级、限流等。本文讨论下限流策略,虽然降低了服务接口的访问频率和并发量,却换取服务接 阅读全文
posted @ 2018-08-20 14:45 割肉机 阅读(11884) 评论(0) 推荐(0) 编辑
摘要:业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢道 阅读全文
posted @ 2018-08-20 14:28 割肉机 阅读(1392) 评论(0) 推荐(0) 编辑
摘要:Python分布式爬虫打造搜索引擎Scrapy精讲—将bloomfilter(布隆过滤器)集成到scrapy-redis中,判断URL是否重复 布隆过滤器(Bloom Filter)详解 基本概念 如果想判断一个元素是不是在一个集合里,一般想到的是将所有元素保存起来,然后通过比较确定。链表,树等等数 阅读全文
posted @ 2018-08-20 14:10 割肉机 阅读(1932) 评论(0) 推荐(0) 编辑
摘要:Redis Cluster本身提供了自动将数据分散到Redis Cluster不同节点的能力,分区实现的关键点问题包括:如何将数据自动地打散到不同的节点,使得不同节点的存储数据相对均匀;如何保证客户端能够访问到正确的节点和数据;如何保证重新分片的过程中不影响正常服务。这篇文章通过了解这些问题来认识R 阅读全文
posted @ 2018-08-20 13:57 割肉机 阅读(1664) 评论(0) 推荐(0) 编辑
摘要:前言 Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用。Redis 种除了常见的字符串 String、字典 Hash、列表 List、集合 Set、有序集合 SortedSet 等等之外,还有一些不常用的数据类型,这里着重介绍三个。下面话不多说了, 阅读全文
posted @ 2018-08-20 13:43 割肉机 阅读(803) 评论(1) 推荐(0) 编辑
摘要:1.HyperLoglog简介 HyperLoglog是redis新支持的两种类型中的另外一种(上一种是位图类型Bitmaps)。主要适用场景是海量数据的计算。特点是速度快。占用空间小。 同样是用于计算,HyperLoglog在适用场景方面与Bitmaps方面有什么不同呢。我个人的理解是,Bitma 阅读全文
posted @ 2018-08-20 13:32 割肉机 阅读(8715) 评论(0) 推荐(0) 编辑
摘要:比如一个网站有1亿个用户, 现在要统计一周内连续登录的用户 方法:可以用一个字节8个位表示7个人, 首位不算固定为0, 若某人周一登录则置为1, 没登录则为0 127.0.0.1:6379> set mon 01010100 OK 127.0.0.1:6379> set thu 01100101 O 阅读全文
posted @ 2018-08-20 13:08 割肉机 阅读(442) 评论(0) 推荐(0) 编辑
摘要:区块链是比特币的底层技术和基础架构,本质上是一个去中心化的数据库。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)并生成下一个区块。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密 阅读全文
posted @ 2018-08-20 10:40 割肉机 阅读(535) 评论(0) 推荐(0) 编辑
摘要:有限状态机,也称为FSM(Finite State Machine),其在任意时刻都处于有限状态集合中的某一状态。当其获得一个输入字符时,将从当前状态转换到另一个状态,或者仍然保持在当前状态。任何一个FSM都可以用状态转换图来描述,图中的节点表示FSM中的一个状态,有向加权边表示输入字符时状态的变化 阅读全文
posted @ 2018-08-20 10:23 割肉机 阅读(14005) 评论(0) 推荐(0) 编辑
摘要:延迟队列,顾名思义它是一种带有延迟功能的消息队列。 那么,是在什么场景下我才需要这样的队列呢? 背景 我们先看看以下业务场景: 当订单一直处于未支付状态时,如何及时的关闭订单,并退还库存? 如何定期检查处于退款状态的订单是否已经退款成功? 新创建店铺,N天内没有上传商品,系统如何知道该信息,并发送激 阅读全文
posted @ 2018-08-20 10:10 割肉机 阅读(2346) 评论(0) 推荐(0) 编辑
摘要:AOF定义:以日志的形式记录每个操作,将Redis执行过的所有指令全部记录下来(读操作不记录),只许追加文件但不可以修改文件,Redis启动时会读取AOF配置文件重构数据 换句话说,就是Redis重启就会根据日志内容从头到尾执行一次来完成数据的恢复工作。 Tip: 一.RDB与AOF同时开启 默认先 阅读全文
posted @ 2018-08-19 21:19 割肉机 阅读(282) 评论(0) 推荐(0) 编辑
摘要:我们都知道,父进程fork()之后返回值为子进程的pid号,而子进程fork()之后的返回值为0。那么,现在就有一个问题了,子进程fork()的返回值是怎么来的?如果子进程又执行了一遍fork()函数,那么,按着完全复制的效果,父进程应该还会再fork()一次才对啊。 其实,在fork()函数执行中 阅读全文
posted @ 2018-08-19 21:17 割肉机 阅读(2296) 评论(0) 推荐(0) 编辑
摘要:压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩 阅读全文
posted @ 2018-08-19 21:04 割肉机 阅读(357) 评论(0) 推荐(0) 编辑
摘要:0.前言 redis初始创建hash表,有序集合,链表时, 存储结构采用一种ziplist的存储结构, 这种结构内存排列更紧密, 能提高访存性能. 本文介绍ziplist数据结构 1.ziplist存储结构 ziplist并没有定义明确的结构体, 根据存储结构我们可以定义ziplist如下, 只是进 阅读全文
posted @ 2018-08-19 21:02 割肉机 阅读(516) 评论(0) 推荐(0) 编辑
摘要:案例目标 简单介绍 redis pipeline 的机制,结合一段实例说明pipeline 在提升吞吐量方面发生的效用。 案例背景 应用系统在数据推送或事件处理过程中,往往出现数据流经过多个网元;然而在某些服务中,数据操作对redis 是强依赖的,在最近的一次分析中发现:一次数据推送会对 redis 阅读全文
posted @ 2018-08-19 20:53 割肉机 阅读(936) 评论(0) 推荐(0) 编辑
摘要:当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令: KEYS pattern 官网对于KEYS命令有一个提示: KEYS 的速度非常快,例如,Redis在一个有1百万个key的数据库里面执行一次查询需要的时间是40毫秒 。但在一个大的数据库中使用它仍然可能造成性能问 阅读全文
posted @ 2018-08-19 20:50 割肉机 阅读(23595) 评论(0) 推荐(1) 编辑
摘要:SpringRedisTemplate针对这个Scan进行了封装,示例使用(针对最新库spring-data-redis-1.8.1.RELEASE): Set<Object> execute = redisTemplate.execute(new RedisCallback<Set<Object> 阅读全文
posted @ 2018-08-19 20:48 割肉机 阅读(9478) 评论(0) 推荐(2) 编辑
摘要:在写另一篇文章( link )的时候,涉及到过滤器(filter)功能。以前没有接触过,整理如下。 主要参考这两篇: http://blog.csdn.net/u011510825/article/details/51859656 http://redis.io/commands/scan 实验如下 阅读全文
posted @ 2018-08-19 20:46 割肉机 阅读(4547) 评论(0) 推荐(0) 编辑
摘要:上图对排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻地认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解释一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及关闭连接的四次握手过程。1 阅读全文
posted @ 2018-08-19 11:00 割肉机 阅读(8542) 评论(2) 推荐(0) 编辑
摘要:在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录。也就是说,一个表不能有多个主键,并且主键不能为空值。 无论是MongoDB还是MySQL,都存在着主键的定义。 对于MongoDB来说,其主键名叫”_id”,在生成数据的时候,如果用户不主动为其分配一个主键的话,Mon 阅读全文
posted @ 2018-08-19 09:52 割肉机 阅读(31854) 评论(0) 推荐(0) 编辑
摘要:阅读目录 一、第一个问题:Key-Value数据库可以有好多的Key,没错,但对MongoDB来说,大错特错 二、第二个问题:FindOne({_id:xxx})就快么? 三、第三个问题:精细的使用Update 四、2.1.1. 登录时身份认证 五、2.1.2. 使用软件时的界面控制 六、2.1.3 阅读全文
posted @ 2018-08-19 09:51 割肉机 阅读(20431) 评论(1) 推荐(1) 编辑
摘要:"零拷贝"这三个字,想必大家多多少少都有听过吧,这个技术在各种开源组件中都使用了,比如kafka,rocketmq,netty,nginx等等开源框架都在其中引用了这项技术。所以今天想和大家分享一下有关于零拷贝的一些知识。 计算机中数据传输 在介绍零拷贝之前我想说下在计算机系统中数据传输的方式。数据 阅读全文
posted @ 2018-08-19 09:27 割肉机 阅读(826) 评论(0) 推荐(1) 编辑
摘要:目录 通过 CompositeByteBuf 实现零拷贝通过 wrap 操作实现零拷贝通过 slice 操作实现零拷贝通过 FileRegion 实现零拷贝 此文章已同步发布在我的 segmentfault 专栏. 根据 Wiki 对 Zero-copy 的定义: "Zero-copy" descr 阅读全文
posted @ 2018-08-19 09:25 割肉机 阅读(884) 评论(0) 推荐(0) 编辑
摘要:熟悉TCP编程的读者可能都知道,无论是服务端还是客户端,当我们读取或者发送消息的时候,都需要考虑TCP底层的粘包/拆包机制。木章开始我们先简单介绍TCP粘包/拆包的基础知识,然后模拟一个没有考虑TCP粘包/拆包导致功能异常的案例,最后通过正确例米探讨Netty是如何解决这个问题的。如果你已经熟悉了T 阅读全文
posted @ 2018-08-19 09:19 割肉机 阅读(757) 评论(0) 推荐(0) 编辑
摘要:原文:http://blog.sina.com.cn/s/blog_4c8c58ce0102vkbo.html 基本的IO编程过程(包括网络IO和文件IO)是,打开文件描述符(windows是handler,java是stream或channel),多路捕获(Multiplexe,即select和p 阅读全文
posted @ 2018-08-19 09:16 割肉机 阅读(952) 评论(0) 推荐(0) 编辑
摘要:1 Proactor和Reactor Proactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。 I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图: 1.1 select,poll,epol 阅读全文
posted @ 2018-08-19 09:07 割肉机 阅读(373) 评论(0) 推荐(0) 编辑
摘要:1、reactor(反应器)模式 使用单线程模拟多线程,提高资源利用率和程序的效率,增加系统吞吐量。下面例子比较形象的说明了什么是反应器模式: 一个老板经营一个饭店, 传统模式 - 来一个客人安排一个服务员招呼,客人很满意;(相当于一个连接一个线程) 后来客人越来越多,需要的服务员越来越多,资源条件 阅读全文
posted @ 2018-08-19 09:05 割肉机 阅读(555) 评论(0) 推荐(0) 编辑
摘要:Lock的使用 前言:本系列将从零开始讲解java多线程相关的技术,内容参考于《java多线程核心技术》与《java并发编程实战》等相关资料,希望站在巨人的肩膀上,再通过我的理解能让知识更加简单易懂。 目录 认识cpu、核心与线程 java多线程系列(一)之java多线程技能 java多线程系列(二 阅读全文
posted @ 2018-08-18 23:31 割肉机 阅读(785) 评论(0) 推荐(0) 编辑
摘要:一、概述 谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronized(AQS)! 类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLo 阅读全文
posted @ 2018-08-18 23:29 割肉机 阅读(1084) 评论(0) 推荐(0) 编辑
摘要:近年来微服务/SOA很是流行,我们团队赶时髦,也玩了玩。虽然用的时间还不长,但也已经踩过不少坑。今天想记录下自己对边界问题的一些思考。 很多人在谈起微服务时,总是会很自豪的说,微服务为我们提供了高内聚低耦合的明显好处,因为微服务强化了模块化的概念。但是, 如何模块化,如何明确的定义模块的边界,却很少 阅读全文
posted @ 2018-08-18 23:13 割肉机 阅读(2330) 评论(0) 推荐(1) 编辑
摘要:什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环境,但是理解成容器会更好些。 ApplicationContext则是应用的容器。 Spring把Bean(object)放在容器中,需要用就通过get方法取出来。 ApplicationEve 阅读全文
posted @ 2018-08-18 18:22 割肉机 阅读(1034) 评论(0) 推荐(0) 编辑
摘要:1.单例模式(Singleton Pattern) 定义:Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。) 通用代码 阅读全文
posted @ 2018-08-18 18:17 割肉机 阅读(340) 评论(0) 推荐(0) 编辑
摘要:一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 阅读全文
posted @ 2018-08-18 18:14 割肉机 阅读(300) 评论(0) 推荐(0) 编辑
摘要:详解path和classpath的区别 详解path和classpath的区别 path的作用 path是系统用来指定可执行文件的完整路径,即使不在path中设置JDK的路径也可执行JAVA文件,但必须把完整的路径写出来,如C:\Program Files\Java\jdk1.6.0_10\bin\ 阅读全文
posted @ 2018-08-18 18:08 割肉机 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:http://www.cnblogs.com/hencehong/p/3252166.html 我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA 阅读全文
posted @ 2018-08-18 18:04 割肉机 阅读(385) 评论(0) 推荐(0) 编辑
摘要:直接举例说明各种方法: CREATE table A ( id int, name varchar(200) ) CREATE table b ( id int, name varchar(200) ) INSERT INTO b VALUES(1,'张三') INSERT INTO b VALUE 阅读全文
posted @ 2018-08-18 18:00 割肉机 阅读(10930) 评论(0) 推荐(0) 编辑
摘要:通俗的讲: A left join B 的连接的记录数与A表的记录数同 A right join B 的连接的记录数与B表的记录数同 A left join B 等价B right join A table A: Field_K, Field_A 1 a 3 b 4 c table B: Field 阅读全文
posted @ 2018-08-18 17:59 割肉机 阅读(74161) 评论(7) 推荐(4) 编辑
摘要:关键字约定 Young generation –>新生代 Tenured / Old Generation –>老年代 Perm Area –>永久代 年轻代: 所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。年轻代分三个区。一个Eden区,两个 Sur 阅读全文
posted @ 2018-08-18 17:27 割肉机 阅读(16487) 评论(0) 推荐(4) 编辑
摘要:作者|敖小剑 微服务方兴未艾如火如荼之际,在 spring cloud 等经典框架之外,Service Mesh 技术正在悄然兴起。到底什么是 Service Mesh,它的出现能带来什么,又能改变什么?本文整理自数人云资深架构师敖小剑在 QCon 2017 上海站上的演讲。 简单回顾一下过去三年微 阅读全文
posted @ 2018-08-18 15:23 割肉机 阅读(62148) 评论(3) 推荐(3) 编辑
摘要:微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布 在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文的目的就是将目前常用的布署方案做一个总结。 一、 阅读全文
posted @ 2018-08-18 15:13 割肉机 阅读(21534) 评论(0) 推荐(3) 编辑
摘要:1 背景 1.1 多语言 微服务理念是提倡不同业务使用最适合它的语言开发,现实情况也确实如此,尤其是AI的兴起,一般大型互联网公司存在 C/C++、Java、Golang、PHP、Python、NodeJs 等语言的项目,这就意味着每种语言都需要实现了相同功能服务框架。然而,服务框架的 SDK 通常 阅读全文
posted @ 2018-08-18 15:11 割肉机 阅读(2848) 评论(1) 推荐(0) 编辑
摘要:你的JVM还好吗?GC初步诊断 阿飞的博客 JVM的GC机制绝对是很多程序员的福音,它让Java程序员省去了自己回收垃圾的烦恼。从而可以把大部分时间专注业务身上,大大提高了业务开发速度,让产品需求尽快的落地抢占市场。但是也正因为如此,导致很多Java程序员对JVM和GC知之甚少,以我愚见大家对JVM 阅读全文
posted @ 2018-08-18 15:10 割肉机 阅读(743) 评论(0) 推荐(0) 编辑
摘要:推荐算法 目前主流的推荐算法主要包含内容关联算法, 协同过滤算法。 内容关联算法(Content-Based) CB算法的原理是将一个item的基本属性, 内容等信息提取出来, 抽成一个taglist, 为每个tag赋一个权重。 剩下的事情就跟一个搜索引擎非常类似了, 将所有item对应的tagli 阅读全文
posted @ 2018-08-18 13:26 割肉机 阅读(1351) 评论(0) 推荐(0) 编辑
摘要:JVM完全指南 一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间。虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理。 虚拟机管理内存数据区域划分如下图: 数据区域分类: 方法区:(Method Area) 虚拟机栈:(VM Stack) 本地方法栈 :( 阅读全文
posted @ 2018-08-17 14:53 割肉机 阅读(303) 评论(0) 推荐(0) 编辑
摘要:golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go",但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel机制来解决这一问题. golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go",但是如何处理 阅读全文
posted @ 2018-08-17 14:49 割肉机 阅读(1441) 评论(0) 推荐(0) 编辑
摘要:Channel 1. 概述 “网络,并发”是Go语言的两大feature。Go语言号称“互联网的C语言”,与使用传统的C语言相比,写一个Server所使用的代码更少,也更简单。写一个Server除了网络,另外就是并发,相对python等其它语言,Go对并发支持使得它有更好的性能。 Goroutine 阅读全文
posted @ 2018-08-17 14:44 割肉机 阅读(1095) 评论(0) 推荐(0) 编辑
摘要:作者:John Graham-Cumming. 原文点击此处。翻译:Lubia Yang(已失效) 前些天我介绍了我们对Lua的使用,implement our new Web Application Firewall. 另一种在CloudFlare (作者的公司)变得非常流行的语言是Golang。 阅读全文
posted @ 2018-08-17 14:29 割肉机 阅读(2115) 评论(0) 推荐(1) 编辑
摘要:一般来说,内存池都是采用预分配的方式,分为固定大小的和非固定大小块,固定大小的内存效率高,非固定大小灵活。同时,分为单线程和多线程版的,单线程不需要考虑并发问题。 一般内存池的实现思想:分配一块比较大多内存,把这块内存分成大小相等的块,即固定大小,第一块要保存必要的信息,比如nfirst(第一块可分 阅读全文
posted @ 2018-08-17 14:24 割肉机 阅读(2316) 评论(0) 推荐(0) 编辑
摘要:一、MVCC简介 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,只需要很小的开销,就可以实现非锁定读,从而大大提高数据库 阅读全文
posted @ 2018-08-17 13:19 割肉机 阅读(3007) 评论(0) 推荐(0) 编辑
摘要:以“前浪微博”场景为例,谈谈架构设计流程四步曲 让我们结合复杂度来源和架构设计原则,通过一个模拟的设计场景“前浪微博”,和你一起看看在实践中究竟如何进行架构设计。 我们假想一个创业公司,名称叫作“前浪微博”。前浪微博的业务发展很快,系统也越来越多,系统间协作的效率很低,例如: 用户发一条微博后,微博 阅读全文
posted @ 2018-08-17 13:08 割肉机 阅读(301) 评论(0) 推荐(0) 编辑
摘要:原创: 咖啡拿铁 1.锁? 1.1何为锁 锁在现实中的意义为:封闭的器物,以钥匙或暗码开启。在计算机中的锁一般用来管理对共享资源的并发访问,比如我们java同学熟悉的Lock,synchronized等都是我们常见的锁。当然在我们的数据库中也有锁用来控制资源的并发访问,这也是数据库和文件系统的区别之 阅读全文
posted @ 2018-08-17 13:07 割肉机 阅读(216) 评论(0) 推荐(0) 编辑
摘要:为什么说Redis是单线程的? 徐刘根 Java后端技术 今天 一、前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据” ,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器 阅读全文
posted @ 2018-08-17 09:46 割肉机 阅读(303) 评论(0) 推荐(0) 编辑
摘要:文章转载于:http://9388751.blog.51cto.com/9378751/1676821 nginx优化 突破十万并发 一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 1. worker_processes 8; nginx 进程数,建议按照cpu 数目来指定,一般为 阅读全文
posted @ 2018-08-17 08:53 割肉机 阅读(553) 评论(0) 推荐(0) 编辑
摘要:1 需求背景 该应用场景为AdMaster DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称admckid)的mapping关系,还包括了admckid的人口标签、移动端id(主要是idfa和imei)的人口标签,以及一些黑名单id、i 阅读全文
posted @ 2018-08-16 11:04 割肉机 阅读(332) 评论(0) 推荐(0) 编辑
摘要:业务背景 现有一个业务需求,需要从一批很大的用户活跃数据(2亿+)中判断用户是否是活跃用户。由于此数据是基于用户的各种行为日志清洗才能得到,数据部门不能提供实时接口,只能提供包含用户及是否活跃的指定格式的文本由业务方使用。 存在的挑战 海量数据如何尽可能用小的空间存储 如何能快速获取指定的数据 如何 阅读全文
posted @ 2018-08-16 11:04 割肉机 阅读(824) 评论(0) 推荐(0) 编辑
摘要:进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 (使用的是官方C#客户端的InsertBatch),这个测的是批量插入性能能有多少提高 3) 安全插入 阅读全文
posted @ 2018-08-16 10:35 割肉机 阅读(1382) 评论(0) 推荐(0) 编辑
摘要:千万级别:mysql 千万以及亿级别:mongdb 阅读全文
posted @ 2018-08-16 10:34 割肉机 阅读(253) 评论(0) 推荐(0) 编辑
摘要:1. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式到达服务器,这种方式可能是通过网络协议(例如 HTTP、FTP 或 POP)、通过 JMS 队列或者可能通过轮询数据库。不管请求如何到达 阅读全文
posted @ 2018-08-16 10:17 割肉机 阅读(7863) 评论(0) 推荐(0) 编辑
摘要:引 如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法 阅读全文
posted @ 2018-08-16 10:15 割肉机 阅读(257) 评论(0) 推荐(0) 编辑
摘要:表 表 4.1、innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示的定义主键则innodb如按照如下方式选择或者创建主键。首先表中是否有唯一非空索引(unique 阅读全文
posted @ 2018-08-16 09:56 割肉机 阅读(1121) 评论(0) 推荐(0) 编辑
摘要:目录 B+树 B+树的插入操作 B+树的删除操作 回到顶部 B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉?对,这也是MyISAM引擎最初参考的数据结构)演化而来,但是在实际使用过程中几乎已经没有使用B树的情况了。 B+树的定义十分 阅读全文
posted @ 2018-08-16 09:54 割肉机 阅读(6870) 评论(0) 推荐(0) 编辑
摘要:事务操作四原则: 1>原子性:简单来说——整个事务操作如同原子已经是物理上最小的单位,不可分离事务操作要么一起成功,要么一起失败。 2>一致性:倘若事务操作失败,则回滚事务时,与原始状态一致。即是一致性 3>隔离性:当你在进行事务操作时,其他事务的操作不能影响到你的事务操作也就是事务与事务之间是隔离 阅读全文
posted @ 2018-08-16 09:24 割肉机 阅读(425) 评论(0) 推荐(0) 编辑
摘要:1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 阅读全文
posted @ 2018-08-16 09:07 割肉机 阅读(1971) 评论(0) 推荐(0) 编辑
摘要:一、 MySQL存储引擎MyISAM与InnoDB如何选择 MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACK 阅读全文
posted @ 2018-08-16 09:03 割肉机 阅读(200) 评论(0) 推荐(0) 编辑
摘要:MySQL数据库的常见操作 1、创建数据库 2、创建重名的数据库以及如何查看警告信息 3、设置数据库的编码方式(默认为utf8) 4、修改和查看数据库的编码方式 5、删除数据库 6、6、删除已经删除了的数据库 1、创建数据库 花括号代表必须是要有的,中括号代表是可有可不有,竖线是代表选择,即是从花括 阅读全文
posted @ 2018-08-16 09:02 割肉机 阅读(464) 评论(0) 推荐(0) 编辑
摘要:MySQL概念学习与逐步上手操作系列(一套完整) https://www.cnblogs.com/zlslch/category/962962.html 阅读全文
posted @ 2018-08-16 09:01 割肉机 阅读(196) 评论(0) 推荐(0) 编辑
摘要:写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页 阅读全文
posted @ 2018-08-16 08:59 割肉机 阅读(5575) 评论(0) 推荐(0) 编辑
摘要:这篇文章主要是对多线程的面试问题进行总结的,罗列了40个多线程的问题。 1、 多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所 阅读全文
posted @ 2018-08-15 16:27 割肉机 阅读(519) 评论(0) 推荐(0) 编辑
摘要:不多说,直接上干货! MySQL常见的数据类型 一、数据类型是什么? 数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。 有一些数据是要存储为数字的,数字当中有些是要存储为整数、小数、日期型等... 二、MYSQL常见数据类型 MySQL支持多种 阅读全文
posted @ 2018-08-15 15:52 割肉机 阅读(513) 评论(0) 推荐(0) 编辑
摘要:消息队列 为什么写这篇文章? 博主有两位朋友分别是小A和小B: 小A,工作于传统软件行业(某社保局的软件外包公司),每天工作内容就是和产品聊聊需求,改改业务逻辑。再不然就是和运营聊聊天,写几个SQL,生成下报表。又或者接到客服的通知,某某功能故障了,改改数据,然后下班部署上线。每天过的都是这种生活, 阅读全文
posted @ 2018-08-15 15:37 割肉机 阅读(51502) 评论(17) 推荐(28) 编辑
摘要:https://www.jianshu.com/p/e55e971aebd8 本文对rabbitmq基础介绍,完全是为了下一篇rabbitmq性能测试做准备,让读者去了解我们需要测试的是什么样一个“东西”。 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同 阅读全文
posted @ 2018-08-15 15:36 割肉机 阅读(159345) 评论(5) 推荐(20) 编辑
摘要:使用MongoDB一段时间的同学肯定会发现,MongoDB往往会占用比实际数据大小多不少空间的问题。 如果利用db.stats()命令去查看,会发现MongoDB会报告几种不同的空间大小信息,如dataSize, storageSize以及fileSize。这些大小到底指的是什么意思呢?让我们来通过 阅读全文
posted @ 2018-08-15 15:24 割肉机 阅读(6855) 评论(0) 推荐(0) 编辑
摘要:首先我们查看一下npm当前版本,打开cmd 运行指令 1 npm -v 如果不是最新版本,运行一下代码即可。 运行指令 npm install -g npm 这样npm就更新到最新版本了。 如果想更新到指定版本, 运行指令 1 npm -g install npm@2.9.1 (@后跟版本号), 这 阅读全文
posted @ 2018-08-15 09:21 割肉机 阅读(749) 评论(0) 推荐(0) 编辑
摘要:You are able to apply the following solution: $ npm config set prefix /usr/local $ sudo npm install -g create-react-app $ create-react-app my-app You 阅读全文
posted @ 2018-08-15 09:04 割肉机 阅读(2551) 评论(0) 推荐(1) 编辑
摘要:关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理。 一、代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及 阅读全文
posted @ 2018-08-14 21:59 割肉机 阅读(270) 评论(0) 推荐(0) 编辑
摘要:1、查询如果慢的建立索引可以提升速度 相当于就是之前一个表数据量比较小,之后数据量大了查询就变慢,此时在经常用到的字段上加个索引,效率会翻倍很多的 2、建立索引是为了提升速度,所以避免对索引字段进行计算或类型转化 例如: where a * 5 = 10 可以 转化为 where a = 10/5 阅读全文
posted @ 2018-08-14 21:55 割肉机 阅读(2979) 评论(0) 推荐(0) 编辑
摘要:Top K问题在数据分析中非常普遍的一个问题(在面试中也经常被问到),比如: 从20亿个数字的文本中,找出最大的前100个。 解决Top K问题有两种思路, 最直观:小顶堆(大顶堆 -> 最小100个数); 较高效:Quick Select算法。 LeetCode上有一个问题215. Kth Lar 阅读全文
posted @ 2018-08-14 21:53 割肉机 阅读(613) 评论(0) 推荐(0) 编辑
摘要:摘于:http://my.oschina.net/leejun2005/blog/135085 目录:[ - ] 1、认识 PriorityQueue 2、应用:求 Top K 大/小 的元素 3、PriorityQueue 在 hadoop 中的应用: 4、REF: 1、认识 PriorityQu 阅读全文
posted @ 2018-08-14 21:52 割肉机 阅读(3827) 评论(0) 推荐(0) 编辑
摘要:1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。 3.有名管道 阅读全文
posted @ 2018-08-14 21:45 割肉机 阅读(1085) 评论(1) 推荐(0) 编辑
摘要:转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6605916.html (Java中栈、队都可以用LinkedList来实例化,栈的方法:push()/pop();队的方法:offer()/poll()) 二叉树的按层打印==两个指针last和newlast: 阅读全文
posted @ 2018-08-14 21:43 割肉机 阅读(446) 评论(0) 推荐(0) 编辑
摘要:一,问题介绍 给定一棵二叉树,按照层序遍历的顺序打印二叉树。但是要求,每一行打印一层数据。 二,算法分析 借助二叉树的层序遍历来实现。但是需要额外两个变量。一个变量用来保存当前层 还未打印的结点个数,另一个变量保存下一层待打印的结点个数。 二叉树层序遍历参考:http://www.cnblogs.c 阅读全文
posted @ 2018-08-14 21:42 割肉机 阅读(1325) 评论(0) 推荐(0) 编辑
摘要:给你机会发出声音,但是不给你机会证明高层的决定是错的 RT: 时间复杂度O(n) 空间复杂度O(1) 原理就是有指针指向父节点和当前的节点,左孩子必指向右孩子,右孩子必指向父节点的下一个节点的左孩子 void Solution::yahooTree(TreeNode *root) { if (roo 阅读全文
posted @ 2018-08-14 21:32 割肉机 阅读(322) 评论(0) 推荐(0) 编辑
摘要:本文主要讨论这么几个问题: (1)啥时候数据库和缓存中的数据会不一致 (2)不一致优化思路 (3)如何保证数据库与缓存的一致性 一、需求缘起 上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论的最多的。 上篇文 阅读全文
posted @ 2018-08-14 21:22 割肉机 阅读(2859) 评论(2) 推荐(0) 编辑
摘要:一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在 阅读全文
posted @ 2018-08-14 20:59 割肉机 阅读(29911) 评论(5) 推荐(4) 编辑
摘要:一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的主机上的。 交换机的工作原理 交换机在接收到数据帧以后,首先、会记录数 阅读全文
posted @ 2018-08-14 20:56 割肉机 阅读(775) 评论(0) 推荐(1) 编辑
摘要:网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。 我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个 阅读全文
posted @ 2018-08-14 20:53 割肉机 阅读(496) 评论(0) 推荐(1) 编辑
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 PS:转载请注明出处作者:TigerChain地址:http://www.jianshu.com/p/fa81cebac3ef本文出自TigerChain简书 React系列教程 1、React之props属性 我们想要在组件之间进行传值,那么p 阅读全文
posted @ 2018-08-14 17:48 割肉机 阅读(28391) 评论(0) 推荐(0) 编辑
摘要:react中这两个API出镜率超级高,但是一直不太懂这到底是干嘛的,有什么用;今天整理一下,方便自己查看同时方便大家。 1.constructor( ) super( )的基本含义 constructor( )——构造方法 这是ES6对类的默认方法,通过 new 命令生成对象实例时自动调用该方法。并 阅读全文
posted @ 2018-08-14 15:44 割肉机 阅读(549) 评论(0) 推荐(0) 编辑
摘要:javascript react.js react-router redux javascript react.js react-router redux javascript react.js react-router redux javascript react.js react-router 阅读全文
posted @ 2018-08-14 13:03 割肉机 阅读(317) 评论(0) 推荐(0) 编辑
摘要:react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js j 阅读全文
posted @ 2018-08-14 11:19 割肉机 阅读(779) 评论(0) 推荐(0) 编辑
摘要:react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js javascript react.js j 阅读全文
posted @ 2018-08-14 11:18 割肉机 阅读(1939) 评论(0) 推荐(0) 编辑
摘要:pm2 服务崩溃 Error: bind EADDRINUSE 发布于 1 年前 作者 zhujun24 2444 次浏览 来自 问答 Error: bind EADDRINUSE 0.0.0.0 at Object.exports._errnoException (util.js:1007:11) 阅读全文
posted @ 2018-08-14 11:01 割肉机 阅读(5077) 评论(0) 推荐(0) 编辑
摘要:这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。 这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的问题都会按照自己的理解回答一遍,不会去看网上的答案,因此可能有些 阅读全文
posted @ 2018-08-13 13:19 割肉机 阅读(1058) 评论(0) 推荐(0) 编辑
摘要:前言 CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,Doug lea大神在java同步器中大量使用了CAS技术,鬼斧神工的实现了多线程执行的安全性。 CAS的思想很简单:三个参数,一个当前内存值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相 阅读全文
posted @ 2018-08-13 13:09 割肉机 阅读(1023) 评论(0) 推荐(0) 编辑
摘要:一、CAS和synchronized适用场景 1、对于资源竞争较少的情况,使用synchronized同步锁进行线程阻塞和唤醒切换以及用户态内核态间的切换操作额外浪费消耗cpu资源;而CAS基于硬件实现,不需要进入内核,不需要切换线程,操作自旋几率较少,因此可以获得更高的性能。 2、对于资源竞争严重 阅读全文
posted @ 2018-08-13 13:07 割肉机 阅读(758) 评论(0) 推荐(0) 编辑
摘要:阅读目录: 基础 自旋锁示例 SpinLock 继续SpinLock 总结 基础 内核锁:基于内核对象构造的锁机制,就是通常说的内核构造模式。用户模式构造和内核模式构造 优点:cpu利用最大化。它发现资源被锁住,请求就排队等候。线程切换到别处干活,直到接受到可用信号,线程再切回来继续处理请求。 缺点 阅读全文
posted @ 2018-08-13 11:12 割肉机 阅读(365) 评论(0) 推荐(0) 编辑
摘要:前言 本文来自方腾飞老师《Java并发编程的艺术》第一章。 并发编程的目的是为了让程序运行得更快,但是并不是启动更多的线程就能让程序最大 限度地并发执行。在进行并发编程时,如果希望通过多线程执行任务让程序运行得更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬 件和软件的资源限 阅读全文
posted @ 2018-08-13 11:11 割肉机 阅读(3480) 评论(1) 推荐(0) 编辑
摘要:最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区 阅读全文
posted @ 2018-08-13 11:02 割肉机 阅读(224) 评论(0) 推荐(0) 编辑
摘要:2017-01-02 作者 张辉清 作者|张辉清 编辑|小智 「技术驱动」和「业务驱动」之争由来已久,就像程序员与产品经理的相爱相杀一样,无分对错,没有尽头。究竟是什么在驱动公司的发展?看完本文再给我你的答案。 写在前面 是什么在驱动公司的发展?带着这个问题,我跑去问技术,技术说“这是互联网时代,当 阅读全文
posted @ 2018-08-13 10:37 割肉机 阅读(370) 评论(0) 推荐(0) 编辑
摘要:编程迷思 本文将先说明上述几种技术分别解决了 Redis 高可用的什么问题,然后详细介绍 Redis 的持久化技术,主要是 RDB 和 AOF 两种持久化方案。 在介绍 RDB 和 AOF 方案时,不仅介绍它的作用及操作方法,同时介绍持久化实现的一些原理细节及需要注意的问题。最后,介绍在实际使用中, 阅读全文
posted @ 2018-08-13 10:35 割肉机 阅读(342) 评论(0) 推荐(0) 编辑
摘要:栈:后进先出。 队列:先进先出。 利用这个核心思想,结合集合的add和remove方法做的栈和队列如下代码所示: 主类(t1()和t2()分别演栈和队列): package cn.hncu.mySet2; import java.util.Iterator; import cn.hncu.set.P 阅读全文
posted @ 2018-08-13 10:30 割肉机 阅读(743) 评论(0) 推荐(0) 编辑
摘要:作者|Russell Cohen 译者|张卫滨 本文通过 Java 和 Golang 在底层原理上的差异,分析了 Java 为什么只能创建数千个线程,而 Golang 可以有数百万的 Goroutines,并在上下文切换、栈大小方面对两者的实现原理进行了剖析。 很多有经验的工程师在使用基于 JVM 阅读全文
posted @ 2018-08-13 09:50 割肉机 阅读(1646) 评论(0) 推荐(0) 编辑
摘要:本文的绝大部分内容转载自rerun.me这一blog,老外写的东西就是好啊。 ACTORS介绍 Anyone who has done multithreading in the past won't deny how hard and painful it is to manage multith 阅读全文
posted @ 2018-08-13 09:45 割肉机 阅读(545) 评论(0) 推荐(0) 编辑
摘要:1.Actor模型 在使用Java进行并发编程时需要特别的关注锁和内存原子性等一系列线程问题,而Actor模型内部的状态由它自己维护即它内部数据只能由它自己修改(通过消息传递来进行状态修改),所以使用Actors模型进行并发编程可以很好地避免这些问题,Actor由状态(state)、行为(Behav 阅读全文
posted @ 2018-08-13 09:42 割肉机 阅读(5757) 评论(0) 推荐(0) 编辑
摘要:最近在看《七天七并发模型》这本书,在书上介绍了 Actor 和 CSP 这两种并发模型。这两种模型很像,但还是有一些不同的地方。看完之后,比较困扰的是: 在什么场合使用哪种模型比较好呢? 在网上查了一些资料,在没有实现使用这两种模型进行编程的情况下,结合网上的资料,把自己的思考记录一下。下面先说说两 阅读全文
posted @ 2018-08-13 09:10 割肉机 阅读(1545) 评论(0) 推荐(0) 编辑
摘要:Go 语言相比Java等一个很大的优势就是可以方便地编写并发程序。Go 语言内置了 goroutine 机制,使用goroutine可以快速地开发并发程序, 更好的利用多核处理器资源。这篇文章学习 goroutine 的应用及其调度实现。 一、Go语言对并发的支持 使用goroutine编程 使用 阅读全文
posted @ 2018-08-10 18:25 割肉机 阅读(2218) 评论(0) 推荐(0) 编辑
摘要:CyclicBarrier是多线程中一个重要的类,主要用于线程组内部之间的线程的相互等待问题。 1.CyclicBarrier的工作原理 CyclicBarrier大致是可循环利用的屏障,顾名思义,这个名字也将这个类的特点给明确地表示出来了。首先,便是可重复利用,说明该类创建的对象可以复用;其次,屏 阅读全文
posted @ 2018-08-10 18:20 割肉机 阅读(2142) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch的概念 CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信(而不是用作互斥的作用)。 CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。使用一个计数器进行实现。计数器初始值为线程的数量 阅读全文
posted @ 2018-08-10 18:18 割肉机 阅读(320) 评论(0) 推荐(0) 编辑
摘要:概述 CyclicBarrier是一个同步工具类,它允许一组线程互相等待,直到到达某个公共屏障点。与CountDownLatch不同的是该barrier在释放等待线程后可以重用,所以称它为循环(Cyclic)的屏障(Barrier)。 CyclicBarrier支持一个可选的Runnable命令,在 阅读全文
posted @ 2018-08-10 18:18 割肉机 阅读(198) 评论(0) 推荐(0) 编辑
摘要:等待某一个指定的事件发生后,才让多个等待的线程继续执行,以下是我能想到的几个方法,欢迎讨论、指正。 1.闭锁CountDownLatch 闭锁是典型的等待事件发生的同步工具类,将闭锁的初始值设置1,所有线程调用await方法等待,当事件发生时调用countDown将闭锁值减为0,则所有await等待 阅读全文
posted @ 2018-08-10 18:16 割肉机 阅读(1548) 评论(0) 推荐(0) 编辑
摘要:synchronized 修饰在 static方法和非static方法的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法。也可以synchronized来修饰方法里面的一个语句块。那么,在static方法和非static方法前面加synch 阅读全文
posted @ 2018-08-10 17:51 割肉机 阅读(10412) 评论(0) 推荐(0) 编辑
摘要:1、Semaphore概念 Semaphore是Java1.5之后提供的一种同步工具,Semaphore可以维护访问自身线程个数,并提供了同步机制。使用Semaphore可以控制同时访问资源的线程个数,通过 acquire() 获取一个许可,如果没有就等待,而release() 释放一个许可。 Se 阅读全文
posted @ 2018-08-10 17:50 割肉机 阅读(865) 评论(0) 推荐(0) 编辑
摘要:鲍永成 京东基础架构部技术总监, DevOps 标准核心编写专家 前言 JDOS 就是京东数据中心操作系统,随着数据中心规模不断的扩大,我们需要对数据中心做综合的考虑。所以一开始就先说数据中心的层面,大家知道数据中心里面有服务器、网络、基础软件,还有就是部署业务系统。 随着技术的发展,有一些集群管理 阅读全文
posted @ 2018-08-10 14:34 割肉机 阅读(2675) 评论(0) 推荐(0) 编辑
摘要:冯嘉 作者 | 冯嘉 近日,Apache RocketMQ 4.3 版本宣布发布,此次发布不仅包括提升性能,减少内存使用等原有特性增强,还修复了部分社区提出的若干问题,更重要的是该版本开源了社区最为关心的分布式事务消息,而且实现了对外部组件的零依赖。接下来,本文将详细探秘 RocketMQ 事务消息 阅读全文
posted @ 2018-08-10 14:01 割肉机 阅读(372) 评论(0) 推荐(0) 编辑
摘要:要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运行时识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。 1、Class对象 理解RTTI在Java中的工作原理,首先需要知道类型 阅读全文
posted @ 2018-08-10 13:24 割肉机 阅读(768) 评论(0) 推荐(0) 编辑
摘要:前言 不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。 阅读全文
posted @ 2018-08-10 10:31 割肉机 阅读(280) 评论(0) 推荐(0) 编辑
摘要:附录:https://www.cnblogs.com/lanweijava/p/9435138.html 在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchroni 阅读全文
posted @ 2018-08-10 10:24 割肉机 阅读(560) 评论(0) 推荐(0) 编辑
摘要:一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management Syst 阅读全文
posted @ 2018-08-10 09:34 割肉机 阅读(524) 评论(0) 推荐(0) 编辑
摘要:manong 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化。 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级以下,字符串为主的表在 五百万以下是没有太大问题的。而事实上很多时 阅读全文
posted @ 2018-08-10 09:20 割肉机 阅读(220) 评论(0) 推荐(0) 编辑
摘要:关于系统性能优化涉及的内容非常多,我会分几篇文章来分享,这次分享下定位系统层面问题的常用方法。 系统性能定义 Throughout 吞吐量 (系统每秒钟可以处理的请求数) Latency 延迟 (系统处理一个请求的延迟) Usage 资源利用率 吞吐量和延迟的关系 吞吐量越高,延迟会越大。因为请求量 阅读全文
posted @ 2018-08-10 09:16 割肉机 阅读(563) 评论(0) 推荐(0) 编辑
摘要:简介 prometheus 是一个开源的系统监控和告警的工具包,其采用pull方式采集时间序列,通过http协议传输。 架构 每个应用都通过javaagent向外提供一个http服务暴露出自己的JMX信息。当应用启动的时候就会向consul注册服务,注册成功后,prometheus就能把这个应用加入 阅读全文
posted @ 2018-08-09 15:26 割肉机 阅读(4808) 评论(0) 推荐(0) 编辑
摘要:之前在业务中遇到服务器负载过高问题,由于没有监控,一直没发现,直到业务方反馈网站打开速度慢,才发现问题。这样显得开发很被动。所以是时候搭建一套监控系统了。 由于是业余时间自己捯饬,所以神马业务层面的监控先不做,先用最简单的方式接入系统层面的监控,例如服务器、数据库等。 调研了一段时间,发现Prome 阅读全文
posted @ 2018-08-09 14:51 割肉机 阅读(17877) 评论(0) 推荐(0) 编辑
摘要:最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞、评论、关注等操作时,需要由服务器向用户实时地推送一条消息。最终完成的项目地址为:socket-message-push,这里将介绍一下实现的思路及部分代码。 最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用 阅读全文
posted @ 2018-08-09 14:31 割肉机 阅读(3382) 评论(0) 推荐(1) 编辑
摘要:HTTP vs WebSocket 那天和boss聊天,不经意间提到了Meteor,然后聊到了WebSocket,然后就有了以下对话,不得不说,看问题的方式不同,看到的东西也会大不相同。 A:Meteor是一个很新的开发框架,我觉得它设计得十分巧妙。 B:怎么个巧妙之处? A:它的前后端全部使用JS 阅读全文
posted @ 2018-08-09 14:21 割肉机 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:上篇介绍了HTTP1.1协议的基本内容,这篇文章将继续分析WebSocket协议,然后对这两个进行简单的比较。 WebSocket WebSocket协议还很年轻,RFC文档相比HTTP的发布时间也很短,它的诞生是为了创建一种「双向通信」的协议,来作为HTTP协议的一个替代者。那么首先看一下它和HT 阅读全文
posted @ 2018-08-09 14:20 割肉机 阅读(520) 评论(0) 推荐(0) 编辑
摘要:socket socket.io一个是基于Nodejs架构体系的,支持websocket的协议用于实时通信的一个软件包。 socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现 依赖的外部包 express、socket.io 安装 npm in 阅读全文
posted @ 2018-08-09 14:18 割肉机 阅读(1509) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/xiezhengcai/p/3957314.html 要理解socket.io ,不得不谈谈websocket 在html5之前,因为http协议是无状态的,要实现浏览器与服务器的实时通讯,如果不使用 flash、applet 等浏览器插件的话,就 阅读全文
posted @ 2018-08-09 14:10 割肉机 阅读(2881) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/xiezhengcai/p/3956401.html 1. 服务端 io.on('connection',function(socket)); 监听客户端连接,回调函数会传递本次连接的socket io.sockets.emit('String', 阅读全文
posted @ 2018-08-09 14:08 割肉机 阅读(280) 评论(0) 推荐(0) 编辑
摘要:1、WebSocket是什么? WebScoket是一种让客户端和服务器之间能进行双向实时通信的技术。它是HTML最新标准HTML5的一个协议规范,本质上是个基于TCP的协议,它通过HTTP/HTTPS协议发送一条特殊的请求进行握手后创建了一个TCP连接,此后浏览器/客户端和服务器之间便可以通过此连 阅读全文
posted @ 2018-08-09 14:05 割肉机 阅读(7349) 评论(0) 推荐(1) 编辑
摘要:前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis。然后自然而然就把redis也挪到我们这边优化了 -_-! 。在这次优化过程中也是再次深刻感受到redis的各种坑 现象: 大数据报表周 阅读全文
posted @ 2018-08-09 11:16 割肉机 阅读(15703) 评论(2) 推荐(0) 编辑
摘要:使用truss、strace或ltrace诊断软件问题 2008-07-05 16:25 使用truss、strace或ltrace诊断软件问题 进程无法启动,软件运行速度突然变慢,程序的"Segment Fault"等等都是让每个Unix系统用户头痛的问题,本文通过三个实际案例演示如何使用trus 阅读全文
posted @ 2018-08-08 14:40 割肉机 阅读(571) 评论(0) 推荐(0) 编辑
摘要:1) 如何使用strace+pstack利器分析程序性能?http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html此文有详细介绍怎么用strace和pstack2)Linux下多线程查看工具(pstree、ps、pstack)? 阅读全文
posted @ 2018-08-08 14:37 割肉机 阅读(450) 评论(0) 推荐(0) 编辑
摘要:近两年微服务架构流行,主流互联网厂商内部都已经微服务化,初创企业虽然技术积淀不行,但也通过各种开源工具拥抱微服务。再加上容器技术赋能,Kubernetes又添了一把火,微服务架构已然成为当前软件架构设计的首选。但微服务化易弄,服务治理难搞! 一、微服务的“痛点” 微服务化没有统一标准,多数是进行业务 阅读全文
posted @ 2018-08-08 13:55 割肉机 阅读(43130) 评论(0) 推荐(5) 编辑
摘要:以下内容整理自:http://blog.csdn.net/wtyvhreal/article/details/44176369 线程:是指进程中的一个执行流程。 线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内 阅读全文
posted @ 2018-08-08 09:19 割肉机 阅读(3713) 评论(0) 推荐(0) 编辑
摘要:一道号称“史上最难”的java面试题引发的 1.史上最难的题 最近偶然间看见一道名为史上最难的java面试题,这个题让了我对线程安全的有了一些新的思考,给大家分享一下这个题吧: 推荐大家先别急着看下面的答案,试着看看这个题的答案是什么?刚开始看这个题的时候,第一反应我擦嘞,这个是哪个老铁想出的题,如 阅读全文
posted @ 2018-08-08 09:12 割肉机 阅读(142) 评论(0) 推荐(0) 编辑
摘要:导语:API Gateway是实现微服务重要的组件之一。面对诸多的开源API Gateway,如何进行选择也是架构师需要关注的焦点。本文作者对几个较大的开源API Gateway进行了压力测试,对于架构师来说,相信可以提供不少帮助。 过去一段时间,OpsGenie的员工数量和产品特性都经历了快速发展 阅读全文
posted @ 2018-08-03 08:59 割肉机 阅读(13650) 评论(0) 推荐(0) 编辑
摘要:前言 最近懒成一坨屎,学不动系列一波接一波,大多还都是底层原理相关的。上周末抽时间重读了周志明大湿的 JVM 高效并发部分,每读一遍都有不同的感悟。路漫漫,借此,把前段时间搞着玩的秒杀案例中的分布式锁深入了解一下。 案例介绍 在尝试了解分布式锁之前,大家可以想象一下,什么场景下会使用分布式锁? 单机 阅读全文
posted @ 2018-08-02 11:15 割肉机 阅读(375) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示