Fork me on GitHub

CAT集群部署

cat集群机器列表

cat1
192.168.1.110 8080
cat2
192.168.1.111 8080
cat3
192.168.1.112 8080

部署tomcat

新建setenv.sh然后添加环境变量

1
2
3
4
5
6
7
8
9
10
11
bin/setenv.sh
export CAT_HOME=/data/apps/data/cat/
export JAVA_OPTS="-server -Xms10g -Xmx10g -Xmn8g -XX:PermSize=256m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8 -verbose:gc -Xloggc:${CATALINA_HOME}/logs/gc.log`date +%Y-%m-%d-%H-%M` -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -noclassgc"
server.xml
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="utf-8" connectionTimeout="20000"
redirectPort="8443" /> <!-- 增加 URIEncoding="utf-8" -->
CAT_HOME目录权限
chmod -R 777 $CAT_HOME

Redis Cluster集群搭建

redis cluster集群构建

10.16.76.144 6000
10.16.76.144 6001
10.16.76.144 6002

集群密码:abcdefg

配置主节点

1
2
3
4
5
6
10.16.76.144 6000
cluster meet 10.16.76.144 6001
cluster meet 10.16.76.144 6002
cluster nodes
cluster info

分配槽位

node1分配:0~5461
node2分配:5462~10922
node3分配:10923~16383

K8S常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
获取集群状态
kubectl get componentstatus
kubectl get cs
获取node节点
kubectl get nodes
获取node节点ip
kubectl get node -o json |grep "address" |grep -v 'addresses' |awk '{ print $2}' |sort -nr |uniq |cut -d'"' -f2
kubectl scale sts myapp --replication=5
kubectl patch sts myapp --repli
更新指定容器镜像版本
kubectl set image deployment/myapp busybox=busybox:v2
回滚
kubectl rollout undo deployment/myapp
扩容
kubectl scale --replicas=3 deployment myapp
缩容
kubectl scale --replicas=3 deployment myapp
观察更新状态
kubectl rollout status deployment myapp
查看历史版本
kubectl rollout history deployment myapp
查看节点的 label。
kubectl get nodes --show-labels
增加label
kubectl label node k8s-node1 app=zk
kubectl label pod myapp-01 app=myapp
kubectl get pod -Lapp
删除 label app,执行如下命令:
kubectl label node k8s-node1 app-
- 即删除。
根据标签查询节点
kubectl get node -a -l "node=kube-node"
kubectl label nodes 10.126.72.31 points=test
会给10.126.72.31这个节点添加一个标签:points=test

Nexus OSS私服的安装和迁移

Nexus私服

Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。

一般用到的仓库种类是hosted、proxy。

  1. Hosted代表宿主仓库,用来发布一些第三方不允许的组件,比如Oracle驱动、比如商业软件jar包。
  2. Proxy代表代理远程的仓库,最典型的就是Maven官方中央仓库、JBoss仓库等等。如果构建的Maven项目本地仓库没有依赖包,
    那么就会去这个代理站点去下载,那么如果代理站点也没有此依赖包,就回去远程中央仓库下载依赖,这些中央仓库就是proxy。代理站点下载成功后再下载至本机。

MySQL笔记之版本升级和权限管理

数据库升级

1. 环境说明:

一般说来,MySQL数据库的二进制数据文件,也就是my.cnf中的配置项datadir所在的位置,和我们MySQL应用程序安装的位置,是分开的,仅仅通过配置项告诉MySQL,数据库的数据存在datadir这个目录下。当程序和数据分离以后,方便我们对数据库应用程序做版本的升级或者回退。

