自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘康的专栏

Enjoy learning IT !

  • 博客(97)
  • 资源 (1)
  • 收藏
  • 关注

原创 CentOS8使用国内源

先说结论,如果是阿里云的话,复制以下代码执行即可:mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backupmv /etc/yum.repos.d/CentOS-AppStream.repo /etc/yum.repos.d/CentOS-AppStream.repo.backupmv /etc/yum.repos.d/CentOS-Extras.repo /etc/yum.repos.d/CentOS-B

2020-09-18 10:30:37 3466 1

原创 Ceph性能测试(RBD、CephFS、NFS、Cache Tier)

本文是以下两篇文章的后续:探索fio参数如何选择以及全方位对比HDD和SSD性能:部署Ceph前测试磁盘性能,同时基于fio测试参数的变化深入了解fio原理和磁盘IO特点。CentOS8使用cephadm部署和配置Ceph Octopus:在CentOS8上使用cephadmin进行Ceph Octopus版本的部署,以及RBD、CephFS、NFS、RGW等的配置。准备工作首先,单独准备一台测试节点,起一个CentOS8的虚拟机,配好地址和万兆网络。确保网络带宽使用iperf3工具测试.

2020-08-19 08:44:46 14795 6

原创 CentOS8使用cephadm部署和配置Ceph Octopus

部署工具:cephadm操作系统:CentOS 8Ceph版本:Octopus操作用户:root部署前,请注意:根据目前(2020年8月)Ceph官方文档的介绍,cephadm的对各服务的支持情况如下:完全支持:MON、MGR、OSD、CephFS、rbd-mirror支持但文档不全:RGW、dmcrypt OSDs开发中:NFS、iSCSI准备除非特别说明,本节的操作在所有节点进行。部署环境:主机IP配置磁盘(除系统盘)服务ceph-mon1.

2020-08-19 08:39:07 11145 2

原创 探索fio参数如何选择以及全方位对比HDD和SSD性能

由于公司要部署一套Ceph环境,趁任务并不太着急,在部署之前先对HDD和SSD进行周密的测试,以便和部署之后的Ceph服务能力(RBD、CephFS、NFS的性能)进行对比。本文的目的是解答如下几个问题:fio工具的参数到底该如何选择,比如:多长时间的runtime更经济?bs对测试结果有何影响?numjobs和iodepth应该设置多少?正儿八经了解一下HDD和SSD的性能。本文有不少数据和图表,希望能够为有同样疑惑的朋友提供有益参考。测试HDD性能磁盘的配置如下:磁盘为7200转3.

2020-08-14 12:03:37 10243 11

原创 HAProxy配置参数详解

HAProxy简介HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不

2020-08-14 10:22:21 4658

原创 部署MySQL InnoDB集群

MySQL InnoDB Cluster简介MySQL InnoDB Cluster 是最新GA的MySQL高可用方案,利用MySQL Group Replication和MySQL Shell、MySQL Router可以轻松搭建强壮的高可用方案。MySQL Shell 是新的mysql 客户端工具支持x protocol和mysql protocol,具备JavaScript和python可编程能力,作为搭建InnoDB Cluster管理工具。MySQL Router 是访问路由转发中间件,提供

2020-08-14 10:21:00 1918 1

原创 部署高可用RabbitMQ

安装准备工作这里我们使用三个RabbitMQ节点:192.168.7.41 rabbit1192.168.7.42 rabbit2192.168.7.43 rabbit3开通端口(具体见官方文档):firewall-cmd --zone=public --add-port=4369/tcp --permanentfirewall-cmd --zone=public --add-port=5672-5673/tcp --permanentfirewall-cmd --zone=public

2020-08-14 10:19:28 500

原创 Ceph部署、基本使用和与OpenStack的集成

本文并非关于Ceph的系统介绍,没有对Ceph原理等知识的介绍,基本都是操作命令。内容参考自Ceph官方文档,以及《Ceph Cookbook》。本文内容在CentOS7上进行过几次成功的部署,没坑,所部署的Ceph版本为nautilus,部署工具为ceph-deploy。0 准备工作0.1 安装ceph-deploy以下方法二选一。0.1.1 直接安装ceph-deploy包可以到国内的源中查找rpm包直接安装,比如阿里云:rpm -Uvh https://mirrors.aliyun.co

2020-08-14 10:10:59 1207

原创 Hyperledger fabric性能测试及分析

