首页
留言
友链
架子鼓
更多
壁纸
直播
时光机
关于
Search
1
谷豆电视直播代理源码,谷豆代理原理解析
45,355 阅读
2
华为鸿蒙系统无法安装 xapk APP 闪退 ( youtube vanced ) 的解决办法
27,241 阅读
3
[转载]青龙面板+Ninja从零安装教程
19,192 阅读
4
docker 之 typecho 镜像-不推荐
13,174 阅读
5
typecho插件 - 在线下载主题到服务器 - addTheme 发布
8,923 阅读
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
登录
Search
标签搜索
msyql
主从
华为
鸿蒙
xapk
闪退
APP 闪退
kindle
mobi
docker
pip
alpine
梦浪的小虾米
累计撰写
149
篇文章
累计收到
589
条评论
首页
栏目
技术
php
linux
mysql
redis
typecho
nginx
go
python
dnmp
工具
日记
理财日记
生活日记
生活
kindle 资源
公告
虚拟机
页面
留言
友链
架子鼓
壁纸
直播
时光机
关于
搜索到
149
篇与
的结果
2021-11-13
用户支付完成后,系统突然宕机了?怎么办?
事前在代码层面 对所有的异步支付回调日志进行存储宕机后第一时间跑15分钟内的支付回调日志处理脚本,确认15分钟内的支付成功和失败的订单无异常。跑15分钟内的未支付状态的订单脚本,从第三方接口里面确认未支付的订单是否支付 (大多数情况下,15分钟外的订单如果没有支付,都会自动取消)宕机后的复现查看系统日志,一项一项排除,确认问题所在。确认系统资源是否使用完毕,以及是否需要分库分表,增加缓存资源最后这只是本人的日常做法,如果您有补充,欢迎评论
2021年11月13日
936 阅读
0 评论
0 点赞
2021-11-12
记一次服务器宕机问题查找
1、服务转到我手中维护后发现服务会间隔性宕机。2、询问之前维护人员情况被告知是由于攻击并发量高导致连接被占满,服务器拒绝服务导致的。3、遂按此原因进行整改,添加限制逻辑使攻击者的连接快速失败。4、在深夜测试后上线。5、上线后客户端大规模报使用异常。6、回滚代码,查找原因。7、下载、整理筛选相关日志出来,统计调用频次,统计接口调用参数。8、发现服务宕机时会连续报数据库连接池获取连接失败。深入探查代码发现数据库组件的所有代码都会将异常吞了,并且未重新抛出异常,只是e.printStackTrace(),由于使用了日志组件,e.printStackTrace()不会打印在日志中,所以数据库操作的所有日志都获取不到,异常也不会抛出到调用层,只能通过返回结果判断执行情况(这是此公司自研数据库组件的重大失误)。9、通过多次服务宕机时的日志对比发现,宕机前会有大量的请求无法正确结束(但是由于日志太过粗略,无法获知非正确结束的请求的失败原因合返回参数)。10、统计调用频次发现,并发量并不高,在宕机前几分钟频次只有大约5次/s。在出现非正常结束请求后并会发飙升到30次/s。查看代码,并未发现高耗时的逻辑,并且这个并发量在单机系统中也并不高,查看代码的并发逻辑,排除由于锁等原因导致宕机。11、通过客户端模拟操作,发现客户端新登录和唤醒操作均会调用此服务,但是之前的维护人员只知道登录会调用。而且唤醒操作时如果调用此服务失败,就会以每秒一次的频率不断重试,所以判断这是服务宕机前接口调用频次飙升的原因,排除有人故意高并发调用导致宕机。12、由于日志打印不全,无法获取错误的具体日志。猜测是否是数据库被锁表,然而在一次宕机后查询数据库的连接日志,未发现锁表的进程。所以排除数据库锁表。13、观察日志,发现请求在非正常结束前出现了一次数据库异常,有错误日志,SQLExceptioncom.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Can’t call rollback when autocommit=true。查看代码发现捕捉错误后只是打印此日志,并未对数据库的连接进行进一步的处理(未关闭数据库连接),查找前几次的宕机日志均发现此现象,到此基本确定宕机原因:抛出此异常后数据库连接未正确关闭,导致可用的数据库连接越来越少,到最后所有连接被占满。14、问题复现:将数据库连接减少到5个,故意调用会引起数据库SQLException的接口5次,果然引发了宕机。15、修改代码,修改导致MySQLNonTransientConnectionException异常的代码,并且添加了关闭数据库连接的代码,上线。问题解决。总结:1、错误的日志十分总要,杜绝e.printStackTrace(),日志中几个元素必不可少:(1)、时间,越精确越好(2)、线程名称,区别越明显越好(3)、打印日志的位置,越精确越好,一般loger会标明打印日志的类名(4)、日志提示语,区分越明显越好(5)、请求的入参和返回结果也很重要,如果日志负荷不重的话应该打印出来。(6)、我支持使用异常来完成业务中错误的流转,反对使用状态码。比如在执行sql的时候发生了连接错误,可以通过重新包装异常,将异常直接一层一层抛到最上层的调用,然后统一打印日志,根据统一的请求返回规范返回错误码,这样方便统一处理,业务代码逻辑清晰。(7)、日志分片,合适的分片时间或者大小,一般是以时间和日志大小为准,常用的是1天/10M,我认为1天/100M也可以。2、所有的连接池、mysql连接池、redis连接池等等,一个很重要的问题就是使用后连接的归还与关闭,在使用框架的时候要注意。3、对于日志中的异常要敏感,因为一个异常很可能会导致其他不明显关联的地方出现异常。4、不可轻信他人的判断,很可能是误导。转载地址:https://blog.csdn.net/u011649691/article/details/103953422
2021年11月12日
2,291 阅读
0 评论
0 点赞
2021-11-11
快速开发一个微信发送文字到 typecho 的工具-时光机
前言最近公众号 Type时光机 挂了。而我又是那种偶尔会发散思考一下的人,总会把看到技术文章或者自身感悟发送到一个地方保存起来,所以 那个公众号挂了后,对我的生活产生了较大的影响(其实屁事没有,就是想搞一个工具),花了差不多30分钟的时间,搞了一个简易版的接收器用来接收微信发送的消息并且按照以前的格式发送到我的博客地址,自动更新内容到我的博客。技术栈LNMP php7.4 + laravel 8 + easywechat 5.8 + 微信测试号虽说只是简单的实现了接收和转发功能,但总代码行数不足 30 行,laravel 是真的强大,真的优雅。技术实现前的准备工作请确认自己有一个 https 的域名请确保自己有一个可以搭建网站的服务器或者 vps 或者虚拟主机nginx 或者 apache 上配置的 root 访问路径请指向: /您的网站目录/public微信测试号上申请好 app_id 和 secret技术实现逻辑温馨提示:下列所有的操作属于是搭建了一个新的网站,所以不要在 typecho 代码目录下进行注意:操作代码前,请先配置好网站相关的目录,然后在网站目录里面进行下列操作安装 最新的 laravel 框架,我这里是 8.6# laravel 的方式安装 laravel new 你的网站目录 #composer 的方式安装 composer create-project laravel/laravel 你的网站目录安装 laravel 的 easywechat# overtrue/wechat 5.x composer require "overtrue/laravel-wechat:^6.0"安装 http 客户端, laravel 默认自带composer require guzzlehttp/guzzle在 config/app.php 注册 ServiceProvider 和 Facade (Laravel 5.5 + 无需手动注册)'providers' => [ // ... Overtrue\LaravelWeChat\ServiceProvider::class, ], 'aliases' => [ // ... 'EasyWeChat' => Overtrue\LaravelWeChat\Facade::class, ],创建配置文件(你的网站目录进行下列操作):php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"修改应用根目录下的 config/wechat.php 中对应的参数即可(从微信测试号中获取如下参数即可)。更多可以参阅:https://github.com/overtrue/laravel-wechat执行命令 php artisan make:controller WxController 该命令会自动生成\app\Http\Controllers\WxController.php在 WxController.php 中写入如下代码。 请修改代码中的 这里填写您的博客地址 修改为您的博客接口地址即可,具体地址填写方式可以参考https://maomao.ink/index.php/web/438.html <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use EasyWeChat\Factory; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Http; class WxController extends Controller { public function index(Request $Request) { $config = config('wechat'); $app = Factory::officialAccount($config); $app->server->push(function ($message) { Log::info($message); switch ($message['MsgType']) { case 'event': return '收到事件消息'; break; case 'text': return $this->pushText($message); // return '收到文字消息'; break; case 'image': return '收到图片消息'; break; case 'voice': return '收到语音消息'; break; case 'video': return '收到视频消息'; break; case 'location': return '收到坐标消息'; break; case 'link': return '收到链接消息'; break; case 'file': return '收到文件消息'; // ... 其它消息 default: return '收到其它消息'; break; } }); $response = $app->server->serve(); return $response; } //推送文字消息 private function pushText($message) { //向我的博客发送消息 $response = Http::asForm()->post('这里填写您的博客地址', [ 'time'=>time(), 'content'=>$message['Content'], ]); // $response->successful(); return '已经发送到您的博客'; } }在中间件 App\Http\Middleware\VerifyCsrfToken 排除微信相关的路由,如:protected $except = [ // ... 'wechat', ];下面以接收普通消息为例写一个例子:假设您的域名为 overtrue.me 那么请登录微信公众平台 “开发者中心” 修改 “URL(服务器配置)” 为: http://overtrue.me/wechat。修改 app\wx\routes\web.php 文件 -- 修改后的文件如下所示,如果不懂,可以直接复制并覆盖<?php use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ //接收微信发来的消息 Route::any('/wechat', [\App\Http\Controllers\WxController::class, 'index'])->name('wechat');注意:一定是 Route::any, 因为微信服务端认证的时候是 GET, 接收用户消息时是 POST !在微信测试号后台绑定您的域名,绑定成功后,就可以开始愉快的玩耍了。效果图end至此,您就可以进行下一步的开发与调整了鸣谢您可以前往以下地址获取更多的帮助!easywechat:https://github.com/overtrue/laravel-wechat时光机详细使用方法:https://maomao.ink/index.php/web/438.html
2021年11月11日
2,324 阅读
1 评论
0 点赞
2021-11-06
月记
写日记确实可以,但是太顶了,有时间就在月记里面补充当天的日记-自己思维的发散,一些思考,没有时间就在月计里面补充当天干了嘛日记|# 2021/11/5早上去面试了一家 和智能硬件相关的职位,本来满心欢喜,以为能找到一个感兴趣的公司,并且适合自己的公司。结果去了才知道公司是一个孵化项目,说不定哪天就没了。然后整个团队10个人,6个人都是老板,还有3个是兼职,最后工资给不到位,加班10-11, 大小周,特么的,典型的钱少事多福利差离家远。下午,前同事在私密小群里面问我们有没有空,这周末聚一下,其实我心里没有太多想去的想法。原因是:现在混的差,不想去听他们幸福的吐槽,为啥叫幸福的吐槽:公司的下午茶贼拉稀,喝起来怪怪的。公司的加班贼鸡多,多的人很烦。简直就是在拿命换钱(各位,这是有加班费的,不是耍流氓的加班)。唉,老大要让我负责整个新人培训,搞好以后直接升项目主管。我现在还看不到影子,只是现在给我一个导师身份汝人言否?真是没有对比就没有伤害。也不考虑考虑我这个无业游民的感受,我该怎么办呢?我也很绝望。最后时间定于周日,因为周六某个同事的室友的女朋友要过来聚餐,我们也可以选择周六过去一起聚餐,虽然同事的室友和我们的关系看起来很复杂,但是对于我们来说:没戏,别想着周六和人家的室友的女朋友一起干点有意思的事。我当然义正言辞的拒绝了这次友好的聚会,理由也很简单:我周日要去帮朋友搬家(我也确实是在周二就已经确定好的,所以您来晚了,下次赶早儿)看了一会儿小说,困了,睡觉,睡了半个小时,还困,强行让自己起床。起床第一件事看看手机,看看这个世界是不是缺了我就运行不下去了,嘿,还真有,收到一个未知来电。还是固话,心中猜测可能是银行的人,毕竟像我信用这么好的优质客户,所有的银行都巴不得我使劲消费,好让我没钱找他们贷款。休想,我是你们这些声音怪得不到的男人。虽然得不到我,但是这不妨碍我来撩拨你的心弦,反正又不犯法,还能听听声优对我撒娇,嗯,我要拨打回去,坚决的拨打回去,我才不是要听声音,我就是要看看有没有适合我贷款的途径。电话接通了,我飞速的按下了关闭麦克风按键,嘿嘿,我先听听是不是软妹,如果不是,抱歉,你不应该出现在我的人生中。电话那头,一个妹子的声音缓缓传了出来,不是特别软,但是是女的:“您好,我是xx公司的hr,我收到你的简历了,请问您的学历是什么?我看到您的学历是大专,请问是统招吗?” 赶紧打开麦克风并回答:"不是"。对面:“那不好意思,我们本次只招收统招本科,谢谢您对我司的关注,以后有机会在进行合作,再见” 瞧瞧,有文化的人就是不一样,连说辞都那么好听,我虽然别的本事没有,但是挂断电话的先机还是要把握在手里的,毕竟这是我一个男人应该担起的责任。 听她说完后,我第一时间挂断了电话,仿佛就是我甩了她一样。然后我小说瘾又犯了,我又想看小说了,我打开阅读,继续看起了小说。晚上,我的头脑突然灵光了,我开始反思下午的遭遇:大环境下受疫情影响,本人高中毕业,成考大专,技术上实力划水,所以就是一个菜鸡。说菜鸡都高估我了,因为鸡好歹还有点肉,个头很大,而我充其量就是菜蚁。我脑海中突然迸发出一个念头:想要找到工作,短时间内,学历方面进无可进,只能从技术方面入手了,想办法提升技术能力,嗯,看视频看技术文档确实可以 ,但是没有实操过,不知道里面是不是有什么问题,所以面试不容易通过,那么我是不是可以自己搞一套高并发的东西,自己通过技术手段模拟高并发,大数据呢?操蛋,怎么模拟高并发,怎么大数据呢?终于懒癌占了上风,我选择了躺平,选择了继续看《逆袭1988》日记|# 2021/11/6早上,和老余确定了下午去塘朗山溜达一下。然后就开始逛各种博客了。发现了 “烟城听雨”这个博客写的日志很对我的胃口,于是我也开始写起了这种流水日志。也算是一种另类的复盘了吧。今天和老余去塘朗山转一圈,嘿嘿,爬一次山又可以强迫自己锻炼一次身体了。下午 去塘朗山爬山,地铁上遇到各种靓丽妹子,我终究没有像那个博主那样,正大光明的看妹子,正大光明的欣赏妹子,我看了一眼后,只感觉很好看,就没有然后了,我没有不知所谓的去要微信,去做进一步的 yy,可能我知道自己几斤几两吧,知道自己是什么货色。不过不得不说深圳的妹子质量真高,深圳 yyds日记|# 2021/11/7上午去帮好友的好友===我的好友搬家,搬完之后,我就又去了前同事的那个聚会了。为啥要去呢?我想了想原因:因为我是一个懒人,能一次性干完的事情,决不搞两次,反正现在精力还算充足。干就完了,不然下周他们再约的话,又要影响我的其它安排。日记|# 2021/11/8果然是不作死就不会死,起床后,发现大腿根酸痛,小胳膊酸痛,屁股酸痛,浑身上下没几个地方是好的。不过此时回想起来,满是自豪感,因为拒绝拖延从昨天做起。我也知道明天后天,我又会开始拖延了,但是至少在昨天我没有拖延,嘿嘿日记|# 2021/11/9今天又面试了一家公司,看起来应该是不差钱的那种,整层楼都是他家的。面试的也很简单,然而并没有什么卵用,没有面试通过。各种福利待遇离我远去。。。我进行了一波自我技能审查,发现除了大数据、高并发外,好像也就是这个作用了,那么我是不是可以进行突击训练呢?模拟进行高并发,通过高并发生成海量数据(100w),以及海量数据缓存过期,某个值过期。我是不是可以这样处理一下呢。通过海量数据来进行数据库读操作,然后根据读操作判断是否需要进行分库分表,索引优化分析。好吧,我又想咸鱼了,唉,我的自律能力太差了,我又想看小说了。继续《逆袭1988》日记|# 2021/11/10目前想搭建一个能够通过微信公众号发送日记到博客的工具,尝试着把这个工具的开发周期分解出来,也是自我实现的一种方式。今天玩了几把刨幺游戏有所感悟:刨幺不是一个人的游戏,也不是先跑就完事的游戏,而是要团队配合,你手上的牌再好。也要计算一下,收的分是否够,比如当计算得知:只能得到90分时,你的牌贼好,队友的牌拉稀的时候,那就果断得到90并且跑,如果队友和你的牌都很拉稀的时候,那就 小分小分的上,让牌好的人上大牌觉得不划算,不上大牌又眼睁睁的看着分跑。适时让队友跑点小牌,而不是一味的要主动权。晚上开发了一个工具-时光机。它的作用是用户在微信里面发送相关文字后,微信会自动转发到这个工具里面,然后这个工具自动转发给 typecho 的后台。没错就是这个早上想的那个工具。然后顺带写了一篇这个工具的使用博客日记|# 2021/11/11又一次梦回高中时代,我再次沉浸在梦中不愿醒来。梦中数学老师再讲题,但是我当时的状态却是困的眼睛都睁不开,却又强制让自己睁开眼睛,于是就这样醒了刚刚看了那篇清华贫困生的文章,突然引发了自己的自责:我的家庭条件也很差,我自己也没有很努力,社会就业条件也不好,导致了我悲惨的现状-失业,找不到工作。我偶尔会在内心抱怨家庭不给力,和老父亲聊天的时候,态度不温和。此时回想起来,我简直是一个王八蛋!!!我要改变现状的话只能去突破,不要指望自己看看小说就能获取到想要获取的。日记 | 2021/11/12今天又是咸鱼的一天。突然看到一个远程工作者的播客,她的远程工作经历勾起了我对远程工作的向往。但是我也曾经参加过远程工作,所以我知道我目前不适合远程工作,因为远程工作是以结果为导向,而不是以过程为导向。而我目前只能做到以过程为导向。我在思考我如何改变才能进入远程工作。为啥突然想远程工作了?薪资到顶了,因为我是高中,技术也咋地,也没有重视过技术。想办法顾家了,最好是离家超级近的太内卷了,以前花一份精力拿高薪,现在花三份精力还找不到工作,真的是我菜?综上: 最好找个远程吧
2021年11月06日
1,241 阅读
0 评论
0 点赞
2021-11-06
失业了,碎语-发散思维
人生总是在最低谷的时候,在反思自己的当前待人人家比我聪明多了,那里需要我来为他们分享我的观点这不是小说,所以谁也不是谁的中心-对待朋友之道别人的冷淡与我何关?我不能因为别人的冷淡就忽视自己真的值得吗?分享自己的看法,分享自己的想法自我为什么我总是集中不了注意力?总是在看10分钟视频后就分神?因为没有找到目标,没有找到兴趣所在。我需要培养一个自己的兴趣爱好,户外的兴趣爱好和室内的兴趣爱好。我其实并没有时间去社交,我更多的应该是读书充实自己,做一些自己想要做的事情来满足自己,而不是为了打发时间而看无脑网文,而不是为了打发时间进行的无聊的聊天。
2021年11月06日
1,427 阅读
1 评论
1 点赞
1
...
16
17
18
...
30