自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 《技术的本质》读书笔记

技术的定义技术是一种目的性系统.技术的三个定义:技术是实现人的目的的一种手段。技术是实践和元器件的集成。技术是可供某种文化中利用的装置和工程实践的集合。技术的结构技术的最基本结构,包含一个用来执行基本功能的主集成和一套支持这一集成的次集成。为什么会产生结构?-模块化是必然,为什么?一开始的一系列松散地串在一起的零件如果被用得足够多,就会“凝固”成独立的单元。技术模块随着时间...

2020-02-01 15:55:49 734

原创 前端监控告警工具

文章目录sentryBadjs阿里云ARMSFundebugWeb开发领域,前后端分离是基本成为标准。因为前端js代码工作在浏览器端,报错无法及时反馈给后台,逐渐成为技术上要解决的一个难题。除了部分大厂在尽力解决这种痛点,也发现有创业公司类似fundebug也在解决此种问题。先整理下目前能用于前端Js监控的平台工具,部分工具实际上也能监控服务端的异常错误,有免费有收费。供有需要的同学索引选型s...

2019-08-22 12:48:25 1288

原创 搭建Go语言开发环境,Hello World

Go语言简介Go语言是一门开发语言,又称GoLang,是Google公司于2009 年首次推出并在 2012 年正式发布的一种编程语言。Google 对 Go 寄予厚望,其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助开发者处理琐碎但重要的内存管理问题。Go 的速度也非常快,几乎和 C 或 C++ 程序一样快,且能够快...

2019-05-26 20:58:58 516

原创 谷歌认证器

二次认证在互联网应用场合,对于重要数据保护啊,目前一种比较流行的方案是采用二次认证的手段。什么是二次认证?二次认证通常指的是用户输入账号密码之外,需要额外输入一串一次性的随机数字,服务器依据于账号密码及随机数字来确认登录者的身份。其实银行在很早就使用类似的手段来进行访问控制,比如之前U盾及口令卡等产物,近几年随着手机app的流行,这个动态密码生成转移到手机App来进行生成,比如网易游戏出的将军...

2019-04-17 14:55:22 624

原创 SonarQube简介及客户端集成

SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流...

2019-01-22 09:56:15 1122

原创 静态代码安全扫描工具Cobra

静态代码安全扫描工具Cobra业务大了,代码多了,自然公司就有了代码审计的需求,因此需要找一款代码审计的工具软件。眼镜蛇(Cobra)是一款定位于静态代码安全分析的工具,目标是为了找出源代码中存在的安全隐患或者漏洞。GITHUB:https://github.com/WhaleShark-Team/cobra文档:http://cobra.feei.cn/其主要原理是利用函数定位及正则表...

2019-01-21 17:35:42 4152 1

原创 如何配置prometheus的Java客户端

prometheus是目前很火的监控系统,其本质上来说是一个时间序列数据库(TSDB),采用golang开发,支持多维度(标签),采用拉取模式,以丰富的export,完善的生态成为目前社区内的监控标配。这篇文章不说别的,只说java客户端如何埋点。推荐大家看官方文档:https://github.com/prometheus/client_java第一步 引入Java客户端(gradle示例...

2018-11-28 09:48:08 7985 1

原创 一点体会,共勉

最近有些面谈及面试,有点体会,如下鉴于职业生涯的“成功经验”或者各种前辈的成功经验,程序员往往会把目光集中在自己的技能树上,认为自己会了某某技能,有了X年经验,在市场上就应该得到某某某层次的价格。但是要理解这个市场的本质,其实**雇主不是为你的技能付钱,雇主是为了你能解决的问题付钱。你能解决的问题越大,你得到的报酬才越多,并不以你加班长短、技能树宽窄为最终依据标准。**所以在衡量自己的社会价值...

2018-11-08 09:25:24 221

原创 MYSQL大表DDL处理知识点

