自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rocky的技术博客

谈点技术,和大家共同学习

  • 博客(36)
  • 收藏
  • 关注

原创 新一代网络框架UringNet,基于最新的异步I/O

在去年的一篇文章中,笔者曾经提到了最新一代的网络I/O框架UringNet。具体内容可以参考Rings’ Power,性能“世界第一”的Web I/O框架。这是基于最新Linux内核的异步I/O组件io_uring开发的网络框架。由于采用了最新的异步框架,因此在同等硬件配置条件下,UringNet比目前性能最好的基于select/epoll的框架的网络I/O的峰值数据还要高10%以上。目前,已经将该框架开源,有兴趣的读者可以进行尝试,如果有任何问题也可以联系作者进行讨论。

2023-10-03 19:09:10 158

原创 Linux内核超级装备eBPF技术详细研究

内核大神Brendan用了比喻的说法,更加形象地介绍了这个技术。eBPF对于Linux就相当于JavaScript对于HTML一样。JavaScript给静态的HTML网站带了了动态的内容和效果,已经丰富的交互能力。JavaScript程序运行在一个虚拟机的安全沙盒中。eBPF也对Linxu内核提供了类似的功能,程序员可以通过编写字节码,从而让程序工作在内核的沙盒环境中。eBPF更像是内核中JavaScript的V8虚拟机引擎。

2022-10-07 21:42:30 1712 5

原创 高性能网络IO框架研究一:三种模式

IoT平台要求能够接入大规模的终端数据,因此对于底层的IO通信系统的性能和稳定性要求非常高。于是我对高性能IO框架进行了一些深入的研究。并将研究的内容总结出来,以供大家交流学习。

2022-08-29 17:09:11 764

原创 Netty,Nginx严重落后;网络IO框架最新性能排名

最近看了一下最新第21期(2022年7月)的的网络框架性能排名,实在有些惊讶。很多老牌的框架都名落孙山,后起之秀纷纷排到了前面。首先第一名居然是用V语言写的pico.v框架。要知道V语言是2019年才正式发布的新型编程语言。另外微软公司的框架ASPCore居然也取得了第三名的成绩。采用Java语言的国产AIO框架smart-socket排在了第四位。Golang的高性能网络IO框架gnet排在第9位。事实上,前十多位框架的差距都非常小。......

2022-08-15 00:53:13 1661

原创 最简明的Spring的IoC原理解释

如果大家进行Java企业级开发,Spring是肯定不可能忽略的存在。网上已经有一大堆介绍Spring的教程和文章了。为什么还要写一篇这样的文章呢?我觉得毕竟还是有很多的新手开始接触Java企业应用编程,通过这篇文章能够快速理解Spring的基本思想和概念,少走弯路。对于有经验的开发者,也能够给大家提供一个更加接近Spring原始动机和核心思想的解释。......

2022-08-12 01:04:27 277

原创 阿里云和AWS对比研究三——存储产品对比

​ 所谓的云计算的”传统业务“其实就是存储和计算这两大块了。总体来说这两部分是整个云计算服务的基础构件,所有的其他衍生的服务很多都需要基于存储和计算这两部分的内容。计算机技术最本质的功能就是计算和存储。......

2022-08-11 20:50:58 3666

原创 让程序员少吃些哑巴亏——认识论辩的逻辑谬误和辩驳原则

在长期的工作中,发现技术人员和产品经理,业务部门的交流中常常会比较“吃亏”。具体表现在很多情况下,自己本来有做很多工作,结果被否定为啥也没做,还找不到理由反驳。本来自己对于一个业务逻辑的认识挺清楚的,结果被人反复挑战几下就自己也不知道有没有问题了。明明看上去对方没有道理,却没法辩驳回去。其实很多情况下是程序员主要和机器打交道,逻辑都是非常严格的。但是业务和产品主要是和人打交道,他们的思维方式更多的是如何让人能够按照他们的想法做事,但是并不在意逻辑。...

2022-08-07 14:19:28 186

原创 AWS和阿里云对比研究二—阿里云

