4 深寒丶

尚未进行身份认证

我要认证

隐于暗

等级
TA的排名 1w+

以后,要如何更好地输出博客?

背景:2020魔幻开局。从1月21号起到现在,接近两个月的时间了,我实在没想到这个假期能如此漫长,这或许是退休前最后一个如此长的假期了吧(别再搞了)?年前还和同事们开玩笑,说要想放寒暑假这么长的假期,只能裸辞…实在是没想到。之前我总盼望着能有一段长假,来充分涉猎提升自己,但是,就像读书时期寒暑假书包里塞的一堆书籍,最后返校时只会嫌自己想太多。我在疫情待家的这段时间,学习效率确实非常一般,但要...

2020-03-18 00:46:39

深入一点谈谈进程和线程的区别

背景:这个问题虽然常见,但想说清楚还真不容易,在这整理下思路聊聊吧。文章目录1.什么是进程?为什么要有进程?2.什么是线程?为什么要有线程?3.它们在Linux内核中实现方式有何不同?4.所以它们到底有哪些区别?附:我们通常所说的上下文切换具体指什么?1.什么是进程?为什么要有进程?进程有一个相当精简的解释:进程是对操作系统上正在运行程序的一个抽象。这个概念确实挺抽象,仔细想想却也挺...

2020-01-05 16:14:48

http升级为https全过程(通过nginx安装SSL证书)

背景:之前项目都是为集团内部提供服务的,很多接口都是内网访问,网络安全方面考虑不多。但是随着业务发展,可能要对外提供互联网服务了,一些安全方面的因素也要逐步考虑计划。这次,就从最基本的域名安装SSL证书开始,将http协议升级为https协议。文章目录一、购买申请SSL证书二、通过nginx配置SSL证书三、将以前的http请求重定向到https四、要考虑的还有很多一、购买申请SSL证...

2019-11-08 00:57:26

多项目写入同一Logback日志文件导致的滚动混乱问题(修改Logback源码)

背景:最近打算将主要几个项目配置负载均衡策略,由于当前业务用户不多,不存在并发流量问题,我们目的只是为了实现不停机部署以及进程级别的故障转移而已。通过Jenkins动态传入端口选项参数,启动多实例项目,配合nginx的upstream策略将对应域名请求分发到不同端口。当然,首先我们得考虑项目中的服务状态以及资源共享问题,确保多实例部署不会对业务流程造成影响。这些操作配置不难,重点还是在于要充...

2019-10-31 23:05:27

为什么要学习汇编语言?

一、我学习汇编的缘由工作两年后,我为什么突然决定要学习汇编呢?在我的一些朋友看来很奇怪,确实,这个选择在我的技术学习生涯里,有点突兀。我在上篇文章 《计算机非科班工作后如何爬出技术的绝望之谷,走向开悟之路》 中聊了下目前学习的瓶颈,决定要学习计算机科班的专业课程,打破认知差距。那么我应该如何选择重点课程,设置这些课程的学习顺序呢?其实我最开始是学习了《数据结构算法》和《网络技术》的,这两者比...

2019-10-03 18:49:28

计算机非科班工作后如何爬出技术的绝望之谷,走向开悟之路

emm,几个月没写博客了,究其原因,还是觉得自己太菜了吧。我从17年底开始写博客,最初只是为了记录一下自己技术生涯的一些学习细节,将某些知识,以文章的形式记录下来,内容比较随意,主要是方便以后自己回顾,查漏补缺。但两年过去了,越来越多的读者看到了我的博客,这也许能对他们产生一些帮助,我很开心,但也很惶恐,我很怕因为自己水平不足、认识有限而误导了某些读者。作为非科班转行计算机后端开发,工作这两年...

2019-10-02 17:58:53

安装kafka-manager监控Kafka集群状态(搭配kafka tool使用)

背景:CDH集群管理界面不提供Kafka具体的状态监控,需要自己安装相关工具,我们选择比较经典的yahoo开源工具 kafka-manager,搭配 kafka tool客户端工具使用。这里简单介绍下安装过程 ~一、下载直接在GitHub官网下载即可:https://github.com/yahoo/kafka-manager需要注意的一点:由于我们集群是0.11版本,完美支持。如...

2019-05-22 23:04:41

关于Flume断点续传(防止重复消费)的解决方案

背景:前段时间写了个 Flume实时采集日志到 Kafka(极简版),其中我们是使用 exec source执行 tail命令来监控采集日志的,但这样做会存在一些问题:如果agent进程突然挂了,下次重启采集任务,会导致日志文件内容重复采集,虽然进程挂了这种事情不常发生,当我们还是要尽量避免因此带来的负面影响!一、方案选择和一些朋友交流过Flume断点续传问题,他们往往是自己修改sourc...

2019-04-20 17:26:10

金额操作中的并发事务问题

背景:关于金额操作的并发事务如何处理是个经典问题,相信很多人都会遇到类似的需求,这里讨论下如何解决此类需求 ~一、需求一个用户查询请求过来,首先需要数据库查询用户余额是否足够,如果不足则返回余额不足,如果足够则调用第三方接口查询(预计花费2s),如果第三方接口返回true则正常扣费,update用户余额,如果第三方接口返回false或者代码发生异常,则本次查询不扣费。伪代码如下:pub...

2019-04-10 00:22:42

公众号开发需要注意的几个小问题

