- 博客(96)
- 收藏
- 关注
原创 Docker swarm集群应用(二)
Ingress模式下,到达Swarm任何节点的8080端口的流量,都会映射到任何服务副本的内部8080端口,就算该节点上没有tomcat服务副本也会映射。网络存储卷可以实现跨docker宿主机的数据共享,数据持久保存到网络存储卷中,在创建service时添加卷的挂载参数,网络存储卷可以帮助自动挂载,但需要集群节点都创建该网络存储卷。target=/usr/share/nginx/html:将卷挂载到容器内的 /usr/share/nginx/html 目录(Nginx 默认的静态文件目录)
2025-04-11 12:00:00
343
原创 Docker swarm集群应用(一)
-update-parallelism 5 指定每次更新时,同时更新的容器数量为 5。--replicas 1 指定服务的副本数量为 1,即只运行一个容器实例。为了保持高可用架构,可以同时启动多个容器共同支撑一个服务,如果一个容器故障,它会自动使用另一个容器。--name nginx-svc-1 指定服务的名称为 nginx-svc-1。--replicas 10 指定服务的副本数量为 10,即运行 10 个容器实例。
2025-04-10 12:00:00
1049
原创 Docker Swarm集群初始化
-listen-addr 指定当前节点监听的 IP 地址和端口(默认为 2377)。如果未指定 --listen-addr,Docker 会默认使用 --advertise-addr 的 IP 地址和端口 2377。--advertise-addr 指定当前节点在集群中对外通告的 IP 地址。join-token 生成或管理加入集群所需的 token。join-token 生成或管理加入集群所需的 token。join 将节点加入到现有的集群中。
2025-04-09 12:00:00
1179
原创 Docker Swarm集群部署规划
Docker Swarm是Docker官方提供的一款容集群管理工具,默认集成在docker引擎中,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种容器资源。(1)Swarm Manager:这是Docker Swarm的核心管理组件,负责调度容器、管理集群状态以及处理集群的配置。(6)Docker Daemon:每个Swarm Node上运行的Docker守护进程,负责管理该节点上的Docker容器。
2025-04-08 12:00:00
887
原创 DevOps部署Java源码项目
10、配置所有安装Docker主机(Jenkins-server、harbor-server、web-server)使用harbor私有镜像仓库。上传jdk-8u91-linux-x64.tar.gz和apache-tomcat-8.5.78.tar.gz包到/root目录。(2)下载gitlab包或上传gitlab-ce-10.2.2-ce.0.el7.x86_64包。(1)下载或上传apache-maven-3.8.8-bin.tar.gz包。6、安装配置Jenkins(jenkins-server)
2025-04-07 12:00:00
1494
原创 Docker-compose
Docker-compose技术,就是通过一个 docker-compose.yml 配置文件,将所有的容器的部署方法、文件映射、容器连接等等一系列的配置写在一个配置文件里,最后只需要执行docker-compose up命令就会像执行脚本一样的去一个个安装容器并自动部署他们,极大的便利了复杂服务的部署。如果需要运行多个容器,那么容器名称就不要给了,会随机生成,还 有注意端口映射问题,不要冲突(docker-compose port 字段支持仅写 一个容器暴露的端口)。
2025-03-27 12:00:00
1502
原创 Docker容器化部署企业级应用
-link mysql-master:mysql-master: 将当前容器与名为 mysql-master 的容器连接起来,并为其设置别名 mysql-master。--name nginx-server: 这是为容器指定一个名称,nginx-server 是容器的名称。-v /opt/nginx-server:/usr/share/nginx/html:ro: 这是挂载卷的选项,用于将主机上的目录或文件挂载到容器中。将nginx-server-port容器的配置文件复制到新容器配置文件的目录。
2025-03-26 12:00:00
793
原创 Docker数据持久化存储
由于物理机或虚拟机本身就拥有大容量的磁盘,所以可以直接把数据存储在物理机或虚拟机本地文件系统中,也可以通过使用额外的存储系统(NFS、GlusterFS、Ceph等)来完成数据持久化存储。由于Docker容器是由容器镜像生成的,所以一般容器镜像中包含什么文件或目录,在容器启动后,我们依旧可以看到相同的文件或目录。运行web1容器,把/opt/web1root目录挂载到/usr/share/nginx/html目录中。运行web2容器,挂载未创建的本地目录,启动容器时将自动创建本地目录。
2025-03-25 12:00:00
1705
1
原创 Docker跨主机容器间通信
在一些特定场景中,比如一些传统应用或者监控应用需要直接使用 HOST 的物理网络,则可以使用 kernel 提供的 macvlan 的方式,macvlan 是在 HOST 网卡上创建多个子网卡,并分配独立的 IP 地址和 MAC 地址,把子网卡分配给容器实例来实现实例与物理网络的直通,并同时保持容器实例的隔离性。在Docker中,Overlay网络就像这个导航系统,它通过虚拟的网络技术(如VXLAN)在物理网络之上构建了一个逻辑网络,容器之间的通信可以通过虚拟的隧道进行,而不受物理网络拓扑的限制。
2025-03-24 12:00:00
739
原创 Docker单主机网络
他的操作速度是mysql的10倍不止。Redis 在3.0版本前只支持单实例模式,虽然支持主从模式、哨兵模式部署来解决单点故障,但是现在互联网企业动辄大几百G的数据,可完全是没法满足业务的需求,所以,Redis 在 3.0 版本以后就推出了集群模式。默认网络容器间虽然可以通过ip通信,不同功能的容器放在不同的自定义网络(相当于不同vlan),会有更好的隔离性,也可以通过容器名直接通信。容器启动时默认的网络名称是bridge,它的模式是bridge(桥接模式),未作定义网络时,所有的容器都运行在一个网络中。
2025-03-21 12:00:00
535
原创 Docker底层原理
如果两个容器的 CPU 份额分别为 512 和 1024,则它们的 CPU 时间分配比例为 1:2。默认情况下,所有容器都能够平等的读写磁盘,也可以通过--blkio-weight参数改变容器的blockIO 的优先级。创建两个容器为 c1 和 c2,若只有这两个容器,设置容器的权重,使得c1和c2的CPU资源占比为1/3和2/3。效果:在容器中,进程的 PID 从 1 开始,与宿主机或其他容器的 PID 互不影响。Namespace的六项隔离,实现了容器与宿主机、容器与容器之间的隔离。
2025-03-20 12:00:00
727
原创 Docker镜像仓库
v /registry:/var/lib/registry: 将主机上的 /registry 目录(如果没有此目录会自动创建)挂载到容器内的 /var/lib/registry 目录。账号注册登陆后,搜“容器镜像服务”--->点“容器镜像服务”--->"管理控制台"--->"个人实例"--->"创建命名空间"--->"创建镜像仓库"--->选择仓库"管理"--->可以查看“操作指南”因为我们使用的私有镜像,在上传或下载的时候,都需要我们将镜像的名称直接重命名,要注明它私有仓库的IP地址:暴露端口。
2025-03-19 12:00:00
1877
原创 使用Dockerfile创建镜像
Dockerfile由一条一条的指令组成,并且有自己的书写格式和支持的命令,当需要在容器镜像中指定自己额外的需求时,只需在Dockerfile上添加或修改指令,然后通过docker build生成我们自定义的容器镜像。Dockerfile中包含多种指令,如果涉及到部署最多使用的算是RUN命令了,使用RUN命令时,不建议每次安装都使用一条单独的RUN命令,可以把能够合并安装指令合并为一条,这样就可以减少镜像分层。如果用户启动容器时候指定了运行的命令,则会覆盖掉CMD指定的命令。这在跨系统打包时非常有用。
2025-03-18 12:00:00
2224
原创 Docker常用命令及镜像制作方法
docker ps -aq ——列出所有容器(包括正在运行的和已停止的容器)的 容器 ID(-q只显示容器ID)docker ps -aqf "status=exited" ——列出所有状态为 已退出(exited) 的容器的 容器 ID(exited小写)docker rm -f $(docker ps -aq) ——强制删除所有容器(包括正在运行的和已停止的容器)
2025-03-17 12:00:00
625
原创 Docker入门
(1)百度搜“阿里云开源镜像站”--“阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区”--“容器”--“docker-ce”--“CentOS 7(使用 yum 进行安装)”--复制安装命令中的URL路径。Docker是一种轻量级“虚拟机”的管理工具,这里的“虚拟机”称为容器,容器与传统的虚拟机不同,每个容器没有独立的操作系统及操作系统对资源的占用。docker attach 用于连接到运行容器的控制台(没有分配终端时,不能使用,如-d后台运行时)(3)列出并排序存储库中可用的版本。
2025-03-14 12:00:00
958
1
原创 PostgreSQL常用管理命令
PostgreSQL中的public模式是一个默认的模式(schema),用于存储和管理表、视图、索引、数据类型、函数和操作符等数据库对象。相反,information_schema提供的是关于数据库结构的信息,使得用户可以方便地查看表、视图、函数等信息。例如,无论是MySQL、SQL Server还是Postgresql,都提供了类似的information_schema模式,使得开发者可以在不同的数据库平台上使用相同的查询语句来获取数据库结构的元数据。接下来,我们来看看pg_catalog模式。
2025-03-13 12:00:00
752
原创 PostgreSQL搭建主从复制集群
trigger_file = '/tmp/trigger_file0''/tmp/trigger_file0'是一个自定义的文件,在后面主从切换的时候能够用得上。s :stream并行复制,数据和wal日志同步复制,如果使用tar格式,预写式日志文件被写入到一个单独的名为pg_wal.tar的文件;f :fetch串行复制,数据复制完,再复制wal日志,如果使用tar格式,预写式日志文件将被写入到base.tar文件。流复制保留最多的xlog数,xlog这个日志是记录的Postgresql的WAL信息。
2025-03-12 12:00:00
849
原创 PostgreSQL安装
PostgreSQL支持SQL的许多功能,例如复杂SQL查询,SQL子选择,外键,触发器,视图,事务,多进程并发控制(MVCC),流式复制(9.0),热备(9.0)PostgreSQL支持文本,图像,声音和视频,并包括用于C/C++,Java,Perl,Python,Ruby,Tcl和开放数据库连接(ODBC)的编程接口。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。11、查看所有数据库,创建数据库test。
2025-03-11 12:00:00
1207
原创 MongoDB备份与还原
在replica set中oplog是一个定容集合(capped collection),它的默认大小是磁盘空间的5%(可以通过--oplogSizeMB参数修改),位于local库的db.oplog.rs,有兴趣可以看看里面到底有些什么内容。需要注意的是,因为oplog是一个定容集合,所以时间窗口能覆盖的范围会因为你单位时间内的更新次数不同而变化。查看oplog日志中的其他操作“i”是insert操作,“u”是update操作,“d”是delete操作,“c”是其他操作。——定义行分隔符为换行符。
2025-03-10 12:00:00
1636
原创 MongoDB Sharding Cluster 分片集群
将MongoDB的分片和复制功能结合使用,在确保数据分片到多台服务器的同时,也确保了每份数据都有相应的备份,这样就可以确保有服务器坏掉时,其他的从库可以立即接替坏掉的部分继续工作。mongos就是掌握统一路口的路由器,其会将客户端发来的请求准确无误的路由到集群中的一个或者一组服务器上,同时会把接收到的响应拼装起来发回到客户端。哈希索引适合单调变化的字段,例如自增值,时间值等(因为可以将单调的字段通过hash函数映射到不同的块上去,从而分散写入压力,例如下图,虽然数据连续,但是写入了不同的数据块中)
2025-03-07 12:00:00
637
原创 MongoDB用户管理和复制组
Primary 节点将数据修改操作记录到本地的 oplog(操作日志,在 local 库下)中,Secondary 节点定期到 Primary 节点获取这些操作(日志),然后对自己的数据副本执行这些操作,从而保证 Secondary 与 Primary 数据一致。在 MongoDB 副本集中,Secondary 会不间断的通过心跳来探测 Primary 是否正常,当 Primary 不可用时,各 Secondary 之间会触发选举操作,通过优先级来选举出一个 Secondary 做为新的 Primary,
2025-03-06 12:00:00
890
原创 MongoDB简介和安装
1、各种应用服务的日志存储,MongoDB的高性能足够支撑关系型数据库2-3倍以上的TPS(事务处理速率)/QPS(请求速率),同时自带的三种压缩格式方便在容量和性能直接作出选择,通过MongoDB存储日志文件,查询简单(索引),写入导出方便(弹性结构没有表结构限制,例如:第一行5列,第二行可以是3列)。db.col.update({'title':'MongoDB'},{$set:{'title':'MongoDB教程'}},{multi:true})(json就是键值对的,例如:elk的日志格式)
2025-03-05 12:00:00
1056
原创 MySQL优化
可以做的架构是,mysql主从,一主多从。所以,我们可以做一个优化,把mysql原来的一主多从为多主一从,然后作为其他从的主,而前面的主,只负责网站业务的写入,而后面的从不负责网站任何业务,只负责给其他从同步bin-log。interactive_timeout:指的是mysql在关闭一个交互的连接之前所需要等待的秒数,比如我们在终端上进行mysql管理,使用的即使交互的连接,这时候,如果没有操作的时间超过了interactive_time设置的时间就会自动的断开,默认的是28800,可调优为7200。
2025-03-04 12:00:00
813
原创 PXC集群部署
PXC 集群允许动态下线节点,但需要注意的是节点的启动命令和关闭命令必须一致,如以引导模式启动的第一个节点必须以引导模式来进行关闭。wsrep_cluster_address=gcomm:// 集群成员列表,3台必须相同。wsrep_cluster_name=mysql1 集群名称,可自定义,3台必须相同。支持节点自动加入,无需手动拷贝数据(服务器会自动同步宕机期间的数据,无需手动配置)数据强一致性,无同步延迟(写入主服务器的数据,所有从服务器必须马上也得有)
2025-03-03 12:00:00
474
原创 MGR部署
准确地说,在始发 server 上,当事务准备好提交时,该 server 会广播写入值(已改变的行)和对应的写入集(已更新的行的唯一标识符)。准确地说,在始发 server 上,当事务准备好提交时,该 server 会广播写入值(已改变的行)和对应的写入集(已更新的行的唯一标识符)。网上对组复制和 Galera 的对比很多,特别是 2016 年组复制出生后大火的" Galera 将死"的言论,但实际上,仍然有很多人在用着 pxc,毕竟它已经扬帆航行多年,而 GR 才出没多久,前几个版本也一直在修修补补。
2025-02-28 12:00:00
619
原创 Mycat
MyCat是目前最流行的分布式数据库中间插件,是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,其核心功能是分表分库,即将一个大表水平分割为N个小表,存储在后端MySQL服务器里或者其他数据库里。2. writeType=“1”,所有写操作都随机的发送到配置的writeHost,但不推荐使用。
2025-02-27 12:00:00
1009
原创 MySQL双主复制
关闭漂移IP所在服务器的keepalived,再次启动keepalived。两台mysql互做主从,各自安装keepalive实现热备,其他从服务器和热备的虚拟IP(vip)建立主从连接。3、MySQL1和MySQL2互相连接开启从服务,建立主从关系。4、安装keepalived(MySQL1、MySQL2)8、使用MySQL3与虚拟IP建立主从关系(MySQL3)2、MySQL1库创建主从复制用户(MySQL1)7、创建MySQL登录用户(MySQL1)5、配置keepalived,并启动。
2025-02-26 12:00:00
997
原创 MAH配合Atlas实现读写分离
2、Centos 5.X安装 Atlas-XX.el5.x86_64.rpm,Centos 6.X安装Atlas-XX.el6.x86_64.rpm。2、制作repl和mha用户的加密密码(Atlas)3、在Atlas配置文件中添加生产用户(Atlas)1、Atlas只能安装运行在64位的系统上。3、创建Atlas配置文件(Atlas)1、在主库中创建用户(Master)1、安装Atlas(Atlas)4、启动Atlas(Atlas)4、重启Atlas(Atlas)2、制作加密密码(Atlas)
2025-02-25 12:00:00
620
原创 MySQL高可用MHA
该参数代表忽略上次 MHA 触发切换产生的文件,默认情况下,MHA 发生切换后会在日志记录,也就是上面设置的日志app1.failover.complete文件,下次再次切换的时候如果发现该目录下存在该文件将不允许触发切换,除非在第一次切换后收到删除该文件,为了方便,这里设置为--ignore_last_failover。当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,然后将所有其他的 slave 重新指向新的 master。整个故障转移过程对应用程序完全透明。
2025-02-24 12:00:00
1813
原创 主从复制-2
SQL线程延时:数据已经写入relaylog中了,SQL线程"慢点"运行,一般企业建议3-6小时,具体看公司运维人员对于故障的反应时间。1)在主从复制环境中,主库发生过的事务,在全局都是由唯一GTID记录的,更方便Failover(故障恢复)告诉从库,我的备份中已经有以上事务,你就不用运行了,直接从下一个GTID开始请求binlog就行。从库relay落地,IO线程会返回一个ACK,主库的 ACK_reciver ,主库事务才能提交。5)mysqldump备份时,默认会将备份中包含的事务操作,以以下方式。
2025-02-21 12:00:00
1689
原创 主从复制-1
5.7 版本中有了增强的GTID,增加了seq_no,增加了新型的并发SQL线程模式(logical_clock)MTS技术(多版本并发技术)4.从库IO_T读取master.info文件中的信息,获取到IP、PORT、User、Pass、binlog的位置信息(联系主库)8. IO_T接收到新的binlog日志,存储到TCP/IP缓存,立即返回ACK给主库,并更新master.info。一旦主从复制构建成功,主库当中发生了新的变化,都会通过dump_T发送信号给IO_T,增强了主从复制的实时性。
2025-02-20 13:50:42
749
原创 触发器及用户权限
注意事项:MySQL的触发器是按照BEFORE触发器、行操作、AFTER触发器的顺序执行的,其中任何一步发生错误都不会继续执行剩下的操作,如果对事务表进行的操作,如果出现错误,那么将会被回滚,如果是对非事务表进行操作,那么就无法回滚了,数据可能会出错。触发器是基于行触发的,所以删除、新增或者修改操作可能都会激活触发器,所以不要编写过于复杂的触发器,也不要增加过多的触发器,这样会对数据的插入、修改或者删除带来比较严重的影响,同时也会带来可移植性差的后果,所以在设计触发器的时候一定要有所考虑。
2025-02-19 12:00:00
528
原创 MySQL备份还原练习
将percona-toolkit-3.3.0-1.el7.x86_64、percona-xtrabackup-24-2.4.12-1.el7.x86_64包拖入。将percona-toolkit-3.3.0-1.el7.x86_64、percona-xtrabackup-24-2.4.12-1.el7.x86_64包拖入。insert into t1 values(1,'张三'),(2,'李四'),(3,'王五'),(4,'陈六'),(5,'王小');
2025-02-18 12:00:00
1309
原创 备份还原-2
将percona-toolkit-3.3.0-1.el7.x86_64、percona-xtrabackup-24-2.4.12-1.el7.x86_64包拖入。from:备份中包含的LSN号的起点,全备:0, 增量:上次备份的结束位置。记录备份时刻的二进制日志信息. 可以作为binlog截取的起点.last-9:备份结束时的LSN,下次增量备份的起始位置。查找可用备份并处理备份:full+inc1+inc2。8)进行周二的增量备份(对比周一的做增量)4)将备份数据拷贝的MySQL的数据目录。
2025-01-17 12:00:00
1037
原创 备份还原-1
-max_allowed_packet=128M 控制的是备份时传输数据包的大小.(默认max_allowed_packet变量为16MB)温备:长时间锁表备份 MyISAM(业务正在使用表的时候,就会锁表,不能备份,等业务完成才能备份)正在运行的网站系统,mysql-5.7.20 数据库,数据量50G,日业务增量3-10M。按数据量(50-80G),小数据量每天全备;热备:对于业务影响最小 InnoDB(备份快照,不会锁表,业务正常进行)备份路径 -----> 备份到RAID5。
2025-01-16 12:00:00
1092
原创 MySQL日志管理
-include-gtids='e2e9b01e-9687-11eb-b577-000c29b0384b:6','e2e9b01e-9687-11eb-b577-000c29b0384b:8' 截取的不是连续的值。--exclude-gtids='e2e9b01e-9687-11eb-b577-000c29b0384b:6','e2e9b01e-9687-11eb-b577-000c29b0384b:8' 排除的。Rank:所有语句的排名,默认按查询时间降序排列,通过--order-by指定。
2025-01-15 12:00:00
1125
原创 MySQL事务
fdatasync模式:写数据时,write这一步并不需要真正写到磁盘才算完成(可能写入到操作系统buffer中就会返回完成),真正完成是flush操作,buffer交给操作系统去flush,并且文件的元数据信息也都需要更新到磁盘。O_DIRECT模式:数据文件的写入操作是直接从mysql innodb buffer到磁盘的,并不用通过操作系统的缓冲,而真正的完成也是在flush这步,日志还是要经过OS缓冲。innodb_log_files_in_group = 2 ——磁盘日志文件文件个数(重做日志)
2025-01-14 12:00:00
1595
原创 存储引擎-2
由于MySQL 5.5版本共享表空间的缺陷,5.6版本后增加了独立表空间的概念,即将“数据字典(元数据)”、“表的列信息”、“表的数据、索引”分开存储,Redo log的主要作用是用于数据库的崩溃恢复,undo日志即撤销还原,用于记录更改前的一份copy,在操作出错时,可以用于回滚、撤销还原,只将数据库逻辑地恢复到原来的样子。5.6版本以后数据表(表空间)独立,共享表空间保留,只用来存储数据字典信息、undo、临时表。从5.6版本默认表空间不再使用共享表空间,替换为独立表空间。主要存储的是用户数据。
2025-01-13 12:00:00
1282
原创 存储引擎-1
当innodb_flush_log_at_trx_commit和sync_binlog 都为 1 时是最安全的,在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。由此可见,当两个参数设置为双1的时候,写入性能最差,sync_binlog=N (N>1 ) innodb_flush_log_at_trx_commit=2 时,(在当前模式下)MySQL的写操作才能达到最高性能。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
2025-01-10 12:00:00
973
原创 索引补充及视图
insert into stu_info (s_id,class,addr) values(1,'二班','安徽'),(2,'三班','重庆'),(3,'一班','山东');insert into test values (1,'aa','中国','aaaa','汉唐雄风');insert into test values (3,'cc','日本','cccc','抱残守缺');insert into test values (4,'dd','韩国','dddd','宇宙大国');
2025-01-09 12:00:00
1062
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人