1 Go语言性能测试写性能测试在Go语言中是很便捷的,go自带的标准工具链就有完善的支持。1.1 benchmark写benchmark测试有如下约定:benchmark也是测试,因此也是以_test.go结尾的文件;需要import testing;测试方法以Benchmark开始,并且拥有一个*testing.B参数。 *testing.B参数提供了大多数和...

2018-07-26 23:41:15 14426 3

原创 区块链性能测试工具caliper

Caliper是一个区块链性能测试框架,可用于测试不同的区块链实现。支持fabric v1.0+sawtooth 1.0+Iroha 1.0测试内容指标包括:交易成功率交易吞吐量TPS交易延迟资源消耗感受一下先准备先安装NodeJS 8.X、node-gyp、Docker、Docker-compose。git clone https://g...

2018-07-15 17:51:25 11966 10

原创 JIRA(6.x/7.x)与Confluence(6.x)反编译破解方法

以下请仅用于个人学习,商业用途请购买正版。0 说明通过反编译class文件,修改获取授权信息的代码实现。破解JIRA修改以下包中的两个文件: /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/atlassian-extras-3.2.jarcom\atlassian\extras\decoder\v2\Version2Licen...

2018-06-29 14:59:56 6099 1

原创 (20)操作符熔合——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手 | 深入理解响应式流规范 2.10 操作符熔合操作符熔合是响应式编程领域比较前沿的研究话题,目的在于通过将多个操作符以某种方式熔合起来,以达到优化的效果,进而降低开销(比如执行时间,内存)。 以下部分内容参考了 Dávid Karnok 的 Operator-fus...

2018-04-03 10:43:30 3581 8

原创 (19)Reactor Processors——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手 | 深入理解响应式流规范 2.9 ProcessorProcessor既是一种特别的发布者(Publisher)又是一种订阅者(Subscriber)。 所以你能够订阅一个Processor,也可以调用它们提供的方法来手动插入数据到序列,或终止序列。前面一直在聊响应...

2018-04-03 10:41:50 5447 2

原创 (18)Hot vs Cold——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手 | 深入理解响应式流规范 本文测试源码2.8 Hot vs Cold到目前为止,我们讨论的发布者,无论是Flux还是Mono,都有一个特点:订阅前什么都不会发生。当我们“创建”了一个Flux的时候,我们只是“声明”/“组装”了它,但是如果不调用.subscrib...

2018-03-20 09:11:27 3658 1

原创 (17)Reactor的调试——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor3快速上手 | 深入理解响应式流规范 本文测试源码2.7 调试在响应式编程中,调试是块难啃的骨头,这也是从命令式编程到响应式编程的切换过程中,学习曲线最陡峭的地方。在命令式编程中,方法的调用关系摆在面上,我们通常可以通过stack trace追踪的问题出现的位置。但是在异步的响应式编程中...

2018-03-19 14:35:45 20281

原创 (16)Reactor的测试——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor3快速上手 | 深入理解响应式流规范 本文测试源码2.6 测试在非常重视DevOps的今天,以及一些奉行TDD的团队中,自动化测试是保证代码质量的重要手段。要进行Reactor的测试,首先要确保添加reactor-test依赖。 reactor-test 用 Maven 配置 ...

2018-03-19 14:33:13 6721 1

原创 附2:Reactor 3 之选择合适的操作符——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor3快速上手 | 深入理解响应式流规范 | Reactor3操作符本节的内容来自我翻译的Reacto 3 参考文档——如何选择操作符。由于部分朋友打开github.io网速比较慢或上不去,贴出来方便大家查阅。 如果一个操作符是专属于 Flux 或 Mono 的,那么会给它注明前缀。 公共的操...

2018-03-19 14:04:06 13996 4

原创 (15)Reactor 3 Operators——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor3快速上手 | 深入理解响应式流规范 本文测试源码2.5 Reactor 3 Operators虽然响应式流规范中对Operator(以下均称作”操作符“)并未做要求,但是与RxJava等响应式开发库一样,Reactor也提供了非常丰富的操作符。2.5.1 丰富的操作符本系列...

2018-03-19 14:00:51 4582 9

原创 (14)Reactor调度器与线程模型——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor3快速上手 | 深入理解响应式流规范 | Reactor3自定义数据流 本文测试源码2.4 调度器与线程模型在1.3.2节简单介绍了不同类型的调度器Scheduler,以及如何使用publishOn和subscribeOn切换不同的线程执行环境。下边使用一个简单的例子再回忆一下: ...