到了2019年的时候,阿里云已经能够支撑淘宝的最高峰访问压力而不会有任何明显的算力瓶颈,包括后来的历次双一一活动,都能够完美支持其上游业务。这些互联网巨头的云计算中心中运行的也不再是普通PC硬件,而重新变成了真正的企业级硬件,但是IOE的时代却已经过去了。当然,由于信息差的关系,国内的互联网公司经历过一段被IOE们“忽悠”的历史,他们将大量昂贵的企业级软硬件以打包或者一体机的方式卖给国内互联网公司。阿里在2008年的时候首次提出了去IOE的口号,而阿里云的起点也是那年的10月。......

2022-08-04 00:12:57 3255

原创 阿里云和AWS的对比研究一:AWS的起源

当时亚马逊公司为了能够响应自身和客户迅速增长的存储和计算能力的需求,投资了数十亿美元到基础设施资源的采购和系统的研发上。如果说是苹果公司开创了移动互联网的时代,那么亚马逊则开启了云计算服务的时代,彻底改变了企业采购和使用IT服务的模式。在开始介绍云计算的各种服务,以及国内一哥阿里云和全球老大亚马逊的对标产品之前,我觉得有必要回顾一下云计算这个行业是如何起源的。​亚马逊在推出云计算业务的初衷其实是服务在亚马逊销售产品的商家,但是其基础设施的提供能力,其实可以扩展到整个IT基础设施租赁和服务领域。...

2022-07-31 16:32:19 1708

原创 DDD领域驱动设计深度解析

​在软件开发中的领域指的是软件应用开发过程中涉及的知识和活动范围。在软件设计中更加通用的说法是领域层和领域逻辑,这两个概念更加常用的近义词则是业务层和业务逻辑。​对于领域驱动的基础和本质还是面向对象方法。我们首先要能够将业务逻辑涉及的概念合理拆解成对象。这是软件工程人员的基本功,如果连这一点还不能做好那其实就还没有入门现代软件设计思想。举个简单的业务场景。银行的一个储户要在银行的账户中取一笔钱,但是如果这笔钱的数额超过了他账户中的金额,那么系统需要阻止这笔交易,并发送提示或者视情况锁定账户一段时间。....

2022-07-24 02:17:02 700

原创 Vue概念快速整理

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。Vue 只关注视图层, 采用自底向上增量开发的设计。Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。Vue 的学习难度曲线相对于React来说比较平缓,不过React的灵活性是超过Vue的Vue的安装以下推荐国外比较稳定的两个 CDN。Staticfile CDN(国内) : https://cdn.staticfile.o...

2022-01-16 16:45:03 254

原创 使用Vagrant部署虚拟分布式开发和测试环境

同步更新到笔者个人博客,可以访问我的博客查看原文:https://www.rockysky.tech创建自动化配置开发环境最近由于最近研究和学习的关系,需要经常配置和搭建多个虚拟机组成的分布式系统。原来只是用虚拟机程序,比如说用Virtual box直接建立虚拟机。如果只是偶尔创建虚拟机研究的话,我觉得直接使用Hyper-V或者Virtual box还是没问题的。但是这段时间需要经常批量创建虚...

2020-03-04 11:35:55 435

原创 Zookeeper分布式系统协同器概念快速学习

原文格式可以访问:https://www.rockysky.tech分布式系统的基本操作主节点选举:在绝大多数分布式系统中,都需要进行主节点选举。主节点负责管理协调其它节点或者同步集群中其它节点的数据。为了确保集群中一直存在一个主节点,需要有主节点的选举机制。但现有主节点无法访问的时候,自动产生新的主节点接管集群管理和协调的任务宕机检测:当集群中有某个节点或者某部分节点脱离集群或者不可访问...

2020-02-28 23:57:32 290

原创 AWS的边缘计算平台GreenGrass和IoT

为什么需要有边缘计算?如今公有云和私有云平台提供的服务已经连接上了绝大多数的桌面设备和移动设备。但是更多的设备比如,车辆,工程机械,医疗设备,无人机,生产机械等等在运行的时候都会产生大量的数据,但这些数据往往不会连接到云端;有些时候其实是很难连接到云端,比如在极端条件下工作的机械或者不允许直接连接外网的工业设备往往不可能一直保持互联网连接,并实时上传数据,获得云平台的计算和存储能力。很多设...

