最新文章反编译第三方jar包
修改一个已经编译好的第三方jar包的class文件,需要先反编译jar包,将其转化成可编辑的Java源码文件。可以使用一些反编译工具如jad、jd-gui、procyon等来实现反编译。这里以jd-gui为例,具体步骤如下:
下载并安装JD-GUI 1.6.6软件;
打开jd-gui软件,选择“File”→“Open”,在弹出的窗口中找到需要修改的jar包,然后点击“OK”;
在jd-gui中找到需要修改的类文件,右键点击该文件,选择“Save All Source”,将该jar包输出到本地目录。
使用IDEA或者其他开发工具打开项目目录,配置class文件输出目录
根据编译器提示,导入需要的包,保证项目编译通过
修改对应的Java源码文件,生成class文件;
将修改后的class文件替换原来的class文件,放到项目中测试。
使用自建RocketMq消息队列调试服务
一 背景公司很多服务都用到消息队列,不过之前只有正式的mq,和测试分不开,之前的crm补丁用的Play,服务在接收测试消息时影响到正式服务,还有一方面,因为网站端把注册,登录,推广,提醒消息都往一个mq里面发,这样会导致消息积累,注册数据进入CRM有延时,所以之前自建了一个mq,将消息进行转发,防止消息积累,也可以方便自己测试,和查看mq运行情况
二 安装环境
公网服务器一台
安装JDK环境
安装MAVEN环境
三 RocketMQ下载
从Apcehe下载
从GitHup上下载
下载rocketmq管理可视化页面
下载完成,解压文件
![]
四 配置文件修改
进入rocket4.7.1/conf,修改broker.conf配置文件
注意:默认服务端口是9876,在防火墙我们不仅需要放开9876端口,同时还要放开10911, 10912, 10909这三个端口才行,不然连接服务会报错。
10911是remotingServer使用的监听端口,remotingServer主要处理以下三类消息
producer发送的消息
conumser在消费失败或者消费超时发送的 ...
PlayFramework请求堵塞
我playframework请求堵塞
ChatGPTPlay框架是一种异步的Web框架,它使用非阻塞I/O模型来处理请求。这意味着每个请求都不会阻塞线程,而是在异步的执行上下文中处理。
然而,如果您的应用程序中存在某些阻塞操作(如数据库查询或网络请求),它们可能会导致请求堵塞。这样做会使应用程序的性能变差,因为它会占用服务器上的线程,从而减少可用的线程池大小。
为了避免这种情况,您可以使用Play框架提供的异步API。这些API允许您将阻塞操作委托给另一个执行上下文,从而使请求不会被阻塞。
例如,如果您需要执行一个数据库查询,您可以使用Play的异步API来执行该查询并在完成后返回结果。这样,您的线程将在查询执行期间保持空闲状态,从而允许其他请求使用该线程。
总之,为了避免Play框架请求堵塞,您应该尽可能使用异步API,并避免在请求处理期间执行阻塞操作。
我异步api示例
ChatGPT以下是一个使用Play框架异步API的示例
我异步api示例
ChatGPT以下是一个使用Play框架异步API的示例:
1234567891011121314151617public cl ...
数据库表结构导出
数据库表结构导出来自你的消息:mysqldump导出数据库的表结构,不需要数据
来自 ChatGPT 的消息:,可以使用以下命令:
1mysqldump -u [用户名] -p[密码] --no-data [数据库名] > [导出的文件名].sql
其中,--no-data参数表示不导出数据,只导出表结构。 [用户名]、[密码]和[数据库名]分别为你的数据库的用户名、密码和数据库名,[导出的文件名].sql为你想要导出的文件名。
例如:
1mysqldump -u root -p --no-data testdb > testdb_structure.sql
这个命令将testdb数据库的表结构导出为testdb_structure.sql文件,不包含数据。
来自你的消息:解释下mysqldump -h localhost -u u_app -pczbRp~wd123 –skip-lock-tables -d caizhaobang > caizhaobang.sql
来自 ChatGPT 的消息:这个命令是使用mysqldump工具从远程的MySQL服务器 lo ...
Git删除远程已提交文件,保留本地副本
不想推送文件来自你的消息:git commit的文件不想push到远程库,怎么解决
来自 ChatGPT 的消息:可以使用git的忽略文件机制来解决这个问题。
在仓库根目录下创建一个名为.gitignore的文件。
在该文件中列出您想忽略的文件和/或文件夹的名称。例如,如果您想忽略文件“temp.txt”,则可以这样编写:
temp.txt
如果您想忽略整个文件夹“logs”,则可以这样编写:
logs/
执行git add和git commit命令以将.gitignore文件添加到本地仓库中。
提交更改后,git将不会跟踪列在.gitignore文件中的文件和文件夹。
请注意,如果.gitignore文件中列出的文件/文件夹已经被git跟踪,那么您需要使用git rm –cached命令将它们从git跟踪列表中删除,然后再添加到.gitignore文件中。
来自你的消息:git rm –cached 怎么删除指定的文件
来自 ChatGPT 的消息:可以使用以下命令删除指定文件:
1git rm --cached <filename> ...
服务器CPU占用异常问题查找
背景:阿里云app相关服务器,频繁报警,提示cpu占用异常困难&问题:没有相关云资源权限,无法查看报警提示,不知道服务器上运行哪些服务解决步骤:
开通服务器权限,登录服务器,查看当前服务器使用情况
top命令:查看占用比较多的应用
jps:查看运行的java服务
ll /proc/19703/cwd 查看对应pid运行的服务路径
crontab -l 查看服务定时启动脚本
top -p 21972 -H 查看该java应用所用线程占用情况
出CPU消耗较多的线程id,如22055,将22055转换为16进制0x5627,注意是小写
使用jstack 21972|grep -A 10 0x5627来查询出具体的线程状态
分析负载高的线程栈都是什么业务操作,优化程序并处理问题
Git使用子模块
我git如何创建子模块关联远程仓库,然后进行拉取和提交
ChatGPT
创建子模块并关联远程仓库
在父仓库中执行以下命令:
1git submodule add <远程仓库地址> <子模块目录>
例如:
1git submodule add https://github.com/user/repo.git submodules/repo
这将在父仓库中创建一个子模块,并将其关联到远程仓库的地址。
拉取子模块
在父仓库中执行以下命令:
1git submodule update --init --recursive
这将拉取子模块的代码,并将其更新到父仓库中。
提交子模块
在父仓库中进行修改后,需要将子模块的修改提交到子模块的仓库中。可以进入子模块目录,使用普通的git命令进行提交。
例如:
1234cd submodules/repogit add .git commit -m "修改了子模块"git push origin master
完成子模块的提交后,返回到父仓库,使用普通的git命令提交父仓库的修改即可。
例如:
...
未读
Jenkins持续化管理工具配置
准备工作1. 准备 Git 仓库
1.1. 通过网站右上角的「+」号,选择「新建仓库」,进入新建仓库页面
1.2. 新建仓库
1.3. 打开项目并点击菜单栏上的【CVS】–》【Import into version control】–》【Create Git Repository】创建本地仓库
1.4. 在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录。
1.5. 右击项目点击【Git】–》【Add】,接着点击【Git】–》【Commit Directory】在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内。
1.6. 右击项目点击【Git】–》【Repository】–》【Remotes…】。在打开的【Git Remotes】窗口中添加码云的远程仓库。码云的远程仓库地址可以在码云仓库内找到。
1.7. 点击【OK】后接着输入码云的账号密码。
1.8. 上传代码到码云,右击项目点击【Git】–》【Repository】–》【Push…】在打开的【Push commits】内可以看到已提 ...
python自带的mail函数发送邮件
smtplib与email模块(实现邮件的发送)SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。
smtplib模块smtplib模块定义了一个简单的SMTP客户端,可以用来在互联网上发送邮件。
定义的类有如下:
123class smtplib.SMTP([host[, port[, local_hostname[, timeout]]]])class smtplib.SMTP_SSL([host[, port[, local_hostname[, keyfile[, certfile[, timeout]]]]]])class smtplib.LMTP([host[, port[, local_hostname]]])
还有一些已经定义好的异常
123456789exception smtplib.SMTPExceptionexception smtplib.SMTPServerDisconnec ...
ssh连接失败
使用面板出现ssh连接失败如何处理
查看sshd运行情况升级完php和面板出现了ssh连接失败的问题,按照百度提示方法,查看端口占用,替换端口
在服务器上逐条执行下:
12pip install paramiko==2.0.2bt reload
如果第一种没有解决,就逐条执行下一面的每条命令:
123ssh-keygen -q -t rsa -P "" -f /root/.ssh/id_rsacat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keyschmod 600 /root/.ssh/authorized_keys
到此基本能解决您的ssh连接失败的问题。倘若问题不能解决,请尝试使用putty或者xshell连接下试试。
然而,执行上面的命令均无用 尝试使用
1systemctl status sshd.service;
得到日志如下
根据连接异常进行处理从日志就可以很明确的看出登录ssh失败的原因了,就是权限的问题,本来我没有动过.ssh文件夹的权限,但是不知为何变为damen 75 ...