背景:上一篇博客回忆了下公众号开发的基本流程,这篇博客记录下遇到的几个小问题吧。ps:实际开发当然不止这点问题。。1.通过code获取openid时报错{"errcode":40163,"errmsg":"code been used, hints: [ req_id: WiCbHFyFe-A5w7CA ]"}经检测,发现code只能用一次,获取之后直接将其作为参数调用获取openid...

2019-04-07 16:57:02

微信公众号开发基本流程

背景:过年前后做了个微信公众号项目,已经过去一段时间了,抽空回忆总结下基本流程吧,不然很快估计自己就忘了。。微信公众平台官网:https://mp.weixin.qq.com文章目录一、注册公众号二、了解公众号管理页面三、必备开发者工具的使用1.开发者文档2.在线接口调试工具3.web开发者工具4.公众平台测试账号四、细读开发者文档五、开发流程重点解析1.开发环境准备2.服务器基本配置3....

2019-04-07 16:46:18

Flume实时采集日志到Kafka(极简版)

背景:由于项目采用微服务架构,业务日志文件数量较多,我做了个简单的日志监控服务,先在此分享下日志采集的简单步骤,没有任何花里胡哨 ~(ps:一切数据到了 kafka就非常好解决了!)一、Flume安装Flume的安装使用可以说非常简单,直接进官网:http://flume.apache.org/最新是1.9.0版本,我们选择1.8.0版本下载。然后在Linux下解压:配置用...

2019-04-01 22:04:34

Java内部类相关注意点

背景:无论是看分布式、多线程相关源码,还是 Java编写 Spark、Flink相关大数据框架代码,都会遇到各种各样的内部类,今天复习下内部类相关注意点吧 ~一、分类静态内部类:定义在类内部的静态类成员内部类:定义在类内部的非静态类局部内部类:定义在方法中的类匿名内部类:继承一个父类或者实现一个接口,没有class关键字,直接使用new来生成一个对象的引用二、注意点汇总1.对于...

2019-03-26 22:57:25

Arrays.copyOf() 是深克隆还是浅克隆(jdk1.8)

背景:我们在看JDK源码时经常看到数组复制方法,如 Arrays.copyOf() 或 System.arraycopy(),今天我们研究下数组复制到底是浅克隆还是深克隆?一、源码public static <T> T[] copyOf(T[] original, int newLength) { return (T[]) copyOf(original, newLen...

2019-03-19 00:30:58

SpringBoot项目中Redis配置多数据库

背景:一个小需求,单Redis服务实例下根据业务配置多个数据库,需要自定义Redis配置稍作改动才能实现,此时就不能RedisTemplate一步就位了~注: Redis使用 单线程-多路复用 IO模型 ,别把多业务的并发全加在一个redis实例上,最好多实例或者集群处理!基本的配置我就不多说了,可以参考我之前的博客:SpringBoot 整合 Redis 使用详解直接上步骤:在 ap...

2019-02-17 03:46:03

SpringBoot自定义配置Redis连接需要注意的地方(结合JedisConnectionFactory源码)

背景:今天测试redis自定义配置时出现了连接空指针的问题,并且同样代码在不同版本下表现不同,让我们来结合源码详细分析下问题所在。一、问题起因起初我们SpringBoot使用的是1.5.9版本,在自定义RedisTemplate各种参数配置时出现了问题: @Bean(name = "foreRedisTemplate") public RedisTemplate getForeR...

2019-02-17 03:27:11

二分查找算法及其变种详解

背景:春节已过,开工大吉!让我们回顾下一些经典的算法吧 ~一、思想介绍二分查找(Binary Search)算法,也叫折半查找算法,它的思想非常简单,在生活中随处可见(比如:猜字游戏),但这看似简单的算法,实际却没那么容易掌握透彻。二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被...

2019-02-15 21:11:47

测试volatile变量和普通变量区别

背景:volatile变量在多线程环境中经常使用,我们利用其线程可见性和禁止指令重排的特性,实现比synchronized更轻量级的变量同步共享;虽然我们经常使用或看见volatile关键字,但是 很多人却不一定测试过加volatile和不加到底有什么区别! 在此我们测试经典应用场景下volatile关键字具体会产生什么影响!环境:win10 - jdk1.8测试过程:1.前言J...

2018-12-14 00:26:59

CDH集群安装Phoenix服务

背景:之前我们都是通过原生的 hbase-java api根据业务需求来查询hbase,每有一个查询需求都需要定制化开发相关的查询代码,较为麻烦,而且在性能优化等方面优化也是需要着重注意;目前业界使用 Phoenix操作HBase比较普遍,该方案无论是开发效率还是性能提升都能得到不错的保证,在这篇博客中记录下CDH集群如何安装Phoenix服务~集群信息:版本:CDH 5.13.0四台机...

2018-12-09 17:34:27

CAS原理 进阶篇(漫画版)

背景:最近研究并发编程,发现CAS操作贯穿其中,必须好好理解才行!特地找到一篇讲解原理很有意思的文章,转载记录下~注:本文转自 程序员小灰 微信公众号~基础篇地址:https://blog.csdn.net/Abysscarry/article/details/84798224CAS进阶篇这一期我们来深入介绍之前遗留的两个问题:1.Java当中CAS的底层实现2.CAS的ABA问题...

2018-12-04 20:43:12

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。