自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

分享不一样的技术,与你一起共同成长!

随手点关注不迷路, 不定期分享优质IT技术经验,秉承原创为主的原则,拒绝没有思考的转载!

  • 博客(131)
  • 资源 (5)
  • 问答 (2)
  • 收藏
  • 关注

原创 Python Runtime指标采集

但是很不幸,Python这么大的生态,我把全网都翻了一遍,竟然没有开源成熟的工具对Python Runtime指标进行暴露的exporter或者类似的工具....

2024-06-11 09:13:43 1001

原创 GORM数据库连接池对接Prometheus

golang的database/sql包定了关于操作数据库的相关接口,但是没有去做对应数据库的实现。这些实现是预留给开发者或者对应厂商进行实现的。其中让我比较关注的是golang的sql包有没有实现连接池pool的机制呢?毕竟golang是静态语言,类似Java我们看到很多连接池的实现例如阿里巴巴的Apache druid。给开发者提供了一个高效的数据库连接池,提高应用的性能,连接池保持与后端数据库的长连接,在需要的时候直接使用即可。使用完毕后,将连接归还到连接池中...

2024-05-01 20:10:07 994 1

原创 p0级故障-nptd和ntpdate用法

归根结底,使用nptd代替ntpdate才是最明智的选择,即使NTP源服务器发生错误,也不会造成太大损失。nptd会停止同步NTP源服务器,利用自己的本地时间继续往下走,而不会直接像ntpdate暴力产生时间跳跃。。。

2024-04-26 08:50:32 679 4

原创 Redis高可用之Sentinel哨兵模式

Redis关于高可用与分布式有三个与之相关的运维部署模式。分别是主从复制master-slave模式、哨兵Sentinel模式以及集群Cluster模式。这三者都有各自的优缺点以及所应对的场景,以及对应的业务使用量,我们该怎么选择...

2023-12-05 00:11:47 1210 1

原创 SkyWalking入门之Agent原理初步分析

当前稍微上点体量的互联网公司已经逐渐采用微服务的开发模式,将之前早起的单体架构系统拆分为很多的子系统,子系统封装为微服务,彼此间通过HTTP协议RESET API的方式进行相互调用或者gRPC协议进行数据协作。早期微服务之后几个的情况下,我们遇到问题可以直接简单、快速地通过采集日志进行分析,是A服务存在问题或者B服务存在问题等快速恢复服务。但是,如果微服务数量已经到达了几十个、甚至上百个,这些微服务之间的调用关系会变得错综复杂.....

2023-09-15 16:07:32 1310

原创 snmp_exporter监控交换机网络流量

