CentOS磁盘管理
背景因为刚装了台CentOS系统,打算再在系统里面装多台虚拟机,组个k8s集群玩下。机器有两块硬盘,一块250G固态,一块500G机械,系统安装在固态里,机械硬盘拿来当作虚拟机分区。
命令
fdisk
列出指定的外围设备的[分区表]状况
fdisk -l
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647[root@chobon mnt]# fdisk -lWARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.磁盘 /dev/sdb:250.1 GB, 250059350016 字节,488397168 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字 ...
RabbitMQ入门
背景在学习EventBus源码的时候,基于RabbitMQ持久化实现,顺带学习了下RabbitMQ。
RabbitMQ 是一个由erlang语言开发的遵循AMQP(Advanved Message Queue)协议的开源实现。
AMQP协议 是具有现代特征的二进制协议。是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。
应用场景异步处理
上游不关心多下游执行结果,上游执行完发送到MQ,多下游订阅MQ。
应用解耦
数据驱动的任务依赖,多个任务需要轮流执行,轮流订阅上一个任务。
流量削峰
异步返回执行时间长
系统架构核心概念RabbitMQ结构
名词释义Broker
消息队列服务器,接受客户端的连接,实现AMQP实体服务
Connection
连接,应用程序与Broker的网络连接
ConnectionFactory
Connection的制造工厂
Exchange
交换机,接收消息,根据路由键转发消息到绑定的队列
Exchange Types
交换机类型,RabbitMQ常用的Exchange Type有 fan ...
CentOS修改主机名
进到系统etc目录下
12345678910111213141516Last login: Fri Dec 13 22:02:18 2019 from 192.168.124.19[root@localhost ~]# cd /etc[root@localhost etc]# lsadjtime chkconfig.d dbus-1 favicon.png gshadow issue.net login.defs my.cnf pki rc0.d rsyslog.conf skel sysctl.d xinetd.daliases chrony.conf default filesystems gshadow- kdump.conf logrota ...
CentOS学习KVM笔记-安装篇
前言为了学习docker集群,打算在CentOS里面安装KVM虚拟机来做docker集群
KVMKVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用Linux自身的调度器进行管理,所以相对于Xen,其核心源码很少。目前KVM已成为学术界的主流VMM之一,它包含一个为处理器提供底层虚拟化 可加载的核心模块kvm.ko(kvm-intel.ko 或 kvm-amd.ko)。kvm还需要一个经过修改的QEMU 软件(qemu-kvm),作为虚拟机上层控制和界面。KVM的虚拟化需要硬件支持(如 Intel VT技术或者AMD V技术)。是基于硬件的完全虚拟化。 KVM可以运行多个其本身运行未改动的镜像的虚拟机,例如Windows,Mac OS X ,每个虚拟机都有各自的虚拟硬件,比如网卡、硬盘核图形适配器等。
kvm相关依赖包和作用qemu-kvm     主要的KVM程序包python-virtinst   创建虚拟机所需要的命 ...
EventBus学习
EventBus介绍EventBus 是一种事件发布订阅模式(观察者模式),通过 EventBus 我们可以很方便的实现解耦,将事件的发起和事件的处理的很好的分隔开来,很好的实现解耦。 微软官方的示例项目 EShopOnContainers 也有在使用 EventBus 。
发布订阅模式
这里的 EventBus 实现也是参考借鉴了微软 eShopOnContainers 项目。
在微服务中运用
EventBus整体架构
结构图
IEventBase : 事件消息定义接口,所有事件消息都继承这个接口,这个接口定义了事件消息唯一Id EventId 和事件消息发生时间 EventAt 。
IEventBase
123456public interface IEventBase{ string EventId { get; } DateTimeOffset EventAt { get; }}
IEventHandler : 定义了一个 Handle 方法来处理相应的事件
IEventHand ...
N1盒子刷CoreELEC固件
前言之前一直都搞个播放盒子想法,正好在逛恩山论坛看到N1盒子,不弱的硬件和多种固件,性价比又极高。由于N1被各大购物网站封杀,于是在某多多上买了一个来玩。N1的固件很多,做NAS的小钢炮、OMV,做影音的CoreELEC、LibreELEC,也可以刷Linux系统Armbian、Alpine、CentOS、Debian、Deepin、KaliOS,做游戏系统的sx05re、EmuELEC以及一些基于Android系统做了优化的YYF。
N1盒子Phicomm(斐讯)公司出的一款区块链路由器,当初是捆绑金融产品免费送硬件挖矿,随后公司暴雷,咸鱼上出现大量N1出售。后来有个大佬发现N1硬件不错制作了固件,从此一发不可收拾。
CoreELECCoreELEC是一个小巧的Linux发行版系统,CoreELEC是针对Amlogic芯片优化的,用于使用Amlogic芯片的盒子上运行Kodi。由于是专门优化的,有时候播放4K视频时,安卓下的Kodi会掉帧,但是CoreELEC就不会。此外还有一个叫libreelec的系统,Coreelec和libreelec都是把精简版linux与kodi集成的 ...
Win10换CentOS7
前言双十一组了台ITX,于是想把闲置的笔记本换成centos7作为服务器
准备工作下载centos镜像打开CentOS官网地址 ,选择aliyun的http://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/下载网速会好一些,然后选择CentOS-7-x86_64-DVD-1908.iso镜像
制作U盘PE这里选择老牌的PE老毛桃
坑1: [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version
由于笔记本是windows10系统直接安装CentOs7会报这个错,所以最后决定采用U盘ios镜像但是老毛桃好像不支持U盘IOS制作了,所以采用BalenaEtcher这个软件来把CentOS的IOS镜像写入U盘。
最后采用U盘镜像启动盘顺利进入安装系统界面,然后选择最小软件安装后系统顺利安装好了
系统总共装了2次,第一次安装的时候选择两个硬盘,导致系统分区分布在两个硬盘上,后续可能移除机械硬盘会比较麻烦,所以又装了一次系 ...
记学习Moq框架(一)
前言Moq(英语发音是Mock-you 或者只是mock)是一个针对.Net开发的模拟库,它从开始就完全充分利用了.NET3.5(LINQ表达式树)和C#3.0的新特性(lambda表达式)。它的目标是让模拟以一种自然的方式与现有单元测试进行集成,使它更加简单、直观,以避免开发人员被迫重写测试或高成本的学习测试框架。这使它成为了一个高生产力、类型安全、重构友好的模拟库。
应用场景现在越来越多分层架构使用依赖注入的方式来解耦层与层之间的关系,最为常见的就是业务层和数据层之间的依赖注入,业务层不再强依赖数据层对象,而是依赖数据层对象的接口,在IOC容器里面完成依赖的配置。这种解耦给单元测试带来了极大的便利,使得对业务逻辑的测试可以脱离对数据层的依赖,单元测试的粒度更小,更容易排查出问题所在。
开始Moq安装MoqMoq安装非常简单,在Nuget里面搜索moq,第一个结果便是moq框架,点击安装即可。
示例
数据层
12345678public interface IProductRepository{ void Add(Product product); void ...
记学习Moq框架(二)
记学习Moq框架(一),上一篇简单讲解了用法,这篇深入讲解用法
应用场景示例1234567891011121314public interface IProductService{ void Add(Product product); Task AddAsync(Product product); void Delete(string id); Task DeleteAsync(string id); Product Get(string id); Task<Product> GetAsync(string id);}
Mock方法调用单次方法调用1mock.Setup(p => p.Delete(It.IsAny<string>()));
同时也支持异步方法
1mock.Setup(p => p.DeleteAsync(It.IsAny<string>()));
多次方法调用1234mock.SetupSequence(p => p.Get(It.IsAny<st ...
利用Github+Docker+Hexo搭建个人博客(二)
上篇文章回顾利用github+docker+hexo搭建个人博客(一)
Docker使用生成docker镜像Dockerfile
1docker build hexo:latest .
docker build构建镜像指令hexo:latest镜像名和tag.是在当前路径下作为根路径查找Dockerfile文件,生成docker镜像
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354Sending build context to Docker daemon 117.8kBStep 1/17 : FROM alpine:latest ---> 961769676411Step 2/17 : LABEL maintainer="chobon <[email protected]>" ---> Using cache ---> 2033655adf1eStep 3/17 : ARG UID ...