邯城往事 邯城往事
Tags Archives Links
  • 我的开源
  • 服务器倒计时
  • Tags
  • Archives
  • Links
  • RSS
交换机与Linux服务器多网卡bond模式对接 交换机多端口和服务器对接时,需要确定是否需要配置聚合或者不配置聚合,并且配置聚合的时候还需要确认是静态聚合还是动态聚合,当然这和当前服务器网卡的bond模式有关。下面我们了解下Linux服务器的7种bond模式,说明如下: 第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略) 特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。这种模式需要接入交换机配置静态链路聚合配置。 V5/V7交换机侧的静态典型配置 [DeviceA] interface Bridge-Aggregation 1 //默认静态 [DeviceA-Bridge-Aggregation1] quit [DeviceA] inter....

linux服务器与H3C交换机聚合口对接

Linux
RabbitMQ 是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。它的并发最高可以支持一万并发,且它出身于金融行业。 RabbitMQ核心概念 Producer:生产者 Consumer:消费者 Broker:消息中间件的服务节点 。 Virtual Host:等同于namespace Channel:频道或信道,是建立在Connection连接之上的一种轻量级的连接。 RoutingKey:路由键。生产者将消息发给交换器的时候,一般会指定一个 RoutingKey,用来指定这个消息的路由规则。 Exchange:交换器,生产者将消息发送到 Exchange (交换器,通常也可以用大写的“X”来表示),由交换器将消息路由到一个或者多个队列中。如果路由不到,或返回给生产者,或直接丢弃。 Queue:队列,是RabbitMQ的内部对象,用于存储消息。 Binding:绑定,RabbitMQ 中通过绑定将交换器与队列关联起来,在绑定的时候一般会指定一个绑定键( BindingKey ) ,这样....

RabbitMQ