背景IT人员经常需要线上mysql执行一些增加字段,加入索引的DDL的操作。但是有些表数据量比较大,超过几百万或者字段特别多,需要考虑这些DDL的操作是否会造成锁表进而造成生产环境出现问题。因此在执行某些觉得有风险的操作的DDL时,查看不要锁表,以及知悉其内部操作流程非常重要。知识点可以查看SQL执行过程中是否存在阻塞锁在执行SQL时查看是否会出现锁,如果要看目前是否有所锁...

2018-09-14 14:45:41 3091

原创 推荐几个重量级的企业领域的开源软件

大部分情况下,开源软件以轻为美,鲜有涉及业务逻辑。今天说几个重量级的面向企业领域的大块头。这些系统在商业软件领域往往有更好的版本,这些开源软件往往也都是脱胎于商业版本,不同于现在漫天的SSM及Spring Boot的小型开源软件,这些软件往往有对业务逻辑的深入理解及封装,虽然不一定都适用于中国的市场环境。但是对于那些【如何将业务逻辑规范起来,如何分层设计,一个接近商业版本的软件产品应该包含哪些...

2018-09-12 08:58:47 1182

原创 mysql 的子查询会导致锁表? lock wait timeout exceeded; try restarting transactio的处理

mysql 的子查询会导致锁表? lock wait timeout exceeded; try restarting transactio的处理问题“lock wait timeout exceeded; try restarting transactio” 是非常常见的mysql异常。意思就是获取锁失败了,无法执行操作。如何查看到底是哪个锁导致的,网上文章一搜一大把,不赘述。其...

2018-08-30 11:02:11 3269

原创 WEB安全-ESAPI

ESAPI是owasp提供的一套API级别的web应用解决方案。简单的说,ESAPI就是为了编写出更加安全的代码而设计出来的一些API,方便使用者调用,从而方便的编写安全的代码其官方网站为:https://www.owasp.org/,其有很多针对不同语言的版本,其J2ee的版本需要jre1.5及以上支持安装篇第一步:引入JarMaven<dependency...

2018-08-20 19:30:35 24126 1

原创 搭建Nexus私服这件小事

搭建私服这事情说大不大,通常也就是一次性的买卖,做一次也就完事了,没什么讨论的价值,但是网上文章汗牛充栋,但是难有一次解决问题的,都是头疼医头脚疼医脚,花费点时间整理下,希望能对大家有帮助。安装篇:linux:https://www.cnblogs.com/kevingrace/p/6201984.html(这篇文章讲的很细,小白先看这篇,但只看基本安装操作即可)windows:h...

2018-08-19 19:48:17 417

原创 数据同步工具otter(二)

简述otter是一个基于canal的数据同步平台,含义是水獭,主要的功能就是可以将mysql的数据同步至另外mysql或者oracle,在项目中应用场景主要是多数据中心、BI系统抽取数据、灾备。另外也支持双向同步(即A库同步给B库,B库也同步给A库)、文件同步,不过目前笔者这还没用到。简单就可以理解成在canel的基础上做了一个mysql的同步平台(带WEB管理界面),在界面上,你可以...

2018-08-13 00:08:16 15508 3

原创 简化过的gitflow

目前项目在用的简化过的gitflow,使用了接近一年,还算比较适合。记录一下,提供给可能会有需要的同学1、master主干分支存放的是随时都能上线生产的代码,只有已确定上线生产环境的代码才合并到master分支,不确定上线或者没有通过QA验证的代码,不允许合并到master分支2、针对不同的发布环境,从master中拉取不同环境分支,比如对应线上环境拉取master-online、测试...

2018-08-12 23:22:43 567

原创 如何处理线上CPU100%的故障现象