最早是IETF的研究小组提出来的,在SGMP协议的基础之上,加上新的管理信息结构和管理信息库,让SGMP更加全面。Zabbix可以根据交换机开启的snmp服务,采集到交换机各个口的流量指标,但是由于现在已经全面转向Prometheus体系,所以只能通过一些方法将这个监控接入Prometheus。我采用文件发现的形式,将配置写在switch.json中, 这样以后修改关于交换机的信息,更改后直接热加载,如果直接写死在promeths.yml每次都要重启prometheus.运行命令测试snmp是否正常(

2023-06-28 16:45:24 3994 1

原创 通过SSH隧道安全消费Kafka数据

通过SSH隧道的方式,在IDC服务器做一个SSH隧道代理到阿里云服务器的kafka端口,这样从公网消费的kafka数据都经过隧道进行传输,避免了数据通过明文传输的风险。但是搭建了SSH隧道后,客户端竟然不能从Kafka进行消费...

2023-05-09 17:24:27 976

原创 prom-elastic-alert日志告警工具

目前市场上基于ELK的日志系统,其中数据采集、数据过滤、数据存储可以采用Filebeat、Logstash、Elasticsearch进行实现。但是日志告警相关工具较少,要么购买Elastic的付费服务可以使用日志告警功能,要么我们只能选择一些相对靠谱的开源方案例如。所以后来,我自己花了点时间造轮子在Github进行了开源,解决了我们使用Elastalert过程中的一些问题。1.针对数据的展示和分析我们可以采用Kibana进行可视化分析,同时也可以对接Grafana进行数据分析。

2023-01-12 11:42:46 27959 1

原创 docker的通俗理解

自己买了个服务器,前不久搭建好的一个网站,想要再搞一个站点,无奈只能修改端口后,再部署另外一个站点。繁琐的配置运行环境,迁移网站,是否让你感觉到很繁琐?服务器不想用了,想搬迁到另外一台服务器去部署,先是拷贝原有数据,在新的服务器上又开始搭建环境进行部署,这些费时间的事情现在只需要几分钟就能完成,那就是docker技术。 docker通俗按照自己的理解来说,就是类似...

2016-11-08 14:12:26 142021 7

原创 Systemd服务配置排坑-TasksMax参数

针对systemd的配置信息,需要我们详细的去了解相关参数,才能写出较少的坑的sevrice文件。我们可以直接通过systemctl --show | grep 的方式来过滤一些关键词,从而学习这些配置项的含义,要不然遇到这种坑真的难以排查...

2024-06-06 09:30:53 448

原创 Arthas反编译与重新加载class

Artahs除了可以做这些trace、watch, 其实jad、mc这些命令也是很强大的。这某些特殊情况下可以使用反编译、重新编译来解决特殊情况...

2024-05-25 15:23:40 408

原创 Gin与OpenAPI(Swagger)的使用

我们在实际前后端开发的过程中,其实前后端可以并行开发,这样可以缩短我们的项目工期,提高工作效率。但是,并行工作的前提是,前端知道后端要返回怎么样的接口数据,后端知道前端需要怎么样的数据。 由此, 前后端必须先对API结构进行一个"约定", 约定需要哪些接口、接口的URL、接口的参数、接口的响应等参数,明确后,双方基于这个接口文档/接口约定进行开发。但是前端,开发过程中,后端接口还没做好,怎么对接呢?...

2024-05-25 15:00:48 977

原创 Golang图片验证码的使用

使用mojocn/base64Captcha库可以简单的生成验证码base64图片信息,方便了我们进行Web开发。如果需要更高级或者详细的使用方式,请查看官方文档。在实现Store存储驱动的时候,还要考虑我们的图片验证码例如访问频率限制、怎么针对有特征的客户端进行限流, 除了验证码有过期时间以外, 如是否有IP访问限流?或者其他防御手段, 这样才能确保我们的后端Redis不会被恶意刷新,导致Redis内存撑爆...

2024-05-01 16:25:27 1248 1

原创 Gin的中间件执行流程与用法

我们在使用Gin框架进行Web开发的时候,基本上都会遇到登录拦截的场景。 例如某些接口必须在登录以后才能访问,根据登录用户的信息以及权限,拿到属于自己的数据, 反之,没登录过则直接拒绝访问。 那么我们怎么做到这些登录拦截呢? 做过Java spring开发或者其它框架开发的同学知道,这种场景一般都是设置一个登录的拦截器,全局统一在拦截器进行登录权限校验处理, 符合登录条件则放行请求到业务函数,否则拒绝访问。 这样可以方便我们做统一管理,不需要每个业务函数再自己重复写一套一模一样的拦截逻辑。。。

2024-04-26 09:16:54 908 5

原创 JSON劫持与while(1)

JSON 劫持,也称为“JavaScript 对象表示不法劫持”。当应用程序没有适当地防范此类攻击时,此漏洞允许攻击者从受害者的浏览器中窃取敏感数据。JSON 劫持利用同源策略,这是一种安全措施,可防止网页向与提供网页的域不同的域发出请求。这是通过查询资料找到关于什么"JSON劫持"的解释.这个JSON劫持一般发生与JSONP、CSRF跨站伪造请求有点异曲同工之处...

2024-04-25 14:01:36 524

原创 Java加载的class无法正常使用的问题

class成功加载到了JVM,不代表这个class就能正常初始化使用。 因为加载正常,只是代表class没语法问题、能够通过CLASSPATH正常找到,并且加载进来而已。但是class的使用还要经过初始化的过程, 这个过程需要调用到class的static静态代码块, 所以,如果静态代码块抛出异常没有得到处理,也会导致class无法正常初始化进行使用...

2024-04-25 13:08:14 1099 4

原创 PHP性能提升方案

PHP语言开发效率高,特别应用于适合中小型项目,对于创业初期敏捷开发验证项目可行性或者Demo演示绝对占据优势。但是随着现在Web应用的复杂性,针对项目要适应高并发、高流量的访问特性,PHP确实在性能方面相对Go、Java存在一定的差距。那真的这种情况,我们如何应对呢?

2024-03-31 16:32:55 1228

原创 Caddy之静态站点应用场景

无意之中看到公司部门的软件介质下载站点不是使用Nginx部署,而是使用Caddy。就比较好奇了,这个Caddy是个什么东西?为啥他们没用Nginx呢,带着好奇心搜索了一下相关资料。

2024-03-31 15:40:00 510

原创 Django屏蔽Server响应头信息

安全原则再次强调, HTTP响应头信息不要暴露任何后端相关实现以及版本信息,否则会被攻击者进行漏洞扫描或者注入,存在安全隐患!!!这个一点必须时刻谨记这次是安全扫描测试,下次可能就是攻击者利用该漏洞进行破坏了...

2024-03-29 09:32:55 571 1

原创 Docker实现在线代码运行平台-源码分析

也许大家平时会有用到一些在线代码运行的网址, 方便我们做一些语法测试或者学习。 例如执行Python代码、Java代码、Shell代码等等, 有时候自己本地环境不具备的时候做一些简单的脚本测试还是蛮实用和方便的。但是你知道这种平台是怎么实现的吗? 本文将带你一起探索...

2024-03-20 17:23:49 1018 3

原创 谈谈获得软考证书感悟

其实这个考试我准备了应该是3周的时候,下班回家就先把视频刷一遍,后面就跟着做题,论文有技巧,挑了往年的真题进行训练。本来我以为自己准备了6个主题,都自己写了一遍脑海里有印象,但是运气不是太好,主题每一个是我写过的,很尴尬。当时都想放弃了,但是看了周围考试的同学,大家都在努力的提笔,我也坚持下去,将之前写过的东西结合主题,写到了2700字左右的一个字数。心里想着,一点都不写肯定不会过,但是至少我写满了2700字,还有一丝希望!

2024-03-14 12:50:32 378

原创 Arthas-Java应用生产可用诊断神器

如果你的程序是Java开发,有时候生产环境出现性能瓶颈或者接口访问缓慢、又或者本地环境无法进行复现,只会在线上产生bug或者问题,这时候我们需要进行在线debug排查问题。但是生产环境又不能轻易重启、或者使用传统方式轻易的debug、jmap、jstack等等进行排查,因为这些传统工具可能会导致程序业务线程暂停,产生线上事故。那么我们有什么工具能方便我们针对线上程序做调试或者定位问题吗?这个神器就是Alibaba开源的Arthas.

2024-02-04 16:39:22 1110

原创 Tomcat组件架构与数据流

Tomcat我们都知道是一个开源的、实现了大部分Java EE、Servlet、JSP规范的Servlet容器, 允许我们将实现了Serlvet接口的Web程序war包进行部署运行。但是你有对Tomcat做过细致的学习么?我相信大部分同学和我一样,之前也是只会进行简单使用,如启动、停止、部署Web应用程序等, 对其工作原理和组件架构没有深入去学习。趁着机会,我们一起深入学习Tomcat组件架构和数据流向。

2024-02-04 15:54:41 1244

原创 Nginx实现html页面注入浏览器监控js代码片段

既然是客户端浏览器页面的相关监控,那么肯定是将一些我们写好的监控程序(js脚本)注入到用户的访问页面html中,因为注入例如我们选择注入在标签之间,用户的展示界面是不会有任何问题的,因为这个script标签脚本只会在浏览器后台默默执行,不影响页面展示。1、监控是一种手段,优先级要小于业务的正常运行,所有监控的前提就是不能影响业务的正常运行或者是尽量很少的影响到业务的正常运行。

2024-01-19 14:17:55 1128

原创 “从零到一“基于Freeswitch二次开发: 应用架构设计(二)

Freeswitch本身支持对接Homer,可以在Freeswitch中进行配置Homer监听地址,将整个sip协议流程数据写入Homer的数据库,之后再通过UI可视化界面直观进行问题排查。正好到了年末想起来,就把我们的一个实现架构进行分享。Freeswitch如何进行二次开发?如何设计整体架构能够保证安全性、整体应用的链路监控,本篇文章一一讲解......

2023-12-29 21:25:47 703

原创 Keepalived+Nginx实现高可用(下)

如果Keepalived仅仅只提供一个VIP的方式,会存在只有1台服务器处于实际工作,另外1台处于闲置状态。 势必存在成本资源浪费问题,这个问题如何解决?何针对Keepalived做监控? 针对排查和时刻了解Keeplaived VIP漂移情况还是很重要的, 那么我们要排查问题以及掌握Keepalived运行情况,那就离不开监控。 监控这块又该怎么做呢? 我们可以......

2023-12-14 21:37:47 971

原创 Keepalived+Nginx实现高可用(上)

为了服务的高可用性,避免单点故障问题,通常我们使用"冗余设计思想"进行架构设计。冗余设计思想,本质就是将同一个应用或者服务放置在多台不同的服务器上,这样减少整体服务宕机的可能性。我们通过概率学就能简单知道,例如一台服务器宕机的概率为1%,那么2台一样的机器同时宕机的概率就是0.01x0.01=0.01%, 依次类推,冗余的服务器越多,那么整体服务宕机的可能性就越小。但是高可用和成本成正比关系,一个服务的可用性越高,付出的成本越高...

2023-12-11 23:50:44 1011

原创 Apache+mod_jk模块代理Tomcat容器

大部分语言都采用了Web服务器+后端动态站点协议的方式来进行开发。 Web服务器只负责对HTTP协议进行负责,负责HTTP协议的解析、响应,其它业务逻辑、HTML内容生成等等这些工作交给后端编程语言来实现, 这样Web服务器、后端服务器的职责都很清晰、独立,两者也不存在强耦合的关系...

2023-12-07 15:51:01 1233

原创 Java开源ETL工具-Kettle

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、 Linux、 Unix上运行,绿色无需安装,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做...

2023-11-23 12:59:02 721

转载 Docker原理详细剖析-cgroups

上一篇文章Docker原理详细剖析-Namespace我们大致知道了,原来docker容器就是docker给某个进程附加了一些namespace"视野", 从而达到虚拟化隔离的目的。但是仅仅只是虚拟化隔离还远远不够, 因为这些容器的启动进程本质上和宿主机的其他进程是平等的,共用系统资源,属于资源竞争关系。为了更好地达到隔离的效果,我们希望能针对这些容器的资源进行限制,例如CPU、内存、磁盘IO、网络带宽等等。

2023-08-31 10:41:07 99 1

原创 Docker原理详细剖析-Namespace

docker容器技术从2013年开始火了以后,14年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术,国内关于这块的资料以及使用也才刚刚开始,讨论docker和使用,算是相对时髦的话题。现在回头望去,已经10年有余,很佩服当时带领我们学习新技术的教授导师,看到这个技术的前景,所以接触的相对早,对后面我的工作起到了相当大的帮助。docker用得很熟练,面试一问原理直接懵? 本文解开namespace、cgroup核心技术神秘面纱

2023-08-30 18:48:52 604 2

原创 jumpserver命令记录膨胀问题

jumpserver由于命令记录terminal_command表会迅速膨胀,导致terminal_command表有了将近1000w左右的数据量,我们使用这种方式进行解决...

2023-08-10 21:46:40 416

原创 Crontab的sendmail邮件发送引发磁盘问题

其实配置MAILTO=root本身没什么问题,本次故障根本问题还是inode使用率没做监控,导致inode写满导致sendmail和maildrop进程堆积变为僵尸进程,占用内存与系统负载.此时有时间分析原因了,网上找了一些资料,有些朋友也遇到过这个问题,大多数是和crontab定时任务有关系。有新内容产生,说明如果配置了MAILTO=root, 且定时任务没有将标准错误和标准输出到出,则定时任务报错时发送邮件。明显并没有/usr/bin/my这个可运行程序,此时查看/var/mail/root。

2023-06-30 11:53:38 981 1

原创 Cloudcanal数据同步神器

最后,我们在网上也找了一些现成的数据同步工具,要么就是收费商业很昂贵,要么SASS(不支持私有化部署,需要安装Agent),要么开源star很少没几个人维护不敢用在生产环境。 最终发现Cloudcanal满足我们的需求: 1.支持私有化部署,整个同步过程采用Web可视化操作管理同步任务,同时还有异常监控、微信技术支持交流群(很重要,遇到问题有人解决,并且有很多技术的小伙伴相互交流) 2.Cloudcanal提供社区版许可证,可以免费使用3个月,到期后还可以继续续期。同时如果想获得更多的

2023-05-17 18:48:34 1391 1

原创 Python消费Kafka与优化

python使用kafka-python库消费kafka,消费能力一直上不去,原来是这样解决的...

2023-05-15 22:49:33 3309 3

原创 “从零到一“基于Freeswitch二次开发:Freeswitch入门与网络架构 (一)

在当前的互联网时代,想必大家对于网络电话或者通过网络进行语音、视频的场景再熟悉不过了。基于IP的语音传输(英语:Voice over Internet Protocol,缩写为VoIP)是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行通信。我们通俗称这种拨打电话的方式叫"网络电话"。

2023-05-08 18:39:00 1757

原创 Centos7安装freeswitch-1.10.8(2023)

2023最新Centos7安装freeswitch顺利安装过程...

2023-02-20 17:05:17 1137 1

原创 Centos6源码安装Haproxy进行四层代理

公司使用专线与第三方公司进行系统交互,给定了我们业务IP的使用范围,防火墙策略只开放业务IP范围之内才能访问,如果源IP不在业务IP范围之内,那么通过互联IP过去是访问不了的。TARGET = linux26 #首先查看uname -r, Linux内核是多少版本,查看README文件可以看到这个参数的解释,我服务的内核版本是2.6,所以使用linux26。2.我们的需求只是做4层代理,7层代理不需要,尽管Haproxy也支持7层代理,但是它最初的优势就是4层代理。1.软件体积小,高性能、稳定。

2023-01-13 10:59:15 2443

原创 论设计模式以及应用

观察者模式的思想是,对象之间存在一种一对多的依赖关系,使得一旦对象的状态发生改变,则依赖的对象会收到相应通知且自动更新。各工作人员观察者对象,首先调用自己要观察的IsaApiSubject类对象引用的addObserver方法,添加到IsaApiSubject类对象的observers集合中,如果后期一旦有ISP相关API消息变更,则调用IsaApiSubject的notify方法,该方法会循环遍历observers集合对象,调用他们的update方法,让观察者们接收到消息并且做出自己的相关响应操作。

2022-12-16 13:55:26 40302

原创 论系统安全架构设计以及应用

数据在用户到站点的所有网络路由设备无法直接分析、破解请求数据内容,并且浏览器会在访问站点时校验站点证书真实性,任何人无法伪装站点身份,若发生钓鱼网站伪装,则浏览器第一时间进行拦截,防止用户访问不安全的站点,保护用户数据安全。从本次项目的实践,我们也感悟颇深,系统安全性是一个永恒的话题,只有我们一直保持这一颗敬畏的心,才能把系统做到更好、更稳定、更安全,用户使用更放心!我们从三个层面对系统进行安全性设计,首先,网络硬件层面,采用硬件加密技术、防火墙技术,对数据传输与访问进行安全隔离。一.硬件网络层安全设计。

2022-12-16 13:55:02 41567 1

2018最新PHP官方中文高质量文档

下载之后,若不能打开阅读。请点击右键,属性,下方有一个"解除安全限制"的按钮,点击解除,应用确认。再次点击打开即可

2018-01-19

php5.6关于redis在windows下的包

在windows下学习php操作redis的扩展包

2017-03-12

mybatis逆向工程工具包(自动生成xml和java文件)

用于mybatis根据数据库生成映射文件和java bean文件,属于eclipse的插件,压缩包有一个eclipse文件夹,解压覆盖到安装eclipse的安装目录eclipse即可

2016-11-08

mybatis3+spring4完美整合jar包

最新mybatis3+spring4完美整合架包

2016-11-08

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除