2020-02-15 21:21:44 1714

原创 快速理解DevOps概念和意义-兼谈与SRE的关系

最近几年,由于负责的范围的变化。工作逐渐从某个IT领域或者部门,开始关注到整个IT体系的运转和管理。中间也遇到不少困难,同时也有机会去从更高的层面去学习和实践IT治理。文章主要是总结一下我对DevOps相关的理解和认识。为什么会有DevOps,解决了什么问题:现代企业其实都是通过IT系统进行管理和运营的,在变化迅速和竞争激烈的领域,IT系统的新需求数量越来越多,软件发布的频率越来越高,不少互...

2020-02-09 13:05:57 1306

原创 一步一步安装配置Ceph分布式存储集群

Ceph可以说是当今最流行的分布式存储系统了,本文记录一下安装和配置Ceph的详细步骤。提前配置工作从第一个集群节点开始的,然后逐渐加入其它的节点。对于Ceph,我们加入的第一个节点应该是Monitor,我们设置为Monitor1。我使用的操作系统是Ubuntu Server 19.10,目前没有对应的包地址,于是就是用了bionic,应该是18.04的。还有地址也换成了中科大的镜像http...

2020-02-06 13:30:51 297

原创 Docker在树莓派的安装与使用(Ubuntu Arm Server v19.10)

最近由于冠状病毒疫情的原因,只能够和小朋友家里蹲。这几天把尘封已久的那个树莓派拿出来继续捣鼓。希望能够做一个异构的分布式系统框架,于是想把Docker也安装到树莓派上,以便后期做进一步的开发和实验。我用的树莓派版本是Raspberry PI 3B,版本比较老,不过做做实验还是绰绰有余了.由于树莓派是ARM核心的CPU,具体来说就是Arm Cortex A53架构64位处理器。所以在安装Doc...

2020-02-01 17:03:20 2238

原创 树莓派通过模数转换芯片ADC0832读取LM35温度传感器数据

今天由于疫情的影响只能家里蹲,和小朋友一起玩树莓派,打算来做一个测量室温的小实验。经过几个小时的研究和测试,终于能够成功读取LM35传感器的温度数据了。本文主要记录一些这个实验的过程。使用的材料Raspberry PI 3B这个就不用多介绍了,超级流行的一块开发版。我安装的操作系统是Ubuntu for Arm Server v19.10树莓派Raspberry PI 3 引脚编号AD...

2020-01-31 12:51:49 4593 2

原创 Kafka 数据存储Topic和Partition

对于Kafka 数据的存储,我们最经常听到的两个概念就是Topic和Partition了,下面就简单介绍下他们在Kafka系统中的意思和作用。TopicTopic是Kafka中消息的逻辑分类,每个Topic可有多个PartitionPartitionPartition是Kafka中实际的数据存储单元,每个Partition可以看做一个可以被订阅和消费的消息队列。每个Topic的pa...

2020-01-18 23:30:31 1176

原创 Kafka 入门介绍

鉴于Kafka在如今大数据处理领域的重要地位,还是写一篇文章来简单介绍一下kafka吧。本文只谈基础概念,也算是个小界,大神请绕道。这篇文章主要涉及一下几个方面:什么时Kafka 熟悉Kafka的基本概念 创建一个单节点的集群Kafka是什么?简单来说,Kafka是一个高性能,可扩展和稳定的消息系统。这是一个开源的流数据处理平台。Apache Kafka最初由LinkedIn开发和维...

2020-01-18 18:13:47 296

原创 Uber实时大数据系统架构分析-Kafka-Samza-Siddhi

Uber是全球最大的打车软件公司,而且正在发展为最大的车辆共享软件公司。对于Uber这样的公司来说,对巨量的实时流数据的处理的能力是至关重要的,其实时流数据的处理能力,效率和质量直接关系到公司核心业务的服务质量和用户的满意度。不知道滴滴在技术上是不是可以和Uber一拼,这里没有可能有挑战的意味:)。这篇文章通过研究Uber程序员在Devoxx,WSO2Con,DataWorks Summit等会...

