摘要:3个线程依次打印1、2、3…这个问题,常常被作为面试题,题目如下: 三个线程,一个线程负责打印1,4,7,……;第二个负责打印2,5,8,……,第三个负责打印3,6,9,……,要求在控制台中按顺序输出1,2,3,4,5,6……。 这个题目肯定是要启动3个线程的,那怎么让这3个线程“协作”按顺序打印1 阅读全文
posted @ 2020-02-29 20:40 luoxn28 阅读(608) 评论(1) 推荐(0) 编辑
摘要:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。 influxdb的单机版是开源的,而集群版是商业版,influxdb被设计 阅读全文
posted @ 2020-01-30 09:22 luoxn28 阅读(1099) 评论(0) 推荐(0) 编辑
摘要:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便。 influxdb的单机版是开源的,而集群版是商业版,influxdb被设计 阅读全文
posted @ 2020-01-28 09:50 luoxn28 阅读(1947) 评论(0) 推荐(0) 编辑
摘要:Namespace是将内核的全局资源做封装,使得每个Namespace都有一份独立的资源,因此不同的进程在各自的Namespace内对同一种资源的使用不会互相干扰。 目前Linux内核总共支持以下6种Namespace: IPC:隔离System V IPC和POSIX消息队列。 Network:隔 阅读全文
posted @ 2020-01-28 09:48 luoxn28 阅读(348) 评论(0) 推荐(0) 编辑
摘要:kubernetes(简称k8s)是一种用于在一组主机上运行和协同容器化应用程序的管理平台,皆在提供高可用、高扩展性和可预测性的方式来管理容器应用的生命周期。通过k8s,用户可以定义程序运行方式、部署升级策略、动态伸缩容,使得用户以一种更灵活可靠的方式来管理应用程序。 关于k8s,是一种对应用服务的 阅读全文
posted @ 2020-01-20 23:40 luoxn28 阅读(296) 评论(0) 推荐(0) 编辑
摘要:cgroup从2.6.4引入linux内核主线,目前默认已启用该特性。在cgroup出现之前,只能对一个进程做资源限制,比如通过sched_setaffinity设置进程cpu亲和性,使用ulimit限制进程打开文件上限、栈大小等。 cgroups是Linux下控制一个(或一组)进程的资源限制机制, 阅读全文
posted @ 2020-01-12 13:32 luoxn28 阅读(580) 评论(0) 推荐(0) 编辑
摘要:学习Docker,首先需要了解Docker基本概念,然后就开始“动手”了(也就是敲Docker命令)。Docker命令较多,这里笔者总结下常用的Docker命令,方便小伙伴们查阅。 Docker是基于go语言开发,底层技术(Linux下)主要基于cgroups、namespace以及联合文件技术实现 阅读全文
posted @ 2020-01-02 12:41 luoxn28 阅读(232) 评论(0) 推荐(0) 编辑
摘要:分区,又称为分片,是解决大数据存储的常见解决方案,大数据存储量超过了单节点的存储上限,因此需要进行分区操作将数据分散存储在不同节点上,通常每个单个分区可以理解成一个小型的数据库,尽管数据库能同时支持多个分区操作;分区引入多分区概念,可以同时对外服务提高性能。 常常和分区一并提及的概念是复制,分区通常 阅读全文
posted @ 2020-01-01 17:40 luoxn28 阅读(689) 评论(0) 推荐(0) 编辑
摘要:服务和数据的高可用性本质上是靠“复制”来解决的,比如服务通过集群部署多台机器来完成,数据通过冗余的多副本机制来完成。对于服务来说,只需要部署多个实例即可,特别是无状态服务,常见的微服务(dubbo/spring cloud)几乎都是通过集群部署对外提供服务能力,更进一步的还可使用k8s+docker 阅读全文
posted @ 2019-12-30 13:00 luoxn28 阅读(583) 评论(1) 推荐(3) 编辑
摘要:很多小伙伴所在的公司是基于Dubbo来构建技术栈的,日常开发中必不可少要写dubbo单测(单元测试),如果单测数据依赖已有的外部dubbo服务,一般是mock数据,如果数据比较复杂,其实mock数据也是一个不小的工作量。那有没有更好的单测方式来代替我们完成”mock“数据功能呢,这时可以借助dubb 阅读全文
posted @ 2019-12-22 21:40 luoxn28 阅读(610) 评论(0) 推荐(1) 编辑
摘要:本文主要讨论Netty NioEventLoop原理及实践,关于Netty NioEventLoop,首先要知道NioEventLoop是什么,为什么它会是Netty核心Reactor处理器,实现原理是什么,进而再讨论Netty对其的实现及使用上我们可以学到哪些。 EventLoop是一个React 阅读全文
posted @ 2019-12-01 10:25 luoxn28 阅读(438) 评论(1) 推荐(0) 编辑
摘要:Pipeline和ChannelHandler是Netty处理流程的重要组成部分,ChannelHandler对应一个个业务处理器,Pipeline则是负责将各个ChannelHandler串起来的“容器”,二者结合起来一起完成Netty的处理流程。 Pipeline 每个channel内部都会持有 阅读全文
posted @ 2019-11-30 19:54 luoxn28 阅读(445) 评论(0) 推荐(0) 编辑
摘要:编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等。本文就netty线程模型展开分析讨论下 : ) IO模型 BIO:同步阻塞IO模型; NIO:基于IO多路复用技术的“非阻塞同步 阅读全文
posted @ 2019-11-17 08:51 luoxn28 阅读(6944) 评论(0) 推荐(0) 编辑
摘要:编者注:Java nio 空轮询bug也就是Java nio在Linux系统下的epoll空轮询问题。 epoll机制是Linux下一种高效的IO复用方式,相较于select和poll机制来说。其高效的原因是将基于事件的fd放到内核中来完成,在内核中基于红黑树+链表数据结构来实现,链表存放有事件发生 阅读全文
posted @ 2019-11-16 18:37 luoxn28 阅读(1374) 评论(0) 推荐(0) 编辑
摘要:编者注:Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo、Rocketmq、Hadoop等,针对高性能RPC,一般都是基于Netty来构建,比如soft bolt。总之一句话,Java小伙伴们需要且有必要学会使用Nett 阅读全文
posted @ 2019-11-12 08:05 luoxn28 阅读(1177) 评论(0) 推荐(0) 编辑