2018-03-16 09:22:24 7881 7

原创 (13)Reactor的backpressure策略——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手 | 深入理解响应式流规范 | Reactor3自定义数据流2.3 不同的回压策略 许多地方也叫做“背压”、“负压”,我在《Reactor参考文档》中是翻译为“背压”的,后来在看到有“回压”的翻译,忽然感觉从文字上似乎更加符合。这一节讨论回压的问题,有两个前提:...

2018-03-15 08:54:29 6692 2

原创 附1:多线程并发方案的不足——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 本篇内容是响应式流的附录。(以下接响应式流的1.2.1.1节,关于“CPU眼中的时间”的内容。请不要单独看这一篇内容,否则有些内容可能让你摸不着头脑 0..0)多线程的方式有其不完美之处,而且有些难以驾驭——一、耗时的上下文切换CPU先生不太乐意切换进程,每次换进程的时候都需要一个小时,因为每次切换进程的时候,办公...

2018-03-14 13:18:14 4276 12

原创 (12)自定义数据流(实战Docker事件推送的REST API)——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手 | 深入理解响应式流规范2.2 自定义数据流这一小节介绍如何通过定义相应的事件(onNext、onError和onComplete) 创建一个 Flux 或 Mono。Reactor提供了generate、create、push和handle等方法,所有这些方法都使用 ...

2018-03-14 08:42:38 6212 16

原创 (11)照虎画猫深入理解响应式流规范——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | Reactor3快速上手2 响应式编程之法上一章本着“快速上手”的原则,介绍了响应式流的概念,以及Reactor 3的使用。这一章,我们基于Reactor 3的实现原理,从《响应式流规范》入手,深入了解响应式流开发库。2.1 响应式流规范现代软件对近乎实时地处理数据的需求越来越强烈,...

2018-03-11 11:19:52 9293 13

原创 (10)响应式宣言、响应式系统与响应式编程——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式编程 | 响应式流1.5 响应式系统1.5.1 响应式宣言关注“响应式”的朋友不难搜索到关于“响应式宣言”的介绍,先上图:这张图凝聚了许多大神的智慧和经验,见官网,中文版官网,如果你认可这个宣言的内容,还可以签下你的大名。虽然这些内容多概念而少实战,让人感觉是看教科书,但是字字千金,不时...

2018-03-10 11:57:52 7259

原创 (9)异步Mongo驱动的性能测试——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Spring WebFlux快速上手 | Spring WebFlux性能测试 | Spring WebClient性能测试1.4.4 同步与异步数据库驱动的性能对比许多数据库已陆续推出官方的异步驱动,在Spring Data Reactive中,已经集成了Mongo、Casandra、Redis、Couch...

2018-03-10 11:56:19 4176 3

原创 (7)Spring WebClient与RestTemplate性能对比——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Spring WebFlux快速上手 | Spring WebFlux性能测试 本文源码1.4.2 调用带有延迟的服务负载分析由于微服务架构的盛行,大型系统内服务间基于HTTP API进行调用的会相当频繁。Netflix的系统有500+的微服务,感受一下~我们的测试如下图所示,服务A调用服务B的API,...

2018-03-10 11:35:04 21611 8

原创 (6)Spring WebFlux性能测试——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:Reactor快速上手 | Spring WebFlux快速上手 本文源码1.4 从负载测试看异步非阻塞的优势前面总是“安利”异步非阻塞的好处,下面我们就实实在在感受一下响应式编程在高并发环境下的性能提升。异步非阻塞的优势体现在I/O操作方面,无论是文件I/O、网络I/O,还是数据库读写,都可能存在阻塞的情...

2018-03-09 08:46:04 29901 40

原创 (5)Spring WebFlux快速上手——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式 | Reactor快速上手1.3.3 Spring WebFluxSpring WebFlux是随Spring 5推出的响应式Web框架。1)服务端技术栈Spring提供了完整的支持响应式的服务端技术栈。如上图所示,左侧为基于spring-webmvc的技...

2018-03-08 09:57:11 158674 91

原创 (4)Reactor 3快速上手——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式流 | lambda与函数式1.3.2 ReactorReactor与Spring是兄弟项目,侧重于Server端的响应式编程,主要 artifact 是 reactor-core,这是一个基于 Java 8 的实现了响应式流规范 (Reactive Streams specification)的响应...