java
相信每个人都写过这样的的mybatis的sql代码: SELECT * FROM user WHERE NAME LIKE concat('%', concat( '小', '%' )) 查询结果如下: 那么如果将'小'换成%呢? 再换成''呢? 没错,它会查询出所有数据,说来惭愧,这也是我一个5年java开发程序员才注意到的事情!!!GOD 问题出现了就要解决它,有大佬推荐说mysql可以使用ngram进行分词,我不知道是啥也没用过,而且我用的数据库是oracle 不过我找到了另外一种既可以在oracle用的也可以在mysql用的解决办法: 首先我们在代码中进行字符串替换: String name = user.getUserName(); if(null!=name && !"".equals(name)){ user.setName(name.replaceAll("\%","\\%").replaceAll("\","\\_")); } 然后修改查询sql: 为什么图中用的@?因为mysql用\会报错,只能用两个斜杠\ \ ,但是在oracle中....

模糊查询输入%和_会查询全部的问题

java
Java常见线上问题总结 绝⼤多数Java线上问题从表象来看通常可以归纳为4个方面:CPU、内存、磁盘、网络。比如,应用上线 后突然CPU使用率99%、内存泄漏、STW时间过长,这些问题通常可以分为两大类: 系统异常 (CPU占用率过高、磁盘使用率100%、系统可用内存低等) 业务异常 (服务运⾏⼀段时间⾃动退出、服务间调⽤时间过⻓、多线程并发异常、死锁等) 1.如何去定位问题 解决问题的第⼀步是定位问题,排查手段⼀般包括以下⼏项,也可以将此理解为排查顺序: 业务⽇志分析排查 APM分析排查 物理环境排查 应⽤服务排查 云⼚商或运营商问题排查 1.1 业务⽇志分析排查 这个没啥说的,看日志不会吗? 1.2 APM分析排查 APM,全称Application Performance Management,应⽤性能管理 在分布式系统中,需要用到APM进行全链路分析 ⽬前市场上使⽤较多的链路跟踪⼯具有如下⼏个: Apache Skywalking:https://skywalking.apache.org Pinpoint:https://pinpoint.com/product/for-e....

java线上故障排查方案

java
在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。也就是说在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。 Linux目录树 所有可操作的计算机资源都存在于目录树这个结构中,对计算资源的访问,可以看做是对这棵目录树的访问 Linux文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录: 常见目录说明: /bin: 存放二进制可执行文件(ls、cat、mkdir等),常用命令一般都在这里; /etc: 存放系统管理和配置文件; /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示; /usr : 用于存放系统应用程序; /opt: 额外安装的可选应用程序包所放置的位置。....

面试官:用过Linux吗?

Linux
TCP三次握手 在后端相关岗位的入职面试中,三次握手的出场频率非常的高。其实在三次握手的过程中,不仅仅是一个握手包的发送 和 TCP 状态的流转。还包含了端口选择,连接队列创建与处理等很多关键技术点。通过今天一篇文章,我们深度去了解了三次握手过程中内核中的这些内部操作。 全文洋洋洒洒上万字字,其实可以用一幅图总结起来。 服务器 listen 时,计算了全/半连接队列的长度,还申请了相关内存并初始化。 客户端 connect 时,把本地 socket 状态设置成了 TCP_SYN_SENT,选则一个可用的端口,发出 SYN 握手请求并启动重传定时器。 服务器响应 ack 时,会判断下接收队列是否满了,满的话可能会丢弃该请求。否则发出 synack,申请 request_sock 添加到半连接队列中,同时启动定时器。 客户端响应 synack 时,清除了 connect 时设置的重传定时器,把当前 socket 状态设置为 ESTABLISHED,开启保活计时器后发出第三次握手的 ack 确认。 服务器响应 ack 时,把对应半连接对象删除,创建了新的 sock 后加入到全连接队列中,最后....

TCP三次握手与四次挥手

tcp
#先参考我之前的一篇文章在服务器进行一个死锁的情景重现# 检测死锁的文章 查看java进程 ps -ef|grep java 针对进程id生成dump文件 jmap -dump:format=b,file=serviceDump.dat 14640 使用jvisualvm.exe对dump进行分析(如果jdk的bin目录下没有,需要自行下载) https://visualvm.github.io/index.html 修改visualvm.conf 加入JDK 路径 visualvm_jdkhome="C:/Users/JavaCoder/.jdks/corretto-1.8.0_312" 双击bin目录下的visualvm.exe打开 导入dump文件后查看死锁的线程 还有另外一种使用方式 jhat : jhat 用于分析 heapdump 文件,它会建立一个 HTTP/HTML 服务器,让用户可以在浏览器上查看分析结果 C:\Users\SnailClimb>jhat C:\Users\SnailClimb\Desktop\heap.hprof Reading from C:....

分析linux的java进程的dump文件

java
#!/bin/bash hostname=hostname old_hostname=grep -Ev '^$|^#' /etc/zabbix/zabbix_agentd.conf | grep Hostname sed -i "s#old_hostname#Hostname=hostname#g" /etc/zabbix/zabbix_agentd.conf systemctl restart zabbix-agent 下发: ansible -i hosts.work new-openstack -m shell -a "netstat -lntup | grep 10050" ansible -i hosts.work new-openstack-ceph -m shell -a "cat /etc/zabbix/zabbix_agentd.conf | grep 172.24.15.122" ansible -i hosts.work new-openstack -m copy -a "src=/root/test.sh dest=/tmp/test.sh" a....

修改Hostname值

zabbix
[root@system-wiki ~]# cat /usr/lib/systemd/system/wiki.service [Unit] Description=Wiki [Service] Type=simple PIDFile=/usr/local/atlassian/confluence/work/catalina.pid ExecStartPre=rm -rf /usr/local/atlassian/confluence/work/catalina.pid ExecStart=/usr/local/atlassian/confluence/bin/startup.sh ExecStop=/usr/local/atlassian/confluence/bin/shutdown.sh PrivateTmp=true Restart=always User=confluence Group=confluence [Install] WantedBy=multi-user.target pid设置文件:/usr/local/atlassian/confluence/bin/s.......

confluence自启动

Linux
添加硬盘后,输入如下命令可识别: echo '- - -' > /sys/class/scsi_host/host0/scan #vm虚拟机扫描硬盘并识别硬盘

vmware添加硬盘识别问题

vmware
拉取最新镜像 docker pull mysql:latest ^也可以去https://hub.docker.com/_/mysql?tab=tags安装指定版本号的镜像^ 运行mysql容器 docker run -itd --name mysql8.0 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.27 (注:-p 3306:3306 左边的是容器的端口号,右边的是服务器的端口号。服务器的端口可以直接映射到容器的端口号上) (注:123456 是数据库的密码可自行修改) (注:8.0.27 是数据库的版本根据自己的版本进行更改,如何输入错误可能会导致在次拉取镜像) 查看容器状态 docker ps 进入MySQL容器登录MySQL docker exec -it mysql8.0 bash 登录Mysql mysql -u root -p 然后开启阿里云服务器的3306端口 连接成功!

Docker安装配置mysql镜像

Docker
第一种方式:在容器内部修改配置文件实现代理 拉取镜像 docker pull nginx 启动容器 docker run --name nginxweb -p 8080:80 -d nginx 此时可以打开网站 ip:8080 访问nginx首页 进入容器 docker exec -it nginxweb /bin/bash 更新源的索引,这样才能获取到最新的软件包 apt-get update 安装vim apt-get install vim 如果是将80映射为其他端口,需要注释掉最下面的那句默认的配置 #include /etc/nginx/conf.d/*.conf; 新增一个server配置如下,其他地方都不用动: server{ listen 80; server_name localhost; location /MerryChristmas/ { proxy_pass http://ip:63302/index/v1; proxy_redirect default; } } 访问代理的地址(:80可省略) ip:80/MerryChristmas 修改后校....

Docker安装配置nginx镜像

Docker
运行sql建表加数据 --1.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(CId,Cname,TId) --CId --课程编号,Cname 课程名称,TId 教师编号 --3.教师表 Teacher(TId,Tname) --TId 教师编号,Tname 教师姓名 --4.成绩表 SC(SId,CId,score) --SId 学生编号,CId 课程编号,score 分数 测试数据 create table Student(SId varchar(10),Sname varchar(10),Sage datetime,Ssex varchar(10)); insert into Student values('01' , '赵雷' , '1990-01-01' , '男'); insert into Student values('02' , '钱电' , '1990-12-21' , '男'); insert into Student value.....

Mysql执行计划

mysql
拉取阿里云的oracle镜像 docker pull registry.aliyuncs.com/helowin/oracle_11g 查看镜像是否下载成功 docker images 运行该镜像 docker run -d -p 1521:1521 --name oracle registry.aliyuncs.com/helowin/oracle_11g 进入容器 docker exec -it oracle /bin/bash 配置容器内的oracle的环境变量和修改账户密码`` 进入root账户su root,输入密码:helowin vi /etc/profile,并在文件的末尾添加下面内容 export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2 export ORACLE_SID=helowin export PATH=ORACLE_HOME/bin:PATH source /etc/profile 切换oracle用户 su oracle 设置数据库 使用sqlplus链接数据库 sqlp.......

Docker安装Oracle11g镜像

oracle
查看nginx编译参数:/usr/local/nginx/sbin/nginx -V 查看apache编译参数:cat /usr/local/apache2/build/config.nice 查看mysql编译参数:cat /usr/local/mysql/bin/mysqlbug | grep CONFIGURE_LINE 查看php编译参数:/usr/local/php/bin/php -i | grep configure

centos查看编译参数

Linux
Server端 [Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf" EnvironmentFile=-/usr/local/zabbix Type=forking PIDFile=/var/run/zabbix/zabbix_server.pid ExecStart=/usr/local/zabbix/sbin/zabbix_server -c /usr/local/zabbix/etc/zabbix_server.conf ExecStop=/usr/bin/kill $MAINPID Restart=always RestartSec=5 User=zabbix Group=zabbix [Install] WantedBy=multi-user.target agentd端 [Unit] Description=Zabbix Agen.......

zabbix编译安装时的systemctl启动管理

zabbix
会用到锁,其实也还好,没必要用到就尽量不要用。 #!/bin/sh mysql -uroot -p8rKSwodBFkcteU8h 2>/dev/null -e "flush tables with read lock;" mysql -uroot -p8rKSwodBFkcteU8h 2>/dev/null -e "create database bolo_bak;" tbname=(mysql -uroot -p8rKSwodBFkcteU8h 2>/dev/null -e "SELECT table_name from information_schema.tables where TABLE_SCHEMA='bolo'") for i in tbname; do mysql -uroot -p8rKSwodBFkcteU8h bolo_bak 2>/dev/null -e "create table i like bolo.i" mysql -uroot -p8rKSwodBFkcteU8h hellodb_bak 2>/dev/nu.......

备份数据到同一实例下的其他数据库操作

mysql
命令分类 设置和配置 git config help 获取和创建项目 init clone 基本快照 add status diff commit reset rm mv 分支和合并 branch checkout merge mergetool log stash tag worktree 共享和更新项目 fetch pull push remote submodule 检查和比较 show log diff shortlog describe 修补 apply cherry-pick diff rebase revert 调试 bisect blame grep 【git】 语法:   git [--version] [--help] [-C <path>] [-c <name>=<value>]   [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]   [-p|--paginate|--no-pager] [--no-replace-objects] ......

Git中文命令[参数]大全

git
1 2 3 4 5 6 7 8 9 10
我的开源 服务器倒计时 RSS
cuijianzhe - 来自邯郸社畜的呐喊

红笺小字,说尽平生意。
鸿雁在云鱼在水,惆怅此情难寄。
——晏殊· 《清平乐》

166 文章
0 浏览
© 2023 邯城往事 备案标识冀ICP备19005901号-1