关键词:
架构图:
一、环境规划:
Pd node | 192.168.9.42 | 192.168.15.57 | |
Tikv node | 192.168.15.2 | 192.168.15.2 | 192.168.15.23 |
tidb | 192.168.15.57 | 192.168.15.104 | |
VIP | 192.168.15.219 | ||
Haproxy -v | 1.4.20 | 192.168.15.57 192.168.9.42 | |
Keepalived-v | 1.2.19 |
准备前工作:
A、同步系统时间
B、是否把刷屏日志写到一个文件里,可在启动命令后面追加到一个文件
/tmp/sh-error1.log 2>&1 &
C、不同版本需要的包glibc
D、启动服务开启守护进程要加nohup,但实际没效果
E、系统版本为CENTOS6
F、包下载
http://down.51cto.com/data/2258987 ##CENTOS7
http://down.51cto.com/data/2259295 ##CENTOS6
http://down.51cto.com/data/2259848 ##pd tikv配置文件
友情提示:需要的其他包可以在其他章节博客里找到
G、IPTABLES 设置,需要开通集群使用的端口或者直接关闭
启动服务开启守护进程要加nohup
1、 下载包,解压后把命令存放在/usr/bin/目录下
#ln –s ……..
2、 修改57上pd配置文件,并启动:##默认参数不展示
name = "tidb_pd"
data-dir = "/home/tidb_pd"
client-urls = http://192.168.15.57:2379#本机
advertise-client-urls = ""
peer-urls = http://192.168.15.57:2380#本机
advertise-peer-urls =http://192.168.15.57:2380#本机
initial-cluster ="tidb57=http://192.168.15.57:2380,tidb104=http://192.168.15.104:2380"#为PD节点信息
initial-cluster-state = "new"
lease = 1
log-level = "debug"
tso-save-interval = "3s"
max-peer-count = 3
[balance]
min-capacity-used-ratio = 0.1
max-capacity-used-ratio = 0.9
address = ""
3、启动pd-server:
# nohup /usr/local/tidb/bin/pd-server--config=/usr/local/tidb/conf/pd.toml >>/tmp/aa.tx 2>&1 &
检查是否启动OK:
[email protected] conf]# netstat -nletp |grep pd-server
tcp 0 0192.168.15.57:2379 0.0.0.0:* ……
tcp 0 0 192.168.15.57:2380 0.0.0.0:* ……….
4、修改三个节点的tikv配置文件并 并启动 #####默认参数不展示
addr ="192.168.15.13:20160" #写各个节点IP
advertise-addr= ""
store = "/home/tikv13"
log-level = "debug"
job = "tikv_13"
endpoints = "192.168.15.57:2379,192.168.15.104:2379" #写PD的IP
#/usr/local/tidb/bin/tikv-server--config=/usr/local/tidb/conf/tikv.toml &
此方式启动没办法做到后台后台守护,需要在启动前加nohup
#nohup /usr/local/tidb/bin/tikv-server--config=/usr/local/tidb/conf/tikv.toml>>/tmp/aa.tx 2>&1 &
直接这样启动 当前会话窗口不停的刷日志
5、启动tidb ##
#nohup /usr/local/tidb/bin/tidb-server--store=tikv --path="192.168.15.57:2379,192.168.15.104:2379" &
##--store=tikv为分布式是的引擎
[[email protected]]# netstat -nltp |grep tidb
tcp 0 0 :::10080 :::* LISTEN
tcp 0 0 :::4000
###基础点
4000:为服务监听端口
10080:服务状态监听端口,此端口展示
###基础操作tidb
TiDB内部数据用的,包括prometheus统计
http://192.168.15.57:10080/debug/pprof
http://192.168.15.57:10080/metrics
查看tidb状态信息:http://192.168.15.57:10080/status
{"connections":1,"version":"5.7.1-TiDB-1.0","git_hash":"01dde4433a0e5aabb183b3f6d00bd2f43107421a"}
查看集群状态,集群状态通过查看pd服务信息既可看到tikv信息
http://192.168.15.57:2379/pd/api/v1/stores
或者在本地查看 直接加curl 加地址
首次登录为:mysql –h192.168.15.57 –P4000 –uroot
mysql –h192.168.9.42 –P4000 –uroot
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| INFORMATION_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql |
| test |
| tidb |
+--------------------+
登录后看到保存的元数据信息是相同的。集群OK
5、在192.168.15.57 和192.168.9.42上都安装haproxy 和keepalived服务
##keepalived主要提供资源高可用,解决单点故障,实现VIP漂移
1、 解压配置haproxy
###配置HAPROXY 若同时启动haproxy,一边没有IP资源的会提示
Startingproxy admin_stats: cannot bind socket导致服务无法启动,修改:
修改内核参数: /etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
保存结果,使结果生效
sysctl –p
#useradd haproxy
#tar -zxvf haproxy-1.4.20.tar.gz
#cd haproxy-1.4.20 &&makeTARGET=linux26 PREFIX=/usr/local/haproxy ARCH=X86_64 && makeinstallPREFIX=/usr/local/haproxy
若出现此问题,则需要安装gcc
#yum –y install gcc
#chown -R haproxy.haproxy/usr/local/haproxy
2、添加修改配置文件,部分解释参数配置意义(具体看haproxy.cfg)
#cd /usr/local/haproxy && makeconf&&cdconf && touch haproxy.cfg
###注意前段页使面用的端口48800和前端提供服务的端口,开通IPTABLES访问权限,
端口不能有冲突
3、默认情况下haproxy是不记录日志的,可以使用rsync本例LINUX服务记录日志。
1、在linux下是rsyslogd服务,
#yum –yinstallrsyslog先安装rsyslog
一般安装好rsyslog会自动生成rsyslog.d这个目录,若无自己创建
#cd/etc/rsyslog.d/ && touch haproxy.conf
#vim/etc/rsyslog.d/haproxy.conf
$ModLoad imudp
$UDPServerRun 514
local0.* /var/log/haproxy.log ###这个必须和haproxy.cfg的配置文件一致。
#vim /etc/rsyslog.conf
在62行 添加local0.* /var/log/haproxy.log
重启服务
#service rsyslogrestart
现在你就可以看到日志(/var/log/haproxy.log)了
Haproxy.cfg:
# this config needs haproxy-1.1.28 orhaproxy-1.2.1
global
log127.0.0.1 local0
maxconn4096
log127.0.0.1 local1 notice
#logloghost local0 info
#maxconn4096
#chroot/usr/local/haproxy
chroot/usr/local/pxc
uid501
gid501
daemon
nbproc1
pidfile/usr/local/haproxy/logs/haproxy.pid
#debug
#quiet
defaults
log global
#option dontlognull
retries 3
option redispatch
maxconn 4096
timeout http-keep-alive 10s
timeoutcheck 10s
contimeout 600s
clitimeout 600s
srvtimeout 50000
timeoutqueue 50000
timeoutconnect 600s
timeoutclient 600s
timeoutserver 600s
listen admin_stats 192.168.15.219:48800
stats enable
statshide-version
stats realm <realm>
statsrefresh 5s
statsuri /admin-status
stats auth admin:admin
stats admin if TRUE
mode http
option httplog
timeout connect 600s
timeout check 5000
timeout client 600s
timeout server 600s
listen tidb_server192.168.15.219:3306
modetcp
balance roundrobin
optiontcpka
optiontcplog
server tidb_server1 192.168.15.57:4000 weight 1 checkinter 2000 rise 2 fall 5
server tidb_server2 192.168.9.42:4000 weight 1 check inter 2000 rise 2 fall 5backup
#timeoutconnect 50000
#timeoutclient 50000
#timeoutcheck 50000
#timeouthttp-keep-alive 5000
#timeoutserver 50000
listen tidb_status 192.168.15.219:6688
modetcp
balanceroundrobin
optiontcpka
optiontcplog
servertidb_status1 192.168.15.57:10080 weight 1 check inter 2000 rise 2 fall 5
servertidb_status2 192.168.9.42:10080 weight 1 check inter 2000 rise 2 fall 5
timeoutconnect 50000
timeout client 50000
timeout check 50000
timeout http-keep-alive 5000
timeout server 50000
listen tikv_server
bind*:20160
modetcp
balance roundrobin
option tcpka
option tcplog
server tikv_server1 192.168.15.2:20160 weight 1 check inter 2000 rise 2fall 5
server tikv_server2 192.168.15.13:20160 weight 1 check inter 2000 rise 2fall 5
server tikv_server3 192.168.15.23:20160 weight 1 check inter 2000 rise 2fall 5
timeout connect 50000
timeout client 50000
timeout check 50000
timeout http-keep-alive 5000
timeout server 50000
6、安装keepalived服务:
#cd keepalived-1.2.12
#./configure--prefix=/usr/local/keepalived
若报错:
configure:error:
!!! OpenSSL is notproperly installed on yoursystem. !!!
!!! Can not include OpenSSL headersfiles. !!!
yuminstall openssl* check* -y
#make && make install
#cp/usr/local/keepalived/etc/rc.d/init.d/keepalived/etc/init.d/
#cp/usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/
#mkdir /etc/keepalived
#cp/usr/local/keepalived/etc/keepalived/keepalived.conf/etc/keepalived/
#cp/usr/local/keepalived/sbin/keepalived/usr/sbin/
Keepalived.conf:
cat keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
}
notification_email_from [email protected]
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface em1
virtual_router_id 51
realserver 192.168.15.57
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.15.219 dev em1 scope global
}
#notify_master/etc/keepalived/check_master_haproxy.sh
#notify_master/etc/keepalived/check_backup_haproxy.sh
}
###注意这里需要写个简单的脚本判断haproxy和keepalived服务的高可用,若出现故障进行切换。脚本略
##把tikv,tidb,pd都加到haproxy里去,不知道会不会影响效率,若是有还是老老实实的使用原生态界面查看
##在负载均衡,可以替换的有maxscale也是不错的,,,配置简单,就是没有监控界面
本文出自 “DBSpace” 博客,请务必保留此出处http://dbspace.blog.51cto.com/6873717/1873964
tidb集群的可用性详解及tikvlabel规划
...器,机柜,机房,网络要求3.两地三中心集群的扩容策略分布式系统的核心理念是让多台服务器协同工作,完成单台服务器无法处理的任务。单点的硬件和网络等都是不可靠的,想要提高硬件的可靠性需要付出大量的成本,因此... 查看详情
tidb一个大数据实时计算的存储利器(代码片段)
...TiDB概述TiDB是由中国PingCAP公司开发的,是一个开源的分布式NewSQL数据库。它最初的设计目标是解决传统关系型数据库的瓶颈和限制,实现高可用、可扩展和高性能的数据存储和处理。TiDB架构详解TiDB是一个分布式的NewSQL数... 查看详情
jeesz分布式架构-分布式高可用
...不得转载。什么是高可用 高可用HA(HighAvailability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。 假设系统一直能够提供服务,我们说系统的可用性是100%。 如... 查看详情
jeesz分布式架构-分布式高可用
什么是高可用高可用HA(HighAvailability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。常见互联网分布式架构如上,分为:(1)客户端层:典型调用方是浏览器browser或者手... 查看详情
汇总
前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情
高可用的分布式系统架构探讨
...正常访问。正常提供对外服务。因为大型网站的复杂性,分布式,廉价服务器,开源数据库,操作系统等特点。要保证高可用是很困难的,也就是说网站的故障是不可避免的。如何提高可用性,就是需要迫切解决的问题。首先,... 查看详情
技术架构文章汇总
前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情
如何设计出高可用的分布式架构
在分布式架构中,SOA和微服务架构是最常见的两种分布式架构,而且目前服务网格的概念也越来越火了,我们就先从这些常见的架构开始。SOA架构解析SOA全称是:ServiceOrientedArchitecture,中文释义为“面向服务的架构”。它是一种... 查看详情
高并发高可用的架构实践-静态架构蓝图
.../46931045二、 静态架构蓝图 整个架构是分层的分布式的架构,纵向包括CDN,负载均衡/反向代理,web应用,业务层,基础服务层,数据存储层。水平方向包括对整个平台的配置管理部署和监控。 查看详情
tidb学习笔记-体系架构
TIDB的优势:分布式,高度兼容MySQL,高可用,支持ACID事务(事务模型:Percolator),丰富的工具链生态一、TiDBSQL层,解析SQL,将数据读取请求发给TiKV/TiFlash功能:处理客户端的连接SQL语... 查看详情
tidb整体架构及主要特性
...数个PD节点。TiKVServer负责存储数据,从外部看TiKV是一个分布式的提供事务的Key-Value存储引擎。存储数据的基本单位是Region,每个Region负责存储一个KeyRange(从StartKey到EndKey的左闭右开区间)的数据,每个TiKV节点会负责多个Regio 查看详情
高性能高可用的分布式架构体系(转)
...服务、云计算、移动互联网领域,专业的云平台服务里,分布式技术为支撑平台正常运作关键性技术。从商业利润和运维成本角度出发,千方百计榨干服务器的每一分性能很大程度上影响着网站的商业价值,因此对性能的追求,... 查看详情
java架构师大型分布式综合项目实战,高并发,集群,高可用,程序设计,性能优化,架构设计,负载均衡,大数据量
...优化、Springboot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程 视频课程包含:高级Java架构师包含:Springboot、Spring& 查看详情
汇总
前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情
汇总
前言(1):服务端高并发分布式架构演进之路前言(2):什么是微服务?前言(3):分布式的坑1.大型网站架构演化2.大型网站架构演化的价值观3网站架构设计误区4网站架构模式5大型网站核心架构要素6网站性能测试7Web前端性能优化8应... 查看详情
16套java架构师,高并发,高可用,高性能,集群,大型分布式电商项目实战视频教程
...ActiveMQ,Nginx,Mycat,Netty,Jvm,Mecached,Nosql,Spring,大型分布式项目实战视频教程视频课程包含:高级Jav 查看详情
建议收藏7000+字的tidb保姆级简介,你见过吗(代码片段)
TIDB简介什么是TIDBTiDB是一个分布式NewSQL数据库。它支持水平弹性扩展、ACID事务、标准SQL、MySQL语法和MySQL协议,具有数据强一致的高可用特性,是一个不仅适合OLTP场景还适合OLAP场景的混合数据库。TiDB是PingCAP公司自主设计、研发... 查看详情
构建高并发高可用的架构
...://blog.csdn.net/yangbutao/article/details/12242441作者:杨步涛关注分布式架构、大数据、搜索、开源技术QQ:306591368技术Blog:http://blog.csdn.net/yangbutao 一、&n 查看详情