2018-03-08 09:54:18 46187 32

原创 (3)lambda与函数式——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要:响应式编程 | 响应式流1.3 Hello,reactive world前面两篇文章介绍了响应式编程和响应式流的特性,一味讲概念终是枯燥,还是上手敲一敲代码实在感受一下响应式编程的“手感”吧。这一节,我们先了解一下lambda与函数式(已经了解的朋友可以直接跳到1.3.2),熟悉一下如何使用Reactor...

2018-03-08 09:51:37 28675 11

原创 响应式编程库Reactor 3 Reference Guide参考文档中文版

Project Reactor 是 Spring WebFlux 的御用响应式编程库,与 Spring 是兄弟项目。 关于如何基于Spring的组件进行响应式应用的开发,欢迎阅读我的系列文章《响应式Spring的道法术器》。官方参考文档地址:http://projectreactor.io/docs/core/release/reference/ 中文翻译文档地址:http://h...

2018-03-07 15:25:59 17271 4

原创 响应式Spring的道法术器(Spring WebFlux 教程)

Spring WebFlux 2小时快速入门Spring 5 之使用Spring WebFlux开发响应式应用。lambda与函数式(15min)Reactor 3 响应式编程库(60min)Spring Webflux和Spring Data Reactive开发响应式应用(45min)通过以上内容相信可以对Spring 5.0 推出的响应式开发有了初步的体会。如果希望有更加...

2018-03-07 09:38:37 45952 26

原创 (2)响应式流——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。 前情提要: 什么是响应式编程1.2 响应式流上一节留了一个坑——为啥不用Java Stream来进行数据流的操作? 原因在于,若将其用于响应式编程中,是有局限性的。比如如下两个需要面对的问题:Web 应用具有I/O密集的特点,I/O阻塞会带来比较大的性能损失或资源浪费,我们需要一种异步非阻塞的响应式的库,而Jav...

2018-03-07 09:21:32 20752 21

原创 (1)什么是响应式编程——响应式Spring的道法术器

本系列其他文章见:《响应式Spring的道法术器》。响应式编程之道1.1 什么是响应式编程?在开始讨论响应式编程(Reactive Programming)之前,先来看一个我们经常使用的一款堪称“响应式典范”的强大的生产力工具——电子表格。举个简单的例子,某电商网站正在搞促销活动,任何单品都可以参加“满199减40”的活动,而且“满500包邮”。吃货小明有选择障碍(当然...

2018-03-06 10:54:22 43202 45

原创 使用 nvm 安装 nodejs 和 npm

使用 nvm 可以方便的进行 nodejs 的安装和版本管理。 其实最开始使用的是 n 命令,命令简洁到极致了,无奈总是安装不成功,往往下载一部分就报 curl 错误。 然后又找到这个 nvm,配合淘宝源,简单快捷~

2018-01-29 21:19:41 9746

原创 Java设计模式百例 - 访问者模式

在访问者模式(Visitor Pattern)中,通过一个访问者类,来封装对数据结构中不同类型元素的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。

2018-01-03 23:46:40 423 1

原创 Java设计模式百例 - 备忘录模式

备忘录模式(Memento pattern)又叫快照模式(Snapshot pattern),是对象的行为模式。用于保存一个对象的某个状态,以便在适当的时候恢复对象。

2018-01-02 16:01:13 610

原创 Java设计模式百例 - 状态模式

状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。

2017-12-27 20:05:05 376

原创 Java设计模式百例 - 调停者模式

调停者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性的。这种模式提供了一个调停者类,用来充当“中心化”或“总线化”的角色,与各个对象通信,从而避免了其他对象之间的互相通信,从而降低了耦合度。

2017-12-26 13:24:34 435

原创 Java设计模式百例 - 解释器模式

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。

2017-12-25 12:46:58 424

Eclipse或MyEclipse的git插件egit

Eclipse或MyEclipse的git插件egit,适用于Eclipse 3.5.2+ (Galileo)。 我的是Myeclipse10.6可用,注意:高版本的git插件无法支持该Myeclipse版本。 使用方法:下载后解压,将features、plugins文件夹和artifacts.jar、content.jar至于MyEclipse\dropins\egit\目录下,重启即可。

2014-07-28

空空如也

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

TA关注的人

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