在centOS 6和7上,vim默认开启了自动注释,当我们想复制一段文本,而这个文本内其中一行带有#号时,从这一行开始,下面就会每一行都多一个#号,非常的不方便。
可以用以下命令将其关闭::set fo-=r
再度开启的命令为::set fo=r
PS:
关闭自动缩进(这个对C/C++代码好像无效):set noautoindent
关闭C语言缩进::set nocindent
再 Shift + Insert
在centOS 6和7上,vim默认开启了自动注释,当我们想复制一段文本,而这个文本内其中一行带有#号时,从这一行开始,下面就会每一行都多一个#号,非常的不方便。
可以用以下命令将其关闭::set fo-=r
再度开启的命令为::set fo=r
PS:
关闭自动缩进(这个对C/C++代码好像无效):set noautoindent
关闭C语言缩进::set nocindent
再 Shift + Insert
Kafka专为分布式高吞吐量系统而设计。 作为一个更传统的消息代理的替代品。 与其他消息传递系统相比,Kafka具有更好的吞吐量,内置分区,复制和固有的容错能力,这使得它非常适合大规模消息处理应用程序。
在实际使用中,kafka的不同版本协议也不完全一致,不是向下兼容的,使用时需特别注意,我这里使用的是0.9.0.1的版本。
本次安装的服务器为物理机3台: CPU:双Intel(R) Xeon(R) Silver 4110 CPU @ 2.10GHz 内存:128G配置 10块SAS HDD 1T盘做raid10,挂载到/data1。
主机名 | IP | 备注 |
---|---|---|
sh-saas-k8s-kafka-online-01 | 10.16.252.33 | zookeeper,kafka |
sh-saas-k8s-kafka-online-02 | 10.16.252.39 | zookeeper,kafka |
sh-saas-k8s-kafka-online-03 | 10.16.252.40 | zookeeper,kafka |
kafka需要用到zookeeper,所以我们需要先安装zookeeper。kafka及zookeeper都需要是JAVA语言开发,需要使用JDK,推荐1.8版本。
下载:
mkdir rook
cd rook/
wget https://raw.githubusercontent.com/rook/rook/release-1.0/cluster/examples/kubernetes/ceph/common.yaml
wget https://raw.githubusercontent.com/rook/rook/release-1.0/cluster/examples/kubernetes/ceph/cluster.yaml
wget https://raw.githubusercontent.com/rook/rook/release-1.0/cluster/examples/kubernetes/ceph/operator.yaml
修改配置:
vim cluster.yaml
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
name: rook-ceph
namespace: rook-ceph
spec:
cephVersion:
image: ceph/ceph:v13 #ceph版本
allowUnsupported: false
dataDirHostPath: /data/ceph/rook #存储的目录
mon:
count: 3
allowMultiplePerNode: false
dashboard:
enabled: true
network:
hostNetwork: false
rbdMirroring:
workers: 0
annotations:
resources:
useAllNodes: true
useAllDevices: true
deviceFilter:
location:
config:
directories:
- path: /data/ceph/rook
部署:
kubectl create -f common.yaml
kubectl create -f operator.yaml
kubectl create -f cluster.yaml
ActiveMQ 使用KahaDB存储时,默认的配置是所有队列都存在一个KahaDB内。使用久了会发现一个问题,就是DB文件越来越大,几十上百G。主要原因是当队列内只要有一条消息没有被消费掉,那么ActiveMQ是不会清理KahaDB的文件的。
为此,我们可以加一个过滤器,配置成每个队列一个KahaDB,来缓解这个问题,配置如下:
<persistenceAdapter>
<mKahaDB directory="${activemq.data}/kahadb">
<filteredPersistenceAdapters>
<!-- kahaDB per destinations -->
<filteredKahaDB perDestination="true">
<persistenceAdapter>
<kahaDB ignoreMissingJournalfiles="true" checkForCorruptJournalFiles="true" checksumJournalFiles="true" />
</persistenceAdapter>
</filteredKahaDB>
</filteredPersistenceAdapters>
</mKahaDB>
</persistenceAdapter>
一个Ceph集群至少需要一个Ceph Monitor和至少2个Ceph的OSD。
最近让不同JAVA版本的容器maven打包折腾的不行,终于理出了一点头绪。在这里记录下备忘。
先明确一个概念,关高版本JDK运行maven,是可以打出低版本的JAVA目标二进制文件的。比如用jdk 1.8运行maven,可以编译1.8,1.7.1.6等的代码,并输出相应版本的二进制文件。
当然,用低版本的jdk运行maven,是不可能输出高版本的JAVA二进制文件的。
另外:maven用哪个版本的JDK运行,取决于环境变量JAVA_HOME指向的是哪个版本。
有时候经常会有个别容器占用磁盘空间特别大,这个时候就需要通过docker overlay2 目录名查找容器名:
先进入overlay2的目录,这个目录可以通过docker的配置文件(/etc/docker/daemon.json)内找到。然后看看谁占用空间比较多。
[root@sh-saas-k8s1-node-qa-04 overlay2]# du -sc * | sort -rn | more
33109420 total
1138888 20049e2e445181fc742b9e74a8819edf0e7ee8f0c0041fb2d1c9d321f73d8f5b
1066548 010d0a26a1fe5b00e330d0d87649fc73af45f9333fd824bf0f9d91a37276af18
943208 030c0f111675f6ed534eaa6e4183ec91d4c065dd4bdb5a289f4b572357667378
825116 0ad9e737795dd367bb72f7735fb69a65db3d8907305b305ec21232505241d044
824756 bf3c698966bc19318f3263631bc285bde07c6a1a4eaea25c4ecd3b7b8f29b3fd
661000 15763b72802e1e71cc943e09cba8b747779bf80fa35d56318cf1b89f7b1f1e71
575564 02eaa52e2f999dc387a9dee543028bada0762022cef1400596b5cc18a6223635
486780 4353c30611d7f51932d9af24bb1330db0fdb86faa9d9cae02ed618fa975c697a
486420 562a8874cc345b8ea830c1486c42211b288c886c5dca08e14d7057cacab984c1
486420 4f897e8cd355320b0e7ee1ecc9db5c43d5151f9afa29f1925fe264c88429be4c
448652 a8d0596d123fcc59983ce63df3f3acd40d5c930ed72874ce0a9efbc3234466de
448296 851cc4912edb9989e120acf241f26c82e9715e7fcb1d2bd19a002fcfb894f1f4
417780 20608baacae6bafcd4230a18a272857bc75703a6eefef5c9b40ba4ea19496b11
387388 43a8a76de3b5531e4c12f956f7bfcfcdb8fd38548faf20812cafa9a39813abc5