自定义博客皮肤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技术经验,秉承原创为主的原则,拒绝没有思考的转载!

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

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

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

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

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

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

2023-09-15 16:07:32 891

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

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

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

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

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

2023-05-09 17:24:27 905

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

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

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

原创 K8S中Pod内部容器通信原理

1.docker容器网络模式1.1 默认bridge桥接网络   默认分配docker0网桥网段上的ip给容器, 每个容器的network namespace都是相互隔离的。docker自身生成一个veth pair(虚拟网卡对) 一端放在docker0网桥上, 一端放在容器内部。通过docker inspect 容器查看容器网络模式信息:网络详情:...

2019-11-21 11:50:59 119504 2

原创 docker的通俗理解

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

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

原创 PHP性能提升方案

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

2024-03-31 16:32:55 1144

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

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

2024-03-31 15:40:00 470

原创 Django屏蔽Server响应头信息

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

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

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

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

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

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

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

2024-03-14 12:50:32 354

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

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

2024-02-04 16:39:22 963

原创 Tomcat组件架构与数据流

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

2024-02-04 15:54:41 1202

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

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

2024-01-19 14:17:55 962

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

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

2023-12-29 21:25:47 600

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

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

2023-12-14 21:37:47 947

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

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

2023-12-11 23:50:44 981

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

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

2023-12-07 15:51:01 1186

原创 Java开源ETL工具-Kettle

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

2023-11-23 12:59:02 516

转载 Docker原理详细剖析-cgroups

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

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

原创 Docker原理详细剖析-Namespace

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

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

原创 jumpserver命令记录膨胀问题

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

2023-08-10 21:46:40 354

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

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

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

原创 Cloudcanal数据同步神器

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

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

原创 Python消费Kafka与优化

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

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

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

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

2023-05-08 18:39:00 1622

原创 Centos7安装freeswitch-1.10.8(2023)

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

2023-02-20 17:05:17 990 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 2415

原创 论设计模式以及应用

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

2022-12-16 13:55:26 40292

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

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

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

原创 论软件可靠性设计及应用

容错技术确实很大程度上给系统的可靠性做出了一些保障,但是有些服务异常并不总是如预期地按照我们设计的方向进行,有时候需要进行人工介入处理才能修复,此时我们需要针对系统运行情况进行检错监控,一旦发生错误,第一时间感知并且做出相应处理措施,防止问题扩大化到用户端,造成更大的损失。白盒式检错技术,我们在开发系统时,将系统容易出问题的功能模块、重要程度高的模块进行数据采集与埋点,一旦发送异常错误,系统自动发送对应异常信息到监控系统,开发人员再通过告警信息确认错误内容与位置,第一时间进行修复与处理。

2022-12-16 13:46:27 40757

原创 论架构风格及其应用

MVC的分层结构,职责划定明确,层次结构清晰,耦合度低,容易排查问题与调试。例如项目组中,做前端页面的开发人员只负责视图View的渲染与显示,无须关心Model模型的实现逻辑与工作内容,同样的Model只需要关心Controller控制器传递过来的业务数据,并且进行处理,数据处理结束够直接传递到View视图,不关心相关页面渲染和排版情况。综合对软件架构风格的特点分析与实际项目需求情况,以本项目为例,下文将从三个系统层面:表现层,业务层,服务层,及各层面所采用具体架构风格设计与应用的过程进行阐述。

2022-12-16 13:35:26 40935

原创 论微服务架构设计与应用

但是,微服务很友好地支持技术异构性,我们可以结合自己本身服务关注的要点,选择更适合自己的开发语言、数据库类型等,最大限度地发挥技术选型的优势与业务功能的结合度,达到最大的开发产出比。首先,我们将模块拆分为粒度更小的微服务,服务职责更得加单一,利用Docker容器技术将微服务独立部署,提高了系统的可移植、扩展性。我们在以后开发项目的过程中,要根据实际情况选择系统架构,并不是说单体架构一定是落后的,同时也不代表微服务能适应所有业务场景,只有合适的场景选择合适的架构才是最为明智的选择!一.微服务拆分与部署。

2022-12-16 13:29:19 41720

原创 2022软考高级架构设计师-经历分享

其中,这些级别的考试对考试顺序不做要求,可以直接考高级,也可以先考初级、再中级、最后高级都是可以的。并且这个考试和其他考试,例如什么会计师考试、财务相关的考试还不太一样,有的级别考试分为2科或者3科, 只有所有科目都考过了才算合格,否则只能来年再考,各科成绩都不保留。但是吧,对于国企背景的相关企业,去投标拿项目的时候,有证书相对来说还是有优势的,公司可以宣称自己有xx位高级工程等等,这样也能增加甲方对你的信任。先把知识点理解透彻,再刷往年的真题,先自己做一下,再对照答案看自己做的是否正确。

2022-12-16 13:23:35 43113 4

原创 Filebeat采集数据到ES保证数据不重复

后来直接看源码分析吧。在已经设置@metadata._id的情况下并且没做其他操作,那么filebeat调用Elasticsearch的_bulk API接口,使用action: create进行插入数据. (create的基本原理是, 根据_id判断数据,如果数据已经存在则忽略插入操作,如果不存在才插入)相对上面的情况,我们有时候希望的是,相同_id存在的情况下是后面推送的数据是覆盖而不是丢弃。1.就算是官方文档也不可能事无巨细的写在上面, 如果官方文档没有的,可以尝试从源码入手,也是一个不错的选择。

2022-12-08 14:10:36 44626 2

原创 企业开源办公虚拟专用网工具

这个不用担心, 这些IPsec VPN就是一种隧道加密速度,把【原始TCP的数据包】通过物理UDP协议来进行传输, 在这个层面你可以理解UDP是底层基础网络设施跟网线的作用差不多,我们只管真实TCP即可. 如果UDP丢包,那么TCP协议本身就是会重传,所以这些问题不用担心.还有一个不想用pptp的原因就是,我macos的电脑不支持pptp协议,找了一些替代品的软件也不行,最终抛弃这个pptp的解决方案。正好找到了一个开源办公VPN项目,支持Docker容器化部署,正合我意,给大家分享一下.

2022-10-17 18:27:39 43846 2

原创 DELL OMSA(SrvAdmin)-监控软件与Promethues结合

Dell OMSA监控与Promethues体系结合

2022-09-21 10:02:23 43648 1

原创 Canal增量订阅MySQL数据同步工具

阿里巴巴开源的工具canal:,译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费.基本原理就是:canal伪装成为mysql的一个【slave从节点】订阅master的binlog, 解析binlog拿到更新后的数据,拿到更新后的数据之后, 一般会将数据推送到MQ(例如Kafka、RabbitMQ等)中间件, 之后我们再通过消费MQ拿到增量更新数据进行业务处理.

2022-09-20 16:54:45 43276

原创 Nginx Location优先级顺序与目录穿越漏洞

在配置location提供web静态资源访问的时候特别注意,否则造成目录穿越访问,泄漏相关数据。原理就是, nginx拿到/file后面的路径,和root拼接,最后读取这个路径的文件内容(/var/www/html/../.env) 此时文件存在,则能访问到内容.精准匹配=或者~^优先级:1 > 正则~或者~*匹配 > 空修饰符(一般匹配,取URI匹配最长的) > / (任意通用匹配)此时再访问http://localhost/file../.env 将访问不到了.查看到.env文件的内容.

2022-09-20 16:32:23 43700 2

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关注的人

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