自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

欢迎来到技术宅的博客

觉得有收获的可以关注我,每周两篇原创干货技术内容

  • 博客(194)
  • 资源 (1)
  • 收藏
  • 关注

原创 中小型公司对于Spring Cloud的选择与思考

在开始之前我们先介绍一下几个概念,什么是微服务,它的特点是什么? Spring Cloud都做了那些事情?他们之间又有什么联系?技术背景什么是微服务微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”。微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与...

2018-04-23 17:58:45 6321

原创 【网络安全】Web安全趋势与核心防御机制

Web上的大多数站点实际上是应用程序。他们功能强大,在服务器和浏览器之间进行双向信息传送。他们处理的许多信息属于私密和高度敏感信息。因此,安全问题至关重要,Web安全技术也应运而生

2022-03-30 17:02:41 652

原创 【网络安全】浅谈IP溯源的原理及方法

没有进攻和威胁的被动防守,是注定失败的

2022-03-28 17:28:54 6124 1

原创 2022网络安全技术自学路线图及职业选择方向

每天都有新闻报道描述着新技术对人们的生活和工作方式带来的巨大乃至压倒性影响。与此同时有关网络攻击和数据泄露的头条新闻也是日益频繁。攻击者可谓无处不在:企业外部充斥着黑客、有组织的犯罪团体以及民族国家网络间谍,他们的能力和蛮横程度正日渐增长;企业内部是员工和承包商,无论有意与否,他们都可能是造成恶意或意外事件的罪魁祸首。那作为一个零基础的小白,此时适合进入网络安全行业吗,它的就业前景怎么样,应该怎么选择适合自己的岗位?本文将针对这几个问题,逐一进行解答,希望能够对大家有帮助。(友情提示,全文五

2022-03-18 21:08:26 10321 2

原创 2022年零基础自学网络安全/Web安全,看这一篇就够了

随手写写关于web安全的内容,希望对初次遇到web安全问题的同学提供帮助。

2022-03-09 22:08:38 4180 1

原创 【保姆级教程】2022入门网络安全,从这篇文章开始

学习黑客攻防,必须了解最基本的网络安全知识、基础的编程知识。你需要会使用靶场攻防实验环境,会使用黑客工具进行攻防演练。

2022-03-03 22:32:16 6784 1

原创 2022网络安全超详细路线图,零基础入门看这篇就够了

一.开始前的思考1.我真的喜欢搞安全吗?2.我只是想通过安全赚钱钱吗?3.我不知道做什么就是随便。4.一辈子做信息安全吗这些不想清楚会对你以后的发展很不利,与其盲目的学习web安全,不如先做一个长远的计划。否则在我看来都是浪费时间。如果你考虑好了参照我的计划进行学习,我不敢保证你实践完多牛逼,但是找6k-9k的工作绝对不成问题。1.目的本问目的是带大家快速入门web安全,不会搞些虚张声势的东西都是我的学习经验. 不会涉及到特别详细的技术,而是指导你去如何系统的学习少走

2022-02-28 16:07:33 1525

原创 面试了几十家公司,我总结出这10个程序员易踩坑的点

如果说工作内容占据了程序员职业生涯的90%,那么面试就占据了10%.

2022-02-24 17:17:26 369 1

原创 关于JVM内存溢出的原因分析及解决方案探讨

前言:JVM中除了程序计数器,其他的区域都有可能会发生内存溢出。0.什么是内存溢出当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemoryError,这就是内存溢出。1.内存泄漏和内存溢出区别与联系内存泄漏:系统分配的内存没有被回收。 内存溢出:分配的内存空间超过系统内存。2.内存泄漏的原因分析jvm由5大块组成:堆,栈,本地...

2019-08-11 16:33:14 1902

转载 浅谈 Spring Boot、微服务架构和大数据治理三者之间的纠葛

微服务架构微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,在这种情况下,如何从系统架构的角度出发,构建灵活、易扩展的系统,快速应对需求的变化;同时,随着用户的增加,如何保证系统的可伸缩性、高可用性,成为系统架构面临的挑战。如果还按照以前传统开发模式,开发一个...

2019-05-19 17:17:14 678

原创 面试必问之JVM篇

前言只有光头才能变强JVM在准备面试的时候就有看了,一直没时间写笔记。现在到了一家公司实习,闲的时候就写写,刷刷JVM博客,刷刷电子书。学习JVM的目的也很简单:能够知道JVM是什么,为我们干了什么,具体是怎么干的。能够理解到一些初学时不懂的东西在面试的时候有谈资能装逼声明:全文默认指的是HotSpot VM一、简单聊聊JVM1.1先来看看简单的Java程序现在我有一个JavaBean:publ...

2018-07-11 22:55:23 634

一个程序员在大城市,还是选择离家近的好城市呢

这可能是很大一部分程序员都要面临的问题,北上广深的房价早已望尘莫及,尤其是北上深。是在大城市工作几年回家,还是一直大城市租房,废话不多说,我们先来看一下各个社区里面的意见:伯乐在线:知乎:开源社区:度娘:CSDN:看了这些回答,相信你们自己心中也有了一个大概的轮廓。那么问题又来了,如果让你作出一个选择,你会怎么选?一线城市是现货,二、三线城市则是期货。沈从文说:一个战士要么战死沙场,要么回到故土。...

2018-07-11 22:51:20 6251

原创 【独家】终生受用的Redis高可用技术解决方案大全

最近很多朋友向我咨询关于高可用的方案的优缺点以及如何选择合适的方案线上使用,刚好最近在给宜人贷,光大银行做企业内训的时候也详细讲过,这里我再整理发出来,供大家参考,如有不妥之处,欢迎批评指正,也欢迎推荐更好的技术方案。不废话了,来看看方案吧~知识总纲Redis常见的几种主要使用方式:Redis 单副本Redis 多副本(主从)Redis Sentinel(哨兵)Redis ClusterRedis...

2018-07-10 22:30:31 289

【独家】史上最全Redis高可用技术解决方案大全

最近很多朋友向我咨询关于高可用的方案的优缺点以及如何选择合适的方案线上使用,刚好最近在给宜人贷,光大银行做企业内训的时候也详细讲过,这里我再整理发出来,供大家参考,如有不妥之处,欢迎批评指正,也欢迎推荐更好的技术方案。不废话了,来看看方案吧~知识总纲Redis常见的几种主要使用方式:Redis 单副本Redis 多副本(主从)Redis Sentinel(哨兵)Redis ClusterRedis...

2018-07-10 19:25:36 286

原创 架构新说之响应式微服务架构-分布式系统设计原则

O’Reilly的电子书《Reactive Microservices Architecture》讲述了微服务/分布式系统的一些设计原则,本文是笔者阅读完此书后的理解。微服务相比传统的单体应用能够带来快速的响应,以小的系统产生大的影响。而随着网络加速、磁盘成本降低、RAM成本降低、多核技术的发展、云架构技术的爆发,微服务不再受这些客观条件的限制,已经开始大规模的应用。与SOA架构,微服务和它都具有...

2018-07-09 22:56:51 333

这样学习ElasticSearch可以起飞

前言最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统。在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都超过亿级别,甚至达到百亿级别。所以趁着有空,就花点时间整理一下具体怎么做 Elasticsearch 性能优化,希望能对 Elasticsearch 感兴趣的同学有所帮助。背景下面是官方套话介绍elas...

2018-07-09 19:30:25 218

原创 同样的工作、同样的做需求,为什么他们能进阿里

引言古人云:“活到老,学到老。”互联网算是最辛苦的行业之一,“加班”对工程师来说已是“家常便饭”,同时互联网技术又日新月异,很多工程师都疲于应付,叫苦不堪。以至于长期以来流传一个很广的误解:35岁是程序员工作的终点。如何在繁忙的工作中做好技术积累,构建个人核心竞争力,相信是很多工程师同行都在思考的问题。同样的工作、同样的做需求,为什么有的人只能在现有岗位上缓慢前行,而有的人却能进阿里,本文是我自己...

2018-07-08 17:53:48 399

这样学习ElasticSearch可以起飞

前言最近一年使用 Elasticsearch 完成亿级别日志搜索平台「ELK」,亿级别的分布式跟踪系统。在设计这些系统的过程中,底层都是采用 Elasticsearch 来做数据的存储,并且数据量都超过亿级别,甚至达到百亿级别。所以趁着有空,就花点时间整理一下具体怎么做 Elasticsearch 性能优化,希望能对 Elasticsearch 感兴趣的同学有所帮助。背景下面是官方套话介绍elas...

2018-07-06 16:16:51 408

原创 并发编程的艺术

很久没更新文章了,对隔三差五过来刷更新的读者说声抱歉。关于 Java 并发也算是写了好几篇文章了,本文将介绍一些比较基础的内容,注意,阅读本文需要一定的并发基础。本文的主要目的是让大家对于并发程序中的重排序、内存可见性以及原子性有一定的了解,同时要能准确理解 synchronized、volatile、final 几个关键字的作用。另外,本文还对双重检查形式的单例模式为什么需要使用 volatil...

2018-07-05 22:38:54 253

Java 并发基础之内存模型

很久没更新文章了,对隔三差五过来刷更新的读者说声抱歉。关于 Java 并发也算是写了好几篇文章了,本文将介绍一些比较基础的内容,注意,阅读本文需要一定的并发基础。本文的主要目的是让大家对于并发程序中的重排序、内存可见性以及原子性有一定的了解,同时要能准确理解 synchronized、volatile、final 几个关键字的作用。另外,本文还对双重检查形式的单例模式为什么需要使用 volatil...

2018-07-05 22:28:51 222

原创 并发编程锁之synchronized(二)

锁synchronized并发编程中数据同步需要依赖锁进行控制,上篇博文通过ReentrantLock源码分析也对Lock实现锁机制的大致原理有了一个了解,Lock主要是通过编码的方式实现锁,其核心就是:CAS+循环,CAS原子操作需要依赖底层硬件层特殊的CPU指令。这节我们来看下Java中另一种非常常见的实现同步的方式:synchronized。synchronized主要通过底层JVM进行实现...

2018-07-03 16:55:57 1106

原创 并发编程之多线程状态(一)

总的执行图:所有状态:1,创建状态( new )在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时,它已经有了相应的内存空间和其他资源,但还处于不可运行状态。新建一个线程对象可采用Thread 类的构造方法来实现,例如,“Thread thread=new Thread();”。2,就绪状态( Runnable )新建线程对象后,调用该线程的start()方法就可以启动线程。...

2018-07-02 22:28:30 463

原创 垂直打击之JVM剖析

让Java应用程序运行是一回事,但让他们跑得快就是另外一回事了。在面对对象的环境中,性能问题就像来势凶猛的野兽。但JVM的复杂性将性能调整的复杂程度增加了一个级别。这里Refcard涵盖了JVM internals、class loading(Java8中更新以映射最新的元空间)、垃圾回收、故障诊断、检测、并发性,等等。介绍Java是目前软件开发领域中使用最广泛的编程语言之一。Java应用程序在许...

2018-06-28 22:35:05 289

转载 这些面试准备为我拿到Facebook 的Offer奠定了基础

我刚刚在硅谷的科技公司完成了 7 次现场面试,我收到了来自 Facebook 的软件工程师的职位 Offer。下面分享一下我是怎么为面试做准备的,以及我在这个过程中学到的东西。(一)为了能到硅谷工作,我已准备多年当我还在澳大利亚的大学学习计算机科学的时候,我总是想象着未来能成为硅谷的一名软件工程师。我希望自己未来能够到科技行业的创新中心硅谷去工作。这个目标让我充满了动力,它也让我能够更加专注地准备...

2018-06-28 15:22:35 252

转载 为了能到硅谷工作,我已准备多年

我刚刚在硅谷的科技公司完成了 7 次现场面试,我收到了来自 Facebook 的软件工程师的职位 Offer。下面分享一下我是怎么为面试做准备的,以及我在这个过程中学到的东西。(一)为了能到硅谷工作,我已准备多年当我还在澳大利亚的大学学习计算机科学的时候,我总是想象着未来能成为硅谷的一名软件工程师。我希望自己未来能够到科技行业的创新中心硅谷去工作。这个目标让我充满了动力,它也让我能够更加专注地准备...

2018-06-27 23:24:12 382

原创 2018开发者技能调查报告之Java程序员求职必备技能分析

根据国外开发者平台 HankerRank 发布的2018 年开发者技能调查报告,本文摘录程序员求职时必备技能相关的调查结果。雇主招人时,看中哪些核心竞争力?问题解决能力(不管企业大小,都排第1)编程语言熟练程度(不管企业大小,排第2)调试(不管企业大小,排第3)系统设计(综合排第4)性能优化(综合排第5)剩下见下图相比中大型公司,小公司更为看中开发者对框架的熟练程度。因为小公司追求快启动,框架有助...

2018-06-26 23:07:36 457

转载 闲话高并发的那些神话,看京东架构师如何把它拉下神坛

高并发也算是这几年的热门词汇了,尤其在互联网圈,开口不聊个高并发问题,都不好意思出门。高并发有那么邪乎吗?动不动就千万并发、亿级流量,听上去的确挺吓人。但仔细想想,这么大的并发与流量不都是通过路由器来的吗?>>>>0x00 一切源自网卡高并发的流量通过低调的路由器进入我们系统,第一道关卡就是网卡,网卡怎么抗住高并发?这个问题压根就不存在,千万并发在网卡看来,一样一样的,都是...

2018-06-25 22:59:29 320

翻译 对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的人。这的确是真的,我们这行在这方面做得很糟糕。即使是在最常见的开发者群体(美国人、男性、白人、较为年轻和中产背景)当中,我们的甄别能力也绝对是一败涂地,而当面对更广泛的人群时,我们只会干得更差。但我们不得不扩大范围,因为就算...

2018-06-24 14:20:04 287

原创 面试完以后,我想在这里对程序员招聘的一些吐槽和建议

【导读】:James Bennett 是一个来自美国西弗吉尼亚州的程序员,Python Web 框架 Django 的核心团队成员之一。做过自由职业者,也做过全职工作。前端、后端都干过。James 对好工具充满热情,所以他一直参与 Django 框架的开发贡献,还有其他开源软件。本文是他对程序员招聘的吐槽,最后给了一些建议。作为软件人,找工作有时候似乎挺苦逼的。说真的,让我去掉前面这句中“似乎”二...

2018-06-22 22:46:04 266

原创 高级架构进阶之HashMap源码就该这么学

引言--面试常见的问题问:“你用过HashMap,你能跟我说说它吗?”“当然用过,HashMap是一种<key,value>的存储结构,能够快速将key的数据put方式存储起来,然后很快的通过get取出来”,然后说“HashMap不是线程安全的, 答:HashTable是线程安全的,通过synchronized实现的。HashMap取值非常快”等等。这个时候说明他已经很熟练使用Hash...

2018-06-22 15:21:16 255

原创 高效程序员如何优雅落地需求

回想起从公司成立敲出的第一行代码算起到现在也快三年了,平台的技术架构,技术体系也算是经历了四次比较重大的升级转化(目前第四代架构体系正在进行中),临近年底也想抽出时间来回顾一下,一个小公司从最开始的零交易到现在交易量超过百亿背后的技术变迁。总体介绍在互联网金融行业一百多亿其实也算不上大平台,也就是二级阵营吧,其实每次的架构升级都是随着业务重大推进而伴随的,在前一代系统架构上遇到的问题,业务开发过程...

2018-06-21 16:28:30 330

原创 MySQL底层索引剖析

1:Mysql索引是什么mysql索引: 是一种帮助mysql高效的获取数据的数据结构,这些数据结构以某种方式引用数据,这种结构就是索引。可简单理解为排好序的快速查找数据结构。如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。1.1:索引分类单值索引:一个索引包含1个列 create index idx_XX on table(f1) 一个表可以...

2018-06-20 17:42:03 250

原创 一篇文章把本该属于你的源码天赋还给你

"没有经验的技术差底子薄的初级程序员,如何阅读项目源码? ""有人阅读过 mybatis 的源码吗 ?就看一个初始化过程就看的已经头晕眼花了,小伙伴们支支招吧!""源码应该怎么阅读,我曾经尝试阅读一些源码,例如alibaba的druid中sqlparser部分,spring-mvc,但是发现很吃力,都说debug是最好的阅读方式,我在debug时经常有跟丢的现象……就是走着走着感觉好像进入了一些我...

2018-06-20 14:00:06 288

原创 不懂RPC实现原理怎能实现架构梦

在支付系统的微服务架构中,基础服务的构建是重中之重, 本文重点分析如何使用Apache Thrift + Google Protocol Buffer来构建基础服务。一、RPC vs Restful在微服务中,使用什么协议来构建服务体系,一直是个热门话题。 争论的焦点集中在两个候选技术: (binary) RPC or Restful。以Apache Thrift为代表的二进制RPC,支持多种语言...

2018-06-19 16:12:01 312

原创 观《亿级流量网站架构核心技术》一书有感

本文的架子参考张开套的《亿级流量网站架构核心技术》这本书分为四个部分:指导原则,高可用,高并发,实践案例。这篇文章说一说前三个部分,大部分内容都是我自己的思考,书只作为参考。指导原则高可用事前副本技术隔离技术配额技术探知技术预案事发监控和报警事中降级回滚failXXX系列事后高并发提高处理速度缓存异步增加处理人手多线程扩容指导原则书中所列举的,里有一些可能并不是原则,而是技巧。我理解的原则如下:高...

2018-06-15 21:53:07 212

原创 Google:基于容器的服务发现与负载均衡

曾在Google广告部门任职,负责广告的架构任务,14年回国同年9月创立数人云,主要基于Docker容器技术为企业级客户打造私有的PaaS平台,帮助企业客户解决互联网新业务挑战下的IT问题。今天主要分享三个议题,首先是Google数据中心的简单介绍:Google的数据中心约有200万台服务器且都是X86PC服务器,Google的数据中心没有买任何大、小型机,完全使用廉价的PC服务器搭建,因规模庞大...

2018-06-10 22:18:27 225

基于容器的服务发现与负载均衡

曾在Google广告部门任职,负责广告的架构任务,14年回国同年9月创立数人云,主要基于Docker容器技术为企业级客户打造私有的PaaS平台,帮助企业客户解决互联网新业务挑战下的IT问题。今天主要分享三个议题,首先是Google数据中心的简单介绍:Google的数据中心约有200万台服务器且都是X86PC服务器,Google的数据中心没有买任何大、小型机,完全使用廉价的PC服务器搭建,因规模庞大...

2018-06-09 15:49:18 547

原创 职场软技能:开启程序员的“破冰之旅”

在我们聊“软技能”之前,先来区分下“软技能”和“硬实力”。通常我们将自己专业方向的技能定义为 “硬技能”,以程序员为例的话,我们的算法、计算机知识和编程能力等就属于“硬技能”,是我们吃饭的家伙,大多数人等着靠他赚钱买车买房娶妻生子,但生活质量的好坏往往由“软技能”决定的,从两类技能的关系来看,“软技能”是“硬技能”的催化剂。常说的“软技能”主要包括职业能力、生产力、学习力、自我营销等,今天我们主要...

2018-06-08 22:37:44 398

原创 转:成为Java高级程序员需要掌握哪些?

section 11、Core Java,就是Java基础、JDK的类库,很多童鞋都会说,JDK我懂,但是懂还不足够,知其然还要知其所以然,JDK的源代码写的非常好,要经常查看,对使用频繁的类,比如String,集合类(List,Map,Set)等数据结构要知道它们的实现,不同的集合类有什么区别,然后才能知道在一个具体的场合下使用哪个集合类更适合、更高效,这些内容直接看源代码就OK了2、多线程并发...

2018-06-07 22:46:04 375

原创 MySQL 如何创建索引?怎么优化?

索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能开始逐渐下降,虽然官方文档说500~800w记录,所以大数据量建立索引是非常有必要的。MySQL提供了Explain,用于显示SQL执行的详细信息,可以进行索引的优化。一、导致SQL执行慢的原因1.硬件问题。如网络速度慢,内存不足,I/O吞吐量小,磁盘空间满了等。2.没有索引或者索引失效。...

2018-06-06 22:29:27 776

MyBatis 3.4.7-SNAPSHOT 中文.pdf

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可 以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录。

2018-04-22

空空如也

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

TA关注的人

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