如何处理线上CPU100%的故障现象在处理线上故障时,发现团队中有些小伙伴在出现cpu100%的情况时,不知道如何着手,因此记录下,如下:现象 CPU持续不断100%,程序运行缓慢处理流程:登陆线上机器top命令,查看耗费cpu的进程号,举例来说发现进程3997持续耗费资源top -H -p 3997去查看持续耗费cpu的线程号30437(图示为举例来说,目前并不...

2018-08-10 10:39:24 2429

原创 开箱即用的性能分析工具pinpoint

pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控,属于分布式调用链监控组件。它主要的特点是开箱即用、完备的Web界面,对性能影响较小,无侵入式安装探针,小团队懒人的必备佳品。官网:https://github.com/naver/pinpoint监控截图如下:服务器端主要分为三部分:pinpoint-collect...

2018-07-24 01:12:34 990

原创 近期解决的一些问题

问题一:Redis执行部分命令时总是在报time out解决:查看redis的slowlog发现slow命令超过1024条且较频繁,每条命令执行超过30秒,发现是针对大数据做了排序处理,将排序处理进行优化。要点查看redis的slow日志,如下:https://blog.csdn.net/luyaran/article/details/73801268问题二:Spring配置多...

2018-07-24 00:37:58 257

原创 数据同步工具otter(一)谈谈binlog和canal

之前因为懒,没有针对otter做更多的解释和说明,在使用过程中,也发现了一些问题,此次补上一个完整的文档,方便大家使用。Otter是基于cannal开源的,canal又是基于mysql binlog的产品。我们就从binlog说起binlogmysql的binlog日志是被设计用来作主从备份或者数据恢复用的。binlog是The Binary Log的简称,意思就是二进制的日志文件(可...

2018-05-11 13:27:29 11170 6

原创 性能测试入门(三):性能测试工具

这篇文章介绍下性能测试工具:简单模拟工具有很多场景下,我们只是想做一个简单的压测,对于监测结果要求并不高,压测的场景也比较简单,不想安装复杂的工具,这种情况下,推荐使用简单的模拟工具进行就可以了。abab即ApacheBench,是apache自带的一款功能强大的测试工具,安装了apache一般就自带了,即httpd(在bin目录下)。 ab主要是设计用来测试apache的...

2018-04-18 12:47:15 920

原创 docker学习笔记

学习笔记留存

2018-04-15 02:26:11 164

原创 性能测试入门(二):做个最简单的性能测试

之前在《性能测试中的各项指标告诉我们什么》简单介绍了一些基本的性能指标的含义,明确了我们性能测试的目标是在保证请求成功率及不超过目标请求时间的情况下,找出我们系统的最大并发量。在这篇文章中我们做些实践,以程序员小张的视角来做一次性能测试。做个最简单的性能测试首先我们把问题简单化一些,假设小张从业务经理接到的一个网站开发任务,这个网站只设计了一个网页,内容是每天公司都会更新发布的10条信...

2018-04-15 02:19:45 5254 2

原创 Java多线程高并发知识点二:线程池和CountDownLatch

线程池池化是在为了复用常用的一种技术解决思路,比如连接池、线程池等,线程池主要是为了降低线程创建和销毁造成的资源消耗,进而起到解决系统资源,提高系统相应速度的目的。Java中的ThreadPoolExecutor是JDK为我们提供好的线程池工具。ThreadPoolExecutor executor = new ThreadPoolExecutor(50,//核心池大小 ...

2018-04-08 13:48:37 4688

原创 性能测试入门(一):性能测试中的各项指标告诉我们什么

性能测试 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。按照不同的目标,可以分为负载测试、压力测试、容量测试、稳定性测试。平时工作中如果不是专业的测试机构,开发人员或者运维人员做的基本上都属于压测。 压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。性能指标QPS...

2018-03-29 15:51:31 17886

原创 Java多线程高并发知识点一:多线程

线程的5种状态新建状态(New) 新创建了一个线程对象。就绪状态(Runnable) 线程对象创建后,其他线程调用了该对象的start()方法。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权。运行状态(Running) 就绪状态的线程获取了CPU,执行程序代码。阻塞状态(Blocked) 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,...

2018-03-28 23:37:47 247

原创 微服务架构基础技术之一:RPC

微服务架构基础技术之一:RPC实现应用程序拆分,RPC是关键第一步,因为首先解决的就是拆分之后的应用程序通信问题。梳理了RPC的 关键知识点如下:...

2018-03-24 09:39:14 438

原创 数据同步工具

公司要搞数据平台,首当其冲的是把旧库的数据导入到新库中,原本各种数据库大部分都提供了导入导出的工具,但是数据存储到各个地方,mongdb,hbase,mysql,oracle等各种各样的不同数据库,同步起来头都大了因此最近使用了一些数据同步工具,记录下来:离线导入导出DataX阿里的Datax是比较优秀的产品,基于python,提供各种数据村塾的读写插件,多线程执行,使用起...

2018-03-20 13:54:19 13102

原创 大型网站系统的架构方向

团队内在做分享,总结了些架构方面的知识点,分享于此。互联网系统目前主要追逐的架构方向有以下5个方面:高性能:天下武功,唯快不破让干活的人牛一点 升级硬件设备 升级网络带宽让干活的人多一点 多线程 分布式让活少一点在任何的技术层面上,无所不用其极的降低IO 从数量上减少:压缩算法,改变算法,少写大sql,索引,异步处理 让...

2018-03-19 22:28:24 272

原创 谈谈配置文件

在应用程序开发中,配置文件是一个重要但反而总是被忽略掉的问题,因为它的解决方案很简单,而且在项目中往往被架构师一次性就写好了,其他的开发人员只是用就可以了,根本不用关心。但是初学者在从头搭建项目脚手架时,往往被这貌似简单的问题绊住手脚,浪费时间。今天花点时间说下我所理解的配置化单独说配置文件其实非常简单,无非就是把一些程序中会用到的参数放置到文本文件中,方便之后修改,但是往往这些配置项是程序的...

2018-03-05 23:39:25 888

原创 ElasticSearch(一)简介和安装

简介 Elasticsearch是由Shay Banon发起的一个开源搜索服务器项目,2010年2月发布。迄今,该项 目已发展成为搜索和数据分析解决方案领域的主要一员,广泛应用于声名卓著或鲜为人知的搜索 应用程序。此外,由于其分布式性质和实时功能,许多人把它作为文档数据库。常见的Elastic的应用常见有海量数据分析数据仓库站内搜索引擎在介绍环境安装之前,...

2018-02-25 17:43:18 431

原创 打造Mac下的写作环境

对于在网络上技术写作,markdown无疑是目前最好的写作语言。因为它足够简单,足够通用。只需要记住一些简单的语法就可以写出不错格式的文档,因此今天给大家介绍下如何打造属于自己的写作环境。markdown首先介绍下markdown,markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。markdown有很多的扩展语法,可以写...

2018-02-25 11:11:23 457

原创 BI数据建模读书笔记

数据仓库要解决什么事情?—发现未发现的,证明推论,支持决策=数据仓库设计原则: 1、数据仓库必须使组织结构数据变得容易存取 2、必须一致的展示组织结构 3、必须具有广泛的适应性和修改 4、必须安全 数据仓库的构建和出版业有很类似的流程。——-关键构件 数据聚积环节(ETL) 数据展示环节(维度数据库)OLAP ——-基本概念 事实表:最新粒度的基本表,一行对应一个度量值,所有...

2018-02-14 10:12:53 326

原创 使用Shiro做权限认证(1)

Apache Shiro是Java的一个安全框架。Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等.在开始认识概念之前。我们先认识下一段示例代码://///////////////声明一个安全管理器//////////////////////Factor...

2018-02-14 09:47:13 246

原创 使用Shiro做权限认证(2)

在第一节中,我们重新定义了Realm,重新注册了securityManager。SecurityUtils会按照我们的期望工作了。如何用securityManager将我们的应用程序管理起来呢。 shiro只是提供安全控制的API,并不能识别我们应用程序中哪些是需要安全控制的资源,这部分的定义是需要我们自己来完成的。也就是说我们在需要安全控制的资源处加入安全控制的代码。shiro提供了多种安...

2018-02-14 09:46:31 175

原创 使用Shiro做权限认证(3)

第一节我们讲了Realm是什么东西。 第二节我们讲了如何将资源交付给securityManager控制 现在我们讲讲shiro和spring之间的集成及web应用在绝大部分项目中,shiro其实都是应用在web项目,与spring集成在一起的,使用的是url过滤方式进行安全控制。(1)定义web.xml 首选在web.xml中定义相应的shirofilter来过滤所有的url,就是第...

2018-02-14 09:45:44 225

原创 使用Shiro做权限认证(4)

上节讲了web应用的过滤器,这节我们自己定义一个过滤器。(1 ) 我们来定义一个Filter用于限制某些url只能某些特定IP地址进行访问,代码如下:public class IpIntAuthorizationFilter extends AuthorizationFilter { private static Logger logger = Logger.getLog...

2018-02-14 09:44:36 295

原创 centos安装单机rabbitmq

第一步 需要安装erlang环境yum install erlang第二步 在rabbit官网上下载相应版本rpm包,并安装http://www.rabbitmq.com/download.html如果在安装过程中报错socat有问题,需要安装socatyum install socat第三步 设置配置文件--复制示例配置文件到相应的目录,注意不同的版本路径需要修改cp /usr/share/do...

2018-02-14 09:20:42 175

原创 消息中间件的历史

今天来说说消息中间件。消息中间件通也被称为消息队列服务器,是当今分布式应用架构中经常采用的技术。简单来说就是程序与程序之间进行异步通信的一种方式,消息的发送者不用一直等待消息的处理完毕,而是将消息发送给消息中间件就返回了。消息的指定消费者会订阅消息并处理他们。这有点类似与RPC(远程过程调用),当然消息中间件的实现与RPC规范是息息相关的,因为毕竟他们都是为了解决计算机世界中两个程序之间通信的技术...

2018-02-14 09:19:44 1184

原创 消息中间件认知及RocketMQ

消息中间件是目前互联网服务常用的技术服务。消息中间件为应用系统提供高效、灵活的消息同步和异步传输处理、存储转发、可靠传输。在大规模分布式环境下确保消息安全、可靠、高效送达。(一)为什么需要一款消息中间件使用消息服务器的目的通常是解耦、及错峰流控。随着互联网"微架构"模式的兴起,原有的企业级大型集中式的IT服务,通常被分拆成细粒度的微服务在互联网提供出来。服务与服务之间一方面联系越来越紧密,另一方面...

2018-02-14 09:13:12 322

原创 Ant 编译模式与Spring MVC

在实际项目过程中,很多同学都会在本地IDE进行调试开发,采用构建工具进行打包编译发布测试环境。公司有个上古项目,用的是Eclipse进行开发,构建采用Ant脚本,一直都很正常,没出过什么问题,直到最近在这个项目中开始运用SpringMVC。直接说问题现象在本地调试的好用的url映射,发布到测试环境完全找不到此url,而且无任何异常报出。代码如下:@RequestMapping("changeJob...

2018-02-14 09:11:19 598

自动化测试的实践——应用QTP测试框架

自动化测试的实践——应用QTP测试框架自动化测试的实践——应用QTP测试框架

2018-02-26

程序员所知的优化法则

程序员所知的优化法关于性能优化程序员所知的优化法关于性能优化程序员所知的优化法关于性能优化

2018-02-26

Siebel State Mode

Siebel State Model Siebel状态模型

2012-10-30

空空如也

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

TA关注的人

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