2020-01-17 01:22:31 1346 1

原创 通过DevOps的早期历史,对DevOps运动的一些思考

最近几年,很多公司的IT部门负责人和对企业信息系统比较关注的人,都在谈DevOps。那么DevOps到底是什么,一个企业如何去实施DevOps?是不是像某些不负责任的IT顾问说的那样是IT部门的万灵药?最近我在研究DevOps的时候对轰轰烈烈的DevOps的历史进行了一些了解。进而对DevOps真正希望解决的问题,并在务虚的层面对DevOps进行了一些思考。DevOps Days的发起人是Pa...

2020-01-15 23:16:45 272

原创 2020年值得去了解的12个Python Web框架

在Web开发领域,Python其实并没有像在机器学习和数据处理这个领域一样占有统治地位。不过鉴于Python在最近几年的强势地位,了解一下Python的web框架也挺有必要的。万一哪天我自己或者是客户“脑抽”了,真的要用Python来写web应用了呢?框架(Framework)让程序员的生活更容易,常用的功能和方法都打包进了框架里,直接从库里拿出来修改一下就用,确实是个省时省力,干活多快好省的好东...

2020-01-15 00:17:03 19874 8

原创 为什么敏捷项目管理只适用于IT项目

敏捷开发其实是对由于在长期的软件开发的实践中形成的一种方法论体系,现在的敏捷开发的理论体系包括了很多种方法论的。到目前为止最常用的方法有Scrum,Kanban,XP和Crystal 等等。在很多时候,有些朋友会问敏捷的概念是不是能够用在其他类型的项目上面。我觉得敏捷理论其实是为了解决在软件开发项目项目遇到的特殊问题而产生的方法论体系。并不适合推广到更加宽泛的其他工程项目的领域,当然的确也有某...

2020-01-07 23:36:42 1097

原创 早期软件工程和软件项目管理的探索

我在企业IT这个行业里已经浸泡了很多年了,从普通的程序员到IT高级经理。也经历过各种各样的IT项目。我刚刚进入这个行业的时候,其实做一个程序员还算一个挺光荣的职业。那个时候的IT项目管理其实还处在传统的软件项目管理方法论上到现代敏捷软件开发的转变过程中。早期的软件项目其实非常容易失败。当年在软件工程领域有一本非常著名的书《人月神话》。这本书的作者是Brooks博士,图灵奖获得者,北卡罗莱纳大学...

2020-01-07 15:32:18 256

原创 EOS开发系列(1):EOS开发环境的搭建和测试

 我们这个系列文章的目的是希望通过一系列的文章介绍EOS开发的知识,看完这个系列文章完成后,大家能够开发出自己的区块链小程序。开发EOS Dapp的话,主要有如下的几个步骤:安装和配置EOS开发和测试环境 创建钱包,生成私钥和创建EOS账号 编写协议代码,编译程序和ABI文件 部署协议目前,官方支持的EOS智能协议的编程语言只有C和C++,推荐的测试环境系统只有Linux和Ma...

2018-10-15 22:36:57 698 1

原创 区块链的底层原理研究(1)分布式系统 Paxos协议解析

分布式系统研究简介:随着计算及技术的发展,如今几乎所有实际应用的计算机系统都是分布式的。分布式系统的理论研究其实是从Leslie Lamport在1989年提出关于Paxos算法的论文开始的。这篇论文企图用一个寓言的方式来描述Paxos算法;但由于其理论过于超前,阐述方式非常奇特,导致其很长一段时间不被学术界接受和认可。从1996年开始,学术界才开始大量的分布式计算的理论研究,2001年Lamps...

2018-05-13 17:10:25 915 1

原创 使用Hyper-V安装Ubuntu16.04过程填坑总结

由于最近在研究Docker, 于是需要用到虚拟机,安装Ubuntu 14到Hyper-V并部署Docker。这个过程中填平了几个小坑,为了大家以后遇到类似情况节省时间,我将这几个小坑的问题和解决方法共享出来,供大家参考。

