grep 命令用法
简介grep 命令用于在文件中查找符合条件的字符串。 grep 指令用于查找内容包含指定模式的文件,如果发现某文件的内容符合所指定的模式,默认会将包含该模式的那一行显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。 语法1grep "<查找内容>" [选项] [文件或目录...] 常用选项基本选项 -i 或 --ignore-case:忽略字符大小写的差别 -v 或 --invert-match:显示不包含匹配文本的所有行 -n 或 --line-number:在显示符合模式的那一行之前,标示出该行的行号 -c 或 --count:计算符合模式的行数 -l 或 --file-with-matches:列出文件内容符合指定模式的文件名称 -L 或 --files-without-match:列出文件内容不符合指定模式的文件名称 -o 或 --only-matching:只显示匹配部分 -w 或 --word-regexp:只显示完整单词匹配的行 -x 或 --line-regexp:只显示完整行匹...
head 命令用法
简介head 命令用于查看文件的开头部分内容,默认显示 10 行。 语法1head [选项] [文件] 常用选项 选项 说明 -n <行数> 显示指定的行数(默认为 10 行) -c <字节数> 显示指定的字节数 -q 隐藏文件名(多文件时) -v 显示文件名(多文件时)
ipvsadm 使用指南
ipvsadm 参数添加虚拟服务器1ipvsadm -A [-t|u|f] [vip_addr:port] [-s:指定算法] -A:添加 -t:TCP 协议 -u:UDP 协议 -f:防火墙标记 -D:删除虚拟服务器记录 -E:修改虚拟服务器记录 -C:清空所有记录 -L:查看 添加后端 RealServer1ipvsadm -a [-t|u|f] [vip_addr:port] [-r ip_addr] [-g|i|m] [-w 指定权重] -a:添加 -t:TCP 协议 -u:UDP 协议 -f:防火墙标记 -r:指定后端 realserver 的 IP -g:DR 模式 -i:TUN 模式 -m:NAT 模式 -w:指定权重 -d:删除 realserver 记录 -e:修改 realserver 记录 -l:查看 通用命令12ipvsadm -ln # 查看规则service ipvsadm save # 保存规则 负载均衡器端配置安装 LVS12[root@lb01 ~]# yum -y install ipvsadm[ro...
iptables 学习
清理防火墙123iptables -Fiptables -Xiptables -Z iptables 命令选项输入顺序1iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作 表名包括 raw:高级功能,如网址过滤 mangle:数据包修改(QoS),用于实现服务质量 nat:地址转换,用于网关路由器 filter:包过滤,用于防火墙规则 规则链名包括 INPUT 链:处理输入数据包 OUTPUT 链:处理输出数据包 FORWARD 链:处理转发数据包 PREROUTING 链:用于目标地址转换(DNAT),路由前 POSTROUTING 链:用于源地址转换(SNAT),路由后 动作包括 ACCEPT:接收数据包 DROP:丢弃数据包 REDIRECT:重定向、映射、透明代理 SNAT:源地址转换 DNAT:目标地址转换 MASQUERADE:IP 伪装(...
nslookup 和 dig 指令
dig 和 nslookup 的安装Ubuntu、Debian: 1# apt install -y dnsutils Fedora / CentOS: 1# yum install -y bind-utils nslookup 命令详解nslookup 命令用于查询 DNS 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。nslookup 的用法相对来说还是蛮简单的,主要是下面的几个用法。 直接查询查询一个域名的 A 记录: 1nslookup domain [dns-server] 如果没指定 dns-server,用系统默认的 DNS 服务器。 查询其他记录直接查询返回的是 A 记录,我们可以指定参数,查询其他记录,比如 AAAA、MX 等: 1234nslookup -qt=type domain [dns-server]nslookup -q=type domain [dns-server]nslookup -type=type domain [dns-server]nslookup -querytype=type domain [d...
记一次因在 Spring 中动态注入自定义 Bean 报出的异常
在dubbo系列中我写了一篇探究Dubbo服务注册发现的原理,为了在spring中动态注入payservice接口,我利用了BeanDefinitionRegistryPostProcessor接口,中间利用factorybean来实现了一个自定义bean的创建过程. 但是待我运行之后报了这样的错误Could not resolve matching constructor (hint: specify index/type/name arguments for simple parameter, 不得以跟着refresh方法debug,一点点端详,查出了猫腻... 下面是整个代码链路跟踪图,看看这个PayService自定义接口是怎么一步一步注入到spring中的 refresh : 这就不说了,spring的核心方法都在这里 finishBeanFactoryInitialization : 完成此上下文的bean工厂的初始化,初始化所有剩余的单例bean preInstantiateSingletons : 确保所有非延迟初始单例都实例化,同时考虑到Factory...
Seata 的使用
初识Seata以及Seata的架构Seata是 2019 年 1 月份蚂蚁金服和阿里巴巴共同开源的分布式事务解决方案。致力于提供高性能和简单易用的分布式事务服务,为用户打造一站式的分布式解决方案。 官网地址:http://seata.io/,其中的文档、播客中提供了大量的使用说明、源码分析。 Seata事务管理中三个重要的角色 TC (Transaction Coordinator) - **事务协调者:**维护全局和分支事务的状态,协调全局事务提交或回滚。 TM (Transaction Manager) - **事务管理器:**定义全局事务的范围、开始全局事务、提交或回滚全局事务。 RM (Resource Manager) - **资源管理器:**管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。 整体的架构如图: Seata基于上述架构提供了四种不同的分布式事务解决方案: XA模式:强一致性分阶段事务模式,牺牲了一定的可用性,无业务侵入 TCC模式:最终一致的分阶段事务模式,有业务侵入 AT模式:最终一致的分...
探究分布式事务原理(一)
分布式事务<谨供参考> 分布式事务顾名思义就是要在分布式系统中实现事务,它其实是由多个本地事务组合而成。 关于分布式事务目前也有许多种解决方案,常说的几种如2pc,3pc,TCC,本地消息表,消息事务,最大努力通知 关于几种方案的介绍可以看下敖丙的文章<分布式事务的六种解决方案> 无论是哪种解决方案,目的都是希望保证多个系统的事务方法统一提交,要么全成,全么全败(原子性),所以这篇文章指在建立这样的想法上,手写一个分布式事务解决方案的demo,以为之后的分布式事务框架以及知识学习做积累在开发之前需要知道一点,spring的事务管理是基于(jdbc/java.sql.xxx)进行拓展,所以我们可以从这里着手 修改获取Connection的逻辑 设计图如下 图中画了四个角色 服务调用者(server1) 服务被调用者(server2) 全局事务管理者(tx-manager) 中间协调者(global-tx)-负责和tx-manager交互的 整个调用链路如下: 123456789101. 访问server1接口,server...
Spring Boot 使用虚拟线程
并发编程的演化线程总所周知,线程(Thread)是计算机中的最小执行单元,由操作系统直接进行调度,每个线程都有自己的执行路径和执行状态,可以独立地运行和并发执行多个任务。 线程是一种重量级的资源,线程的创建、销毁以及在多个线程之间切换都需要耗费 CPU 时间,一个系统可以同时创建、调度的线程数量有限。所以,现在应用基本上都会使用 线程池 来解决这个问题,通过池化线程,可以减少线程频繁 创建 和 销毁 的成本。 例如,Servlet 容器(Tomcat、Undertow、Jetty)的并发模型就是通过线程池,为每一个请求分配一个线程池中的线程进行处理。但是,一旦涉及到阻塞操作(IO、网络请求),当前线程就会被挂起进入等待状态,这个线程就不能去执行其他任务。这就导致了,使用传统线程池并发模型的服务器能同时处理的请求有限。 而,当代 Web 应用基本上都是 IO 密集形应用,请求中执行的业务往往涉及到与数据库进行交互、调用远程服务(Socket IO),本地磁盘文件读写等等,因此使用阻塞式线程是非常低效的。 异步非阻塞编程为了解决传统线程在执行 IO 操作时由于阻塞导致的低效,于是,开...
Spring Boot 整合 Kafka 多数据源
配置文件12345678910spring.kafka.wh.bootstrap-servers=192.168.1.130:9092,192.168.1.130:9093spring.kafka.wh.consumer.group-id=kafka_demospring.kafka.wh.consumer.enable-auto-commit=falsespring.kafka.es.consumer.auto-offset-reset=latestspring.kafka.es.bootstrap-servers=192.168.1.130:9094spring.kafka.es.consumer.group-id=kafka_demospring.kafka.es.consumer.enable-auto-commit=falsespring.kafka.es.consumer.auto-offset-reset=latestlog-topic-name=test KafkaWhConfig12345678910111213141516171819202122232425...
