- 博客(46)
- 收藏
- 关注
原创 Window系统bat脚本或Linux系统shell脚本处理-钉钉-邮件等报警服务
有时候线上服务器或者什么乱七八糟的服务器突然停止、中断了。就需要有个监控来做告警。最近公司在window系统上了做了个.net服务用来做图片转换,老是崩溃。所以业务使用中经常发现不明所以的问题。公司用钉钉,就利用bat脚本和钉钉的机器人通过http请求来做一个报警监控。流程如下:1. 访问对应请求2. 分析响应信息3. 如果发现包含特殊字符4. 发送钉钉消息5. 否则不处理6. 定时60s执行一次。windows系统 Bat脚本如下color 2f title http:/
2020-10-22 16:32:03 1448
原创 面试从处处碰壁到受宠若惊!这种feel还是不错的,来梳理一下第五次找工作的经历
这次找工作的经历其实还好,远不像第一次找工作是那样的刻骨铭心。一轮下来,感觉疫情之下,岗位及薪资相较于之前真的是有了很大的差别。面试机会还是比较少的。背景旅游行业受到疫情的冲击很大,公司因此裁掉了整个部门。2020年6月多发生的事情。给了赔偿金,所以心理还稳一点,不至于断粮、断贷、断了生活。所以,休养生息了一个多月后,开始找工作。学历:成考大专工种:JAVA后端年龄:未满31岁,差个几百天经验:9年多(JAVA-5年左右)面岗:高级/资深地点:福报城市-大杭州要求:平薪及以上 30w
2020-08-16 17:07:00 2023
原创 问:如果项目运行变得越来越慢了,应该从哪些方面去考虑去优化?
这个问题问的很泛,所以可以回答的点有很多。可以从前端、后端、数据等方面进行回答。前端可以通过Chrome控制台、抓包工具等分析请求情况。请求资源是不是很多。看看每次打开页面的时候,是不是会加载很多的资源文件,如xxxx.js xxxx1.jsxxxx2.jsxxxx1.cssxxxx2.cssxxxx3.cssxxxx1.jpgxxxx2.jpg....打开一个网页可能加载了几十种资源文件。这个是可以优化一下的。首先是减少资源的个数,因为每多一个资源文件就是一次http
2020-07-23 16:27:42 1304
原创 面试官不经意的露出微微一笑,我就知道我凉了,大神总是喜欢降维打击
都在说行业内卷,卷的是什么呢?大概就是一些我这样的一些‘劣币’吧~背景疫情之下,部门解散,又再一次的踏上了求职之旅。虽然已经工作多年,但是越发的感觉到自己的不足。没有正确方向的职业规划;没有打开自己的眼界;被自己思维方式所束缚的感觉。前奏正好坐在家里复习,突然接到了hr电话。简单沟通之后,觉得离家也比较近,是个机会。就立马约在了15分钟后面试。穿鞋、关门、下楼、骑车、出发…到达目的地后,hr简单沟通,把我引入了会议室。等待面试官的到来…过程坐了一小会儿,一个中年稍胖带着眼镜的男人拿
2020-07-22 09:54:05 496
原创 碰到的一个反爬场景,它吃光了对应机器的内存,应用服务也没法正常使用
记起以前获取数据的时候碰到过一个情况,用光了机器的内存,导致应用服务都无法正常使用,所以这里简单记录一下。场景描述做一些数据的分析,所以要抓点数据进行测试。于是分析目标网站之后,进行简单的编码开始抓取。抓取规则是获取n页列表的数据,然后解析列表中每个页面的数据,进行入库操作。大概不到100页,每页10条数据。总共小于1000个页面。这里使用的是JAVA语言的webmagic框架。原理是:下载页面 >>> 解析html >>> 入库我这里的目标网站是js动态
2020-06-23 19:39:44 212
原创 一个程序猿的呓语:从字里行间看到生活,你需要勇气去启程
如果说努力和拼尽全力之间有什么区别,那就是,当你努力的时候,你会觉得自己已经拼尽全力了。当你拼尽全力的时候,你会觉得自己还不够努力。人生每到一个阶段就会有当前阶段的烦恼。可能是生活的,可能是工作的,可能是家庭的。无论如何,路还是要走,生活总是要继续的。从字里行间看到生活作为一个程序猿,是少不了关注一些工作相关的公号的,当然还有一些生活相关的杂号。看到一些感兴趣的标题会点击进去看看。怎么...
2020-05-07 13:19:11 615
原创 Arthas,一个JAVA项目分析/诊断工具在mac上的试用记录
之前看到的一个分析java项目的工具arthas,最近有时间试用整理下。用熟了就可以分析很多问题了,岂不美哉。虽然已经有很多分析工具 jvisualvm,jstat,jmap,jstack,Eclipse Memory Analyzer等。但可能不是大杂烩,或者线上无法分析等。所以看看arthas的功能,好用就用它了。Arthas简介Arthas 是Alibaba开源的Java诊断工具,深受开...
2020-04-13 09:58:00 2555
原创 Redis5.0支持的九种数据类型及使用场景整理- Redis学习
Redis简介Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。JAVA客户端是jedis。Redis6.0已经支持多线程了(面试提问redis是单线程还是多线程问题的时候要注意了)。redis稳定版下载地址Redis数据结构(罗列)String:二进制安全的字符串Lists:安插入顺序排序的字符串元素集合。基本是链表。Sets:无序不重...
2020-04-08 15:28:39 1672
原创 给定一个长的URL,你怎么设计一个服务,能够提供短且独一无二的短URL(短链接-短网址)
短网址如原地址:https://www.baidu.com/abcdefghigklmnopqrstuvwxyz.html短网址为:https://dwz.cn/wcplVJvy短网址:顾名思义就是一个长度比较短的url地址。把原来的长的URL通过程序设计等方式转换为短的链接。百度搜索“短网址”,会发现有很多相关的在线工具,或者公司平台。说明这个短链接还是有很多用武之地的。在限...
2020-04-01 13:11:30 1348
原创 redis sentinel的介绍,主要功能描述,如何启动运行,及多种部署方式等笔记整理
Redis Sentinelsentinel为redis提供高可用性(master-slave模式下, 多节点模式用集群)。使用故障转移请至少部署3个哨兵。每个sentinel是个独立运行的进程。sentinel水平扩容时,数据迁移是个问题(要保证redis可用且写入不丢失),所以cluster是更好的选择。当sentinel感知到master的变化会通知客户端更换节点,其实内部是用的一个...
2020-03-14 10:44:18 979
原创 排序算法的时间复杂度\空间复杂度比较,以及JAVA实现的整理(快排、选择、堆、归并、基数、冒泡、插入)
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。时间复杂度O(n)这样的标志叫做渐近时间复杂度,是个近似值.各种渐近时间复杂度由小到大的顺序如下O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) &...
2020-02-20 20:13:38 1111
原创 面试时碰到了synchronized的原理问题,我不会啊该怎么办,只能粗粒度的整理下喽
还在刚工作的时候,碰到了简单的并发问题,通过上网搜索,看到了synchronized关键字,往方法上一放,并发问题解决。由于没有很大很复杂的业务量,所以感觉很厉害的样子。随着工作年限的增加,发现了问题原来不是这么简单,在高并发的场景下,有用synchronzied,有用lock,也有用redis锁处理。还有很多项目是通过业务隔离、分库分表、线程池等设计方式减少并发带来的隐患。以前的技术视野,就...
2020-01-11 13:28:19 476
原创 2020年马上就到了,如何深刻地自我剖析,请看操作指南
马上就2020年了,是不是要开始做总结了?除了年终报告,更重要的是做自己的剖析,深吸一口气,然后缓缓吐出来,回顾一下2019年的点点滴滴…身体站在全身镜前看着自己,搓一搓双手,等发热以后,顺着自己的脸颊,从上到下慢慢地抚摸。观察下,头发是否依然凌乱,两鬓的轮廓中是否有翘起的白丝,眉宇间是否有一道浅浅的竖纹,眼睛镜片的厚度增加了吗?(没眼镜的跳过)那双眼睛是否依然清...
2019-12-31 10:47:08 340
原创 使用webSocket协议实现类论坛帖子列表的点赞实时展现功能
在开发的过程中,经常会碰到产品的这样一个要求,界面上的数据要实时展示。像一些全局性的数据,或者业务交集较少的数据可以实时去数据库查询,但是像一些列表类型的、用户访问量大的数据,不适合实时去查询。之前碰到的一个情况是这样的,如下图帖子列也要展示封面图、帖子标题、帖子标签、用户头像、用户昵称、点赞数、用户属性等等字段。其中,点赞功能的操作发生概率很大,而运营团队做活动,对实时性的要求很高,需要让用...
2019-12-24 09:54:26 909
原创 关于TCP协议和TCP-IP协议的理解和相关整理、扩展
之前看《how tomcat works》及《实现领域驱动设计》里面都涉及到了一些传输协议的知识点。前者是以一个简单的servlet实现开始,后者是穿插介绍了类JMS的P2P模式实现。本身都是基于socket协议接口。在理解了RPC协议,HTTP协议的基础上,对TCP协议想有一个进一步的理解。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等...
2019-12-18 19:07:10 365
原创 JMS学习-JAVA简单实现生产者、消费者的P2P(point-to-point)模型
个人博客地址:个人博客最近学习知识点,频繁出现消息机制相关字眼。之前只是用过一些消息队列框架,如activeMQ,rocketMQ等。也只是基于使用,偶然来了兴趣想了解下jms功能的最简化实现是什么,这里做个整理。JMS什么?JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,...
2019-12-09 17:59:28 312
原创 tomcat4x5x的默认连接器的多线程处理逻辑整理及代码示例、使用方式
上一篇文章整理了tomcat4.x/5.x的核心组件catalina连接器的部分实现代码,继续往下看《how tomcat works》/深入剖析tomcat,是对tomcat默认连接器的说明。这一章节的源码量比前面的示例陡然上升,主要是增加了对http多线程请求的处理、设计模式的引用、http1.1新特性的使用及返回响应信息的补充。我这里是看的 catalin-4.1.36.jar包文件。期...
2019-12-04 17:23:55 166
原创 《实现领域驱动设计》DDD书籍的基本介绍及章节整理
作者简介Vaughn Vernon是一个经验丰富的软件工匠,在软件设计、开发和架构方面拥有超过25年的从业经验。他提倡通过创新来简化软件的设计和实现。从20世纪80年代开始,他便开始使用面向对象语言进行编程。90年代初期,便在领域建模中应用了领域驱动设计。作者的初衷很屌本书中的绝大多数例子都是使用Java语言编写的。我本来可以使用C#的,但是我有意识地使用了JAVA。首先,我认为J...
2019-12-03 09:46:46 2687
原创 tomcat4.x/5.x的核心组件catalina连接器的部分实现代码
catalina简介Catalina是一个成熟的软件(也就是servlet),设计和开发的十分优雅,功能结构也是模块化的。是tomcat的核心组件。Catalina可以划分为两个模块: 连接器(connector)和容器(container)结构如下:这个连接器来增强之前的示例一个简单servlet容器源码下载地址请看:链接: https://pan.baidu.com/s/1trw...
2019-11-15 10:55:54 194
原创 编译java类文件后,javac启动服务器能正常访问servlet容器(基于socket和servlet编写)
最近学习tomcat的结构,书是比较早的《how tomcat works》,上一章的示例是一个简单的web服务器,这一章是在之前的基础上扩展,增加了servlet的内容。整个编码完成后用java / javac 命令运行,可以访问servlet容器。本示例总共有6个类HttpServer(一个ServerSocket服务器用来接收请求)Request (请求类,用来解释socket请...
2019-11-13 14:15:51 221
原创 nginx设置http跳转https、ssl证书,通过百度的https认证
做个站基本都有域名,有域名就可以做https认证。随着近几年对于网络安全的重视,很多大站都进行了http -> https的认证处理。更有一些平台宣布之后将不再支持http访问请求。(谷歌Chrome将不再允许HTTPS页面加载HTTP资源,关于公众平台接口不再支持HTTP方式调用等)可见,https的改造是大势所趋。http和https的简单区别可以点这里我这里都是阿里系列的域名...
2019-11-12 15:18:51 864
原创 通过socket相关接口和http的访问协议做一个简单的web服务器
对网络中的各种协议认识不足,所以学习下。在学习tomcat服务器的过程中,了解到它是基于一个简单的web服务器慢慢拓展到一个应用广泛的服务器的。所以,这里做个简单的web服务器创建一个简单的webserver类package com.chl.webserver;import java.io.File;import java.io.IOException;import java...
2019-11-12 15:12:12 610
原创 MAC系统中的JAVA中使用tess4j实现OCR识别的环境搭建(含tesseract安装配置)
近期准备搜集整理一些pdf中的资料,但大部分是扫描版,不能直接拷贝。手打又很费劲,所以从技术角度出发,看有什么突破。试了几个ocr软件试用版感觉效果很强大。所以搭建java版本的ocr环境看能不能减轻工作量。OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识...
2019-10-23 16:46:38 4276 3
原创 阿里云lmnp环境根据url配置端口转发可同时使用80端口访问php、java项目
需求背景正式服务器环境安装有一套lmnp环境,运行着discuz程序,有域名。现需要通过一套java语言的springboot项目定时修改discuz库中的数据。由于调用了微信公众号的接口,必须使用80端口。但是已被php程序占用,所以需要使用nginx的转发功能进行配置。功能处理开始是先在本地进行测试,由于是mac系统,本身已有apache、php的运行环境。java是自己的老本行...
2019-09-23 17:55:29 628
原创 SpringBoot项目导出可执行jar包,启动时报错:factory already defined
近期用springboot框架做了个小型项目,用来处理用户回复的消息相关。阿里云服务器上没有tomcat,所以打算将项目打包成jar运行。使用eclipse中的 项目右键 -> export -> 可执行jar,这种方式下的jar无法正常运行,报错如下:严重: A child container failed during startjava.util.concurrent.Ex...
2019-09-23 17:13:22 3180
转载 在JAVA中通过jsoup获取url中的html元素的简单代码示例
jsoup解析url中的html元素有时候需要通过解析不同网站的网站元素、数据等信息做些基本的调研或者分析。随着技术的不断发展及升级,很多网站已经升级使用vue或者相关前端框架作为首选。这样的话,使用jsoup方式无法内容元素,因为内容不是即时输出到页面上,而是通过js动态渲染。这种情况的话需要配合selenium浏览器测试工具处理,配合相关浏览器的驱动程序,也比较好用。下面先放出jsoup...
2019-09-10 14:34:17 727
原创 JAVA中使用selenium + Chrome驱动程序抓取页面内容时,碰到的一些问题及思考整理。
背景说明由于目标页面是vue结构写的,所以无法用urlConnection获取获取连接后,使用Document/Jsoup等解析。页面元素是通过js动态渲染出来的。后来尝试通过webMagic框架,配合selenium\Chrome等进行基础数据的抓取及整理。处理过程设计标记型表结构,对抓取的状态、数据等做记录配置selenium相关环境、工具分析页面的dom元素,编码解析ht...
2019-08-27 09:56:38 2299 1
转载 selenium模拟浏览器操作时 element is not attached to the page document 等异常的处理
问题场景利用selenium、chromedriver模拟浏览器操作网页。一套共280多个页面,循环获取页面元素内容,有输入、跳转等动作问题现象主要出现在以下这段代码处,打开页面后,获取页面上样式表为“.el-input__inner”的内容。...WebDriver w = new ChromeDriver()w.get(baseUrl);.... //输入框、模拟输入搜...
2019-08-22 16:01:38 4471
原创 JAVA利用RestHighLevelClient设计接口实现es的基本增删改查及登录认证、中文分词的结果返回
背景之前写过一篇《java使用transportClient连接elasticsearch并做接口实现增删改查ES6.4.3版本》的文章,在项目中可以作为基本的使用。但是没有权限验证及分词的处理。在资料查找中,发现TransportClien客户端工具会在之后的版本中作废。且实践中6.4.3版本无法对账密验证(可能方式不对)。遂改造成了RestHighLevelClient客户端实现之前的功...
2019-08-14 16:18:06 4192
原创 通过python处理解析accesslog日志文件,kettle抽取数据并做PV/UV的统计实现
处理流程记录accesslog日志切割整理accesslog日志入库数据数据抽取、分割制作报表适用场景accesslog日志记录了比较全面的访问日志。针对访问日志进行不同接口/页面/用户/终端的PV/UV统计,或者数据报表统计。业务log日志中记录了比较全面的业务节点数据,针对这些节点数据做统计处理。ps: 当然日志也可以用==ELK==这套框架进行分析,但是对于...
2019-08-12 14:23:29 1490
原创 由java导入excel表格数据引发的一个惨案…(黑眼圈又重了,头发又白了)
背景程序猿美名曰高薪职业,现实就是码奴。最近被派到兄弟公司做支持,也就是过来加加班,赶赶工期。之前公司的架构是dubbo框架,这里的是springCloud,没有怎么接触过,但是代码学习搬运起来还是比较快的。做边角料功能的功夫逐渐了解了现有项目的使用,开始接触编码业务逻辑部分。这不是最近刚接到一个订单相关的需求,其中有个excel的导入功能,让我这种技术差的人埋了个大坑。(公司业务新启,用户暴增...
2019-07-26 01:59:55 452
原创 MAC系统中运行mysql+apache+php环境,方便快速搭建discuz,dedecms,wordpress环境等
最近要尝试一些数据导入功能,是将获取的文本内容,导入到discuz系统库表中。由于ip动态变动原因,不适合直连线上库。所以本地搭建一套方便调试与测试。根本没想到mac系统原来自带apache和php。按照以往使用windows的尿性,肯定要装一套lmnp/lmap的环境了。既然已经有了部分软件,剩下的就是配置了。程序猿感到很轻松啊启动Apache启动apache必须要用root账户,否...
2019-07-23 23:31:08 546
转载 JAVA使用itextpdf文件,进行文件的创建流程、阅读加密、属性设置、中文显示处理、文档读取操作
程序猿最近要摘取pdf文件中的信息,选材用到了itextpdf工具包,整体比较简单,记录一下1.pdf操作pom设置<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --><dependency> <groupId>com.itextpdf</groupId> <...
2019-07-22 23:18:26 1332
原创 JAVA中利用Docx4J组件操作word文档,进行docx格式文档的创建、写入、读取、转换html、图片处理示例、转换pdf
程序猿最近在做对文件操作的功能,搜索到docx4J的介绍,使用起来不错,所以这里整理记录下。1.pom文件增加<!-- https://mvnrepository.com/artifact/org.docx4j/docx4j --> <dependency> <groupId>org.docx4j</groupId> &...
2019-07-20 23:12:39 13495 1
原创 Dubbo框架的服务提供方与服务消费方的参数传递,隐式参数和上下文信息的说明
dubbo上下文信息上下文中存放的是当前调用过程中所需的环境信息。所有配置信息都将转换为URL得参数,RpcContext是一个ThreadLocal的临时状态记录器,当接收到RPC请求,或发起RPC请求时,RpcContext的状态都会变化。比如:A 调 B,B 再调 C,则 B 机器上,在 B 调 C 之前,RpcContext 记录的是 A 调 B 的信息,在 B 调 C 之后,RpcCo...
2019-07-15 22:45:23 2225
原创 dubbo服务框架所支持的协议列举,及特性说明(dubbo;http;hession;RMI;webservice;redis等)
dubbo是一种基于RPC实现的高性能分布式服务框架。除了默认dubbo协议外,还支持多种其他协议dubbo协议Dubbo缺省协议采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。反之,Dubbo 缺省协议不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。Transporter: mina, netty,...
2019-07-12 22:53:31 405
原创 使用dubbo的泛化调用特性实现服务调用,spring方式和api方式示例,及泛化调用的网关项目示例
泛化接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值之中的所有POJO均用Map表示,通常用于框架集成。Spring方式xml配置支持泛化<dubbo:reference id="barService" interface="com.foo.BarService" generic="true" />java实现泛化调用GenericService ba...
2019-07-11 23:17:07 759
转载 dubbo框架标签使用之直连服务提供者、只订阅、只注册、静态服务、多协议暴露、服务分组、多版本、结果缓存等
直连提供者在开发及测试环境下,经常需要绕过注册中心,只测试服务提供者,需要点对点直连将以服务接口为单位,忽略注册中心的提供者列表,A接口配置点对点,不影响B接口从注册中心获取列表。只订阅为了方便开测试同用一个注册中心时,服务提供者不注册服务,消费者订阅消息通过直连方式测试服务。<dubbo:registry address="10.20.153.10:9090" register=...
2019-07-10 21:53:14 259
原创 对于程序猿来说,一个好团队和差团队的区别在哪里(团队氛围?TeamLeader?)
有幸带过团队,也在几个团队中呆过。发现一个战斗力强大和一个工作能力低下的团队之间,差距是真的太大了。 给人的感觉迥然不同。所谓‘近朱者赤近墨者黑’,也能在团队里给出很好的诠释。下面列举一些参照点,做下对比。对我呆过的两个团队做个...
2019-07-09 23:46:49 682
原创 写一段程序,让其运行时的表现为触发5次ygc,然后3次fgc,然后3次ygc,然后1次fgc,请给出代码以及启动参数(附说明)
网上看到一道题,“写一段程序,让其运行时的表现为触发5次ygc,然后3次fgc,然后3次ygc,然后1次fgc,请给出代码以及启动参数。”,这种题对于我这种假程序猿太难了,练练手吧!这对于jvm的GC机制是有好处的。硬着头皮试下,理解下。万一有错,明眼人指出下。编写如下(参考网上示例):(这里也通过JAVA相关类,读取打印了JVM的初始化堆、内存信息)package com.chl.jvm;...
2019-06-25 13:32:09 2832
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人