2017-05-19 01:17:53 14692

原创 Docker入门到精进系列(1) Docker介绍

第一回: Docker介绍Docker是如今最流行的容器(container)技术。其实可以说是Docker开创了IT开发和运维的容器时代,不少公司甚至推出了自己的容器方案。 狭义上的容器技术其实包括以下两个方面: 1. 应用程序镜像(image):轻量,独立,可执行的应用包,其中包括了各种需要的软件,代码,框架,程序库,环境变量和配置。 2. 容器(container) 镜像在内存中的运行实

2017-05-16 19:42:02 298

原创 基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】

CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Gecko) headless browsers, written in Javascript.PhantomJS是基于WebKit内核的headless browserSlimerJS则是基于Gecko

2017-05-16 13:09:11 310

原创 ITIL(IT Infrastructure Library)介绍系列1(IT服务管理实践综述):

论坛上感觉探讨技术问题的帖子特别多,而对一些设计和整个IT管理的最新思想讨论的文章比较少。为此我准备写一个系列,是关于现在最流行的IT服务管理框架ITIL的文章。简单介绍一下这个内容。欢迎批评指正,拍砖,砸场等。 这是本系列的第一篇文章,对ITIL做一个综述。我们大致来了解一下ITIL的框架和一些基本内容。 ⊙. 什么是ITIL: ITIL is a public framework that

2017-05-16 13:09:06 841

原创 C#的数据类型以及内存管理机制剖析(2)

1. Object类再分析:System.Object是所有.Net类的基类,包括值类型和引用类型。值类型为什么也是继承于System.Object的呢?Object不是引用类型吗?这个就涉及了.Net的一个有趣而神奇的机制--装箱和拆箱(box&un-box)。这个后面会提到。Object是所有类(class)和结构(struct)的基类。Class都是继承于Object类的,struc

2017-05-16 13:09:03 147

原创 C++语言简史

最近项目要用C++修改一个非常古老的组件,有幸看到了公司里90年代末的技术“牛人”的代码,接触那个时代的程序的思想。颇有感触,遂列文一篇以示崇敬。此文是我曾经的一篇随笔。留作纪念,缅怀那个以技术为王的软件行业的黄金年代。回顾C++的历史,有几个重量级的名字是不得不提到的。他们是Ken Thompson,Dennis Ritchie,Brian Kernighan以及Bjarne Stroust

2017-05-16 13:09:00 220

原创 PDF格式文件,日文字符复制变成方块的解决办法

今天帮朋友弄一个日本政府驻中国办事处的网站,要把PDF上的日文内容做到网站上。我把PDF里的字符copy出来,然后黏贴,结果全都变成了一个个方块或者乱码,网上搜了半天也没有找到办法,居然有人建议用OCR的。这个字符弄不下来网站可就没法做了,而且我对日语是两眼一抹黑,不认识,只能复制粘贴。我尝试了以下方法:1.安装windows日文语言包,失败2.调整字体字符集,失败3.升级Adob

2017-05-16 13:08:57 1542

原创 C#语言中的修饰符大总结

注:本文参考了网上的一些资料,但作者不可考,特向该作者表示感谢。 1. 访问修饰符 指定声明的类型和类型成员的可访问性。 (1) public:是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。对访问公共成员没有限制。 (2) private:是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结 构体中才是可访问的。 (3) in

2017-05-16 13:08:54 192

原创 C#的数据类型以及内存管理机制剖析(1)

尽管C#(事实上是基于.Net Framework的所有语言)自动处理了内存的分配和释放的问题,并且引入了垃圾收集机制,有完善的数据类型管理能力。但是对于很多情况下,了解其深层的机制是非常有用的,能够大大提高程序的效率。如今Phone7的发布,在移动设备和一些特殊应用上。聪明而又有技巧地处理内存管理和各种数据类型显得非常有用,能够更好得维护和开发程序。1. Windows内存管理机制

2017-05-16 13:08:51 256

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除