Java调试-远程调试
Java 远程调试
启动脚本中添加选项,并重启(JavaSE 5以后java -agentlib:jdwp=…)
1JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
JavaSE 5之前(java -Xdebug -Xrunjdwp:…)
1CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=10086,suspend=n,server=y
参数说明
transport
指定运行的被调试应用和调试者之间的通信协议,有如下可选值:
dt_socket: 采用socket方式连接(常用)
dt_shmem:采用共享内存的方式连接,支持有限,仅仅支持windows平台
server
指定当前应用作为调试服务端还是客户端,默认的值为n(客户端)。
如果你想将当前应用作为被调试应用,设置该值为y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为n。
...
工具-IDEA使用技巧
idea 方法模板
1234567891011 ccmt/** * @Description: * @Author: HoleLin * @CreateDate: $DATE$ $TIME$ * @UpdateUser: HoleLin * @UpdateDate: $DATE$ $TIME$ * @UpdateRemark: 修改内容 * @Version: 1.0 */
SpringBoot中的跨域问题
SpringBoot中的跨域问题
参考文献
Spring Boot 中实现跨域的 5 种方式,你一定要知道!
浏览器的同源策略
详解跨域(最全的解决方案)
CORS
产生跨域问题的原因
主要原因: 浏览器的同源策略(Sameorigin Policy)
同源策略的作用: 同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。
同源: 若两个URL的协议(protocol)[TCP.HTTP等],端口(port)和主机(host)[域名/IP地址等]都相同,则表示这两个URL是同源的.这个方案也被称为**“协议/主机/端口元组”**,或者直接是 “元组”。
非同源限制:
无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB;
无法接触非同源网页的 DOM;
无法向非同源地址发送 AJAX 请求;
跨域示例
跨域: 协议(protocol),端口(port),主机(host)三者之中任意一个不同,则会导致跨域;
下表给出了与 URL ...
Java基础-集合类-HashMap
参考文献
HashMap源码分析(jdk1.8,保证你能看懂)
理论
HashMap最早是在JDK1.2中出现,直到JDK1.7一直没太大变化,但是到了JDK1.8突然进行了一个很大的改动.其中一个显著的改动就是:
之前JDK1.7的存储结构是数组+链表
到了JDK1.8变成了数组+链表+红黑树.
另外,HashMap是非线程安全的,也就是说多线程同时对HashMap中的某个元素进行增删改操作时,是不能保证数据的一致性的.
在JDK1.7中,首先是把元素放在一个个数组里面,后来存放的数据元素越来越多,于是就出现了链表,对数组中的每个元素,都可以有一条链表来存储元素.这就是有名的"拉链式"存储方法
后来存储的元素越来越多,链表也越来越长,查找一个元素的时候效率不仅没有提高(链表不适合查找,适合增删),反而下降了不少,于是在JDK1.8中对这条链表进行了改进–使用红黑树. 将链表结构编程红黑树,原来JDK1.7的优点是增删效率提高,在JDK1.8中不仅增删的效率提高了,查找的效率也提升了.
核心是基于哈希值的桶和链表
一般用数组实现桶
发生哈希 ...
Kafka-(一)基础理论
参考文献
《面试八股文》之 Kafka 21卷
Kafka常见面试题
Kafka 常见面试题整理
最新基准测试:Kafka、Pulsar 和 RabbitMQ 哪个最快?
kafka专题:kafka的消息丢失、重复消费、消息积压等线上问题汇总及优化
Kafka在中信建投的实战
https://kafka.apache.org/documentation/
什么是消息中间件
消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步,可靠的消息传输的支撑性软件系统;
消息传递技术: 队列和发布-订阅
队列:在队列中,一组用户可以从服务器中读取消息,每条消息都发送给其中一个人。
发布-订阅:在这个模型中,消息被广播给所有的用户。
消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成.通过提供消息传递和消息排队模型,他可以在分布式环境下扩展进程间的通信.
什么是Kafka
Kafka是分布式发布-订阅消息系统,它最初是由LinkedIn公司开发的,之后成为Apache项目的一部分,Kafka是一个分布 ...
Kafka命令实操
Kafka命令实操
1.启动 broker
1./bin/kafka-server-start.sh -daemon <path>/server.properties
./bin/kafka-server-start.sh <path>/server.properties &
有问题,虽然通过添加&符号使该命令在后台运行,但当用户从回话登出(log out)时该进程会被自动kill掉,从而导致broker关闭
建议使用
nohup .bin/kafka-server-start.sh <path>/server.properties &
验证broker是否正常启动可以通过server.log日志文件查看输出项
2.关闭broker
12345bin/kafka-server-stop.sh或者1. 使用jps命令直接获取Kafka的PID2. 若没有安装JDK,则运行`ps ax|grep -i 'kafka\.Kafka'|grep java|grep -v grep|awk ' ...
工具-pm2
pm2
参考文献
pm2 QuickStart
常用命令
安装
123$ npm install pm2@latest -g# or$ yarn global add pm2
启动app
123456789101112131415161718192021222324252627282930$ pm2 start app.js# Specify an app name--name <app_name># Watch and Restart app when files change--watch# Set memory threshold for app reload--max-memory-restart <200MB># Specify log file--log <log_path># Pass extra arguments to the script-- arg1 arg2 arg3# Delay between automatic restarts--restart-delay <delay in ms># Pref ...
firewall
firewalld
firewalld常用命令
启动firewalld服务:
1systemctl start firewalld.service
关闭firewalld服务:
1systemctl stop firewalld.service
重启firewalld服务
1systemctl restart firewalld.service
查看firewalld状态
1systemctl status firewalld.service
开机自启firewalld
1systemctl enable firewalld
查看版本
1firewall-cmd --version
查看帮助
1firewall-cmd --help
显示状态
1firewall-cmd --state
查看所有打开的端口
1firewall-cmd --zone=public --list-ports
更新防火墙规则
12firewall-cmd --reload* 每次更改firewall规则后需重新加载
添加开放端口
1firewall- ...
iptables
参考文献
iptables 及 docker 容器网络分析
iptables详解(1): iptables概念
iptables
聊聊Iptables 的五表五链,你学会了吗?
企业防火墙之iptables
iptables
iptables有一个很重要的设置概念就是5表5链
一个filter表,一个nat表,一个mangle表,一个raw表,一个security.它们分别作用于不同的方向,
filter表: 此表用于数据包过滤.它有三个内置链: INPUT(用于本地传递的数据包),FORWARD(用于通过系统路由的数据包)和 OUTPUT(用于本地生成的数据包)
内核模块: iptables_filter
nat表network address translation,网络地址转换功能;
此表用于网络地址转换(nat).它有三个内置链: PREROUTING(用于到达网络接口的数据包),INPUT(用于本地生成的数据包)和 OUTPUT(用于离开网络接口的数据包)
内核模块: iptable_nat
mangle表拆解报文,做出修改,并重新封装的功能; ...
Nginx遇到问题
起始页为403 Forbidden
由于启动用户和nginx工作用户不一致所致
看nginx的启动用户,发现是nobody,而为是用root启动的
ps aux | grep "nginx: worker process" | awk '{print $1}'
解决方法: 将nginx.config的user改为和启动用户一致
12vi conf/nginx.conf// 修改 user 配置项
缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。
权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
SELinux设置为开启状态(enabled)的原因。
查看当前selinux的状态 /usr/sbin/sestatus
将SELINUX=enforcing修改为SELINUX=disabl ...