• 中间件kingshard入门(一):基本安装


    这里将进行简单的部署和配置,在配置之前,需要先了解一定的拓扑情况

    类目           属性                备注

    kingshard  10.11.10.214  无

    master       10.11.10.215 主库

    slave         10.11.10.216  读库

    详细了解地址 https://github.com/flike/kingshard/blob/master/README_ZH.md

    安装 

    由于kingshard使用的是go语言开发。故此需要在kingshard这台机器中安装对应的go支持的编译软件(go版本为1.6以上)

    [root@gzsd-ks01-101110214 ~]# yum -y install go git
    [root@gzsd-ks01-101110214 ~]# mkdir /data/download
    [root@gzsd-ks01-101110214 ~]# cd /data/download/
    [root@gzsd-ks01-101110214 download]# git clone https://github.com/flike/kingshard.git /etc/kingshard
    [root@gzsd-ks01-101110214 download]# cd /etc/kingshard/
    [root@gzsd-ks01-101110214 kingshard]# source ./dev.sh 
    [root@gzsd-ks01-101110214 kingshard]# make

    到这里,编译完成,对配置文件进行修改

    [root@gzsd-ks01-101110214 kingshard]# cp etc/ks.yaml etc/ks.yaml.bak
    [root@gzsd-ks01-101110214 kingshard]# vi etc/ks.yaml

    # kingshard的地址和端口
    addr : 0.0.0.0:9696

    # prometheus server listen addr
    prometheus_addr : 0.0.0.0:7080

    # 连接kingshard的用户名和密码的用户列表
    user_list:
    -
    user : root
    password : root
    # -
    # user : kingshard 注册一个账号
    # password : kingshard

    #kingshard的web API 端口
    web_addr : 0.0.0.0:9797
    #调用API的用户名和密码
    web_user : admin
    web_password : admin

    # if set log_path, the sql log will write into log_path/sql.log,the system log
    # will write into log_path/sys.log
    # log_path : /Users/flike/log

    # log级别,[debug|info|warn|error],默认是error
    log_level : debug

    # 打开SQL日志,设置为on;关闭SQL日志,设置为off
    log_sql: on

    #如果设置了该项,则只输出SQL执行时间超过slow_log_time(单位毫秒)的SQL日志,不设置则输出全部SQL日志
    #slow_log_time : 100

    # the path of blacklist sql file
    # all these sqls in the file will been forbidden by kingshard
    #blacklist_sql_file: /Users/flike/blacklist

    # 只允许下面的IP列表连接kingshard,如果不配置则对连接kingshard的IP不做限制。
    # support ip and ip segment
    #allow_ips : 127.0.0.1,192.168.15.0/24

    # kingshard使用的字符集,如果不设置该选项,则kingshard使用utf8作为默认字符集
    proxy_charset: utf8mb4

    # node is an agenda for real remote mysql server.
    nodes :
    -
    #node节点名字
    name : node1

    # 连接池中最大空闲连接数,也就是最多与后端DB建立max_conns_limit个连接
    max_conns_limit : 32
    # kingshard连接该node中mysql的用户名和密码,master和slave的用户名和密码必须一致 grant option设置的密码需要一致

    user : root
    password : root

    # master的地址和端口
    master : 192.168.248.130:3306

    # slave的地址、端口和读权重,@后面的表示该slave的读权重。可不配置slave
    #slave : 192.168.59.101:3307@2,192.168.59.101:3307@3
    slave : 192.168.248.131:3306@3
    #down_after_noalive : 32
    #kingshard在300秒内都连接不上mysql,kingshard则会下线该mysql
    down_after_noalive : 32

    # schema defines sharding rules, the db is the sharding table database.
    schema_list :
    -
    #schema的所属用户名
    user: root
    #分表分布的node名字
    nodes: [node1]
    #所有未分表的SQL,都会发往默认node。
    default: node1
    shard:
    -
    #分表使用的db
    db : kingshard
    #分表名字
    table: test_shard_hash
    #分表字段
    key: id
    #分表分布的node
    nodes: [node1]
    #分表类型
    type: hash
    #子表个数分布,表示node1有4个子表,
    locations: [4]

    -
    db : hidb
    table: test_hash
    key: id
    nodes: [node1]
    type: hash
    locations: [4]
    -
    db : kingshard
    table: test_shard_range
    key: id
    type: range
    nodes: [node1]
    locations: [4]
    #个子表最多包好10000条记录。即子表1对应的id为[0,10000),子表2[10000,20000)....
    table_row_limit: 10000
    # -
    # db : kingshard
    # table: test_shard_time
    # key: id
    # nodes: [node1]
    # type: hash
    # locations: [2]
    # -
    # db : kingshard
    # table: test_shard_month
    # key: dtime
    # type: date_month
    # nodes: [node1]
    # date_range: [201603-201605,201609-201612]
    # -
    # db : kingshard
    # table: test_shard_day
    # key: mtime
    # type: date_day
    # nodes: [node1]
    # date_range: [20160306-20160307,20160308-20160309]

    建立软连接

    ln /etc/kingshard /usr/bin/kingshard

    测试使用screen来执行启动脚本

    [root@gzsd-ks01-101110214 kingshard]# yum -y install screen
    [root@gzsd-ks01-101110214 kingshard]# screen -R ks
    [root@gzsd-ks01-101110214 kingshard]# kingshard --config=etc/ks.yaml

    可以用supervisor管理进程

  • 相关阅读:
    不错的电影(先收藏着)
    getchar() getch() getche() gets() puts() scanf()的用法及区别
    java反射获取字段的属性值,以及为字段赋值等方法
    oracle将查询结果横转纵
    关于MySQL 的LEFT JOIN ON的问题
    MySQL表名和数据库关键字相同解决办法
    ajax 后台正常执行 错误类型却是404
    BIT 树状数组 详解 及 例题
    HDU 2689 Sort it (树状数组)
    HDU Cow Sorting (树状数组)
  • 原文地址:https://www.cnblogs.com/shione/p/12269734.html
Copyright © 2020-2023  润新知