环境举例:

  • MySQL安装目录:

    • MySQL 5.6.27: /usr/local/mysql-5.6.27-linux-glibc2.5-x86_64
    • MySQL 5.7.9 : /usr/local/mysql-5.7.9-linux-glibc2.5-x86_64
  • datadir目录:

    • /data/mysq_data/
  • 初始环境:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    shell> ll | grep mysql
    lrwxrwxrwx 1 root root 34 Nov 16 13:40 mysql -> mysql-5.6.27-linux-glibc2.5-x86_64
    drwxr-xr-x 13 root mysql 4096 Nov 16 13:37 mysql-5.6.27-linux-glibc2.5-x86_64
    drwxr-xr-x 9 7161 wheel 4096 Oct 12 00:29 mysql-5.7.9-linux-glibc2.5-x86_64
    shell> ll /data/mysql_data/
    total 13540
    -rw-rw---- 1 mysql mysql 65468 Nov 16 13:50 bin.000001
    -rw-rw---- 1 mysql mysql 1176237 Nov 16 13:50 bin.000002
    -rw-rw---- 1 mysql mysql 26 Nov 16 13:50 bin.index
    -rw-rw---- 1 mysql mysql 6882 Nov 16 13:50 error.log
    -rw-rw---- 1 mysql mysql 865 Nov 16 13:50 ib_buffer_pool
    -rw-rw---- 1 mysql mysql 12582912 Nov 16 13:50 ibdata1
    drwx------ 2 mysql mysql 4096 Nov 16 13:50 mysql
    drwx------ 2 mysql mysql 4096 Nov 16 13:50 performance_schema
    drwx------ 2 mysql mysql 4096 Nov 16 13:49 test

MySQL笔记之介绍和安装

MySQL版本选择

  1. MySQL5.6以后的版本,推荐使用官方版本。
  2. Percona:在5.6版本以后,MySQL将Percon之前优化集成到官方版本中;
  3. MariaDB:无INNODB;且核心代码较老
  4. MySQL在5.6以后不断重构源码,安装包越来越大,功能和性能在持续改进

MySQL官方网站介绍

官方网站:http://www.mysql.com

  1. Developer Zone: MySQL开发工程师板块

    • Articles: Oracle工程师自己的博客
    • Plant MySQL: 和MySQL相关从业人员的博客
    • Bugs:MySQL BugList
    • Worklog:开发记录
    • Labs:MySQL实验性项目
  2. Downloads:MySQL下载

    • Enterprise:MySQL企业版本相关,略过
    • Community:社区版,我们下载和使用社区版
      • MySQL Community Server:MySQL Server
      • MySQL Fabric : 和管理相关的工具
      • MySQL Router:路由中间件
      • MySQL Utilities:MySQL应用程序包
      • MySQL Workbench:官方图型化管理界面
      • MySQL Proxy:MySQL代理。Alpha版本,不推荐
  3. Documentation:MySQL文档

    • 官方文档 版面更改,下载离线文档在左侧Menu的下面

pyenv 管理 Python 版本

pyenv 是 Python 版本管理工具。 pyenv 可以改变全局的 Python 版本,安装多个版本的 Python, 设置目录级别的 Python 版本,还能创建和管理 virtual python environments 。所有的设置都是用户级别的操作,不需要 sudo 命令。

pyenv 主要用来管理 Python 的版本,比如一个项目需要 Python 2.x ,一个项目需要 Python 3.x 。 而 virtualenv 主要用来管理 Python 包的依赖,不同项目需要依赖的包版本不同,则需要使用虚拟环境。

SRS使用小记

SRS简介

互联网上的两种主要的分发方式:HLS和RTMP。
SRS支持HLS/RTMP两种成熟而且广泛应用的流媒体分发方式。

HLS指Apple的HLS(Http Live Streaming),本身就是Live(直播)的,不过Vod(点播)也能支持。HLS是Apple平台的标准流媒体协议,和RTMP在PC上一样支持得天衣无缝。

SRS直播将RTMP作为基本协议,以各种方式转码为RTMP后输入到SRS,输出为RTMP和HLS,支持广泛的客户端和各种应用场景。
SRS点播还在计划中,不会使用RTMP作为点播协议,点播还是文件为主,即HTTP协议为主。

SRS编译配置参数详解
https://github.com/ossrs/srs/wiki/v2_CN_Build