10 chiweitree

尚未进行身份认证

码农

等级
博文 249
排名 3k+

【JAVA】阻塞队列如何实现?分析JDK 阻塞队列源码实现

阻塞队列,顾名思义,在队列操作时有阻塞机制,防止出现数据不一致,这里只分析两个API的操作源代码offer(Ee)生产者,生产元素1、加锁,ReentrantLock加锁保证了不会同时有多个生产者来生产元素,达到阻塞,否则数据错误乱2、判断当前队列里的元素数count,和队列容量capacity比较判断是否可以往里面生产元素3、数据入队4、计数器++5...

2019-05-22 11:31:04

【设计模式】设计模式,持续深入

作为程序员应该都知道设计模式,有人了解的多,有人了解的少,有人了解的深,有人了解的浅。最近也在学习温故设计模式相关知识,看的是HeadFirst这本书,个人感觉设计模式最难的地方是不知道什么时候在项目中该用上它们,可能在学习的时候,概念当时大家都清楚,怎么怎么样就是XX模式了,但是回到项目研发过程中,很难get到一些点去结合某种设计模式落地,这是我认为最难的地方。其实,能够把设计模式融会...

2019-03-26 22:57:38

【JAVA】Webmagic 爬虫框架,带着问题解读源码

前言github地址https://github.com/cwtree/webmagicWebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient、Jsoup等Java世界最成熟的工具,目标就是做一个Java语言Web爬虫的教科书般的实现。 1.DownloaderDownloader负责从互联网上下载页面,以便后续处理。WebMagi...

2019-01-03 17:59:11

【FASTDFS】fastdfs上传文件报错 org.csource.common.MyException: getStoreStorage fail, errno code: 28 解决方法

这个报错要从一个tracker上的一个配置说起这个配置的含义是:storage上的剩余磁盘空间必须在10%以上才能上传文件成功,否则上传失败这个错误信息非常明确了,我们用的fastdfs的clientjar是csource的,这个maven中央仓库下不下来,解决方法参照如下文章https://blog.csdn.net/simonchi/article/details/...

2018-12-29 09:30:38

【问题记录】JAVA进程启动大概率卡住6分钟左右,应用日志没有任何WARN ERROR,系统日志也没有发现和进程相关日志,最后定位TOMCAT SHA1PRNG耗时太长

系统是基于springboot开发的系统,java-jar启动过程中发现经常会卡住6分钟左右,才能启动完成,全程没有发现任何WANR和ERROR级别的日志(其实早看看DEBUG和INFO日志,可能问题早就解决了,惯性思维害人啊),再去查看/var/log/message系统日志,也没发现任何和该进程相关的系统日志;无奈,初步怀疑服务器虚拟机有问题,让运维排查下,也没发现任何异常;将同样的...

2018-12-20 08:57:28

【Fastdfs】Fastdfs分布式文件系统的安装部署使用,结合nginx访问图片,fastdfs连接池connectionpool编写使用,文末有github链接

环境:centos7.X预编译安装组件yuminstallgccgcc-c++automakepcrepcre-develzlipzlib-developensslopenssl-devellibevent-dev libevent-devel git-y 以上安装完,后续的各个组件都可以成功编译安装了libfastcommon安装 git...

2018-12-14 11:39:59

【JAVA】JWT 与 cookie session

共享session相信大家都用过,为了解决http无状态的问题,都会通过cookie、session共享来解决用户状态共享的问题,一般都是通过cookie来保存sessionid,服务端通过sessionid在内存中取出用户的信息,做后续操作。但是在前后端分离越来越流行的情况下,cookie似乎不那么通用了,出现了更好的解决方案——JWT, json web tokenjwt由三部分构...

2018-10-23 17:04:36

【JAVA】CopyOnWrite的使用

好久没写文章了,最近有种深深的危机感,准备打打鸡血,温故以前看过但是工作中很少用到的知识点。 CopyOnWrite写时复制,JDK中一共有两个类CopyOnWriteArrayList和CopyOnWriteArraySet。顾名思义,就是只有容器中内容被修改的时候,就会copy出一个容器,然后在这个新的容器里改,之后将原容器的引用指向这个新的容器;好处就是对这个容器进行并发读写操作...

2018-10-23 16:29:38

【F5 UDP负载均衡】抓包实践,说说F5 UDP硬负载均衡探测后端服务器存活的原理

项目背景两台UDPSERVER,通过F5实现硬件的UDP负载均衡,发现UDPSERVER上会定期收到F5的UDP探测包,但是UDPSERVER并没有对这些探测包做过任何响应,所以不明白F5是如何知道UDPSERVER是活的还是死的? 两台UDPSERVER172.28.17.52172.28.17.54VIP172.28.26.13 主备F5172...

2018-07-25 14:57:52

【Kafka】kafka动态获取某个topic的partition信息

现在有这样一种场景,系统启动前,预期abctopic创建了一个100个分区,大概用个一段时间,之后可能会动态新增分区数,这就要求生产者在生产数据时,能够动态实时的获取分区数,做到及时有效的哈希生效,让数据进入新增的分区,kafka的jar包里倒是有这么一个api可以做到,不过这种场景本人觉得还不如夜里做一次升级呢。毕竟在生产数据时每次获取abctopic的分区信息是一个性能损耗,一天生产10W...

2018-05-17 15:50:35

【LVS+Keepalived】 LVS+Keepalived实现tcp、udp负载均衡及HA高可用

LVS安装下载http://www.linuxvirtualserver.org/software/index.html编译安装yuminstall-ykernel-develgccgcc-c++yuminstalllibnl*libpopt*popt-static-y解压完之后进入解压目录执行make&&makeinstall编译成功后通过ipvs...

2018-04-16 10:21:32

【DPI】nDPI 开源工程搭建编译运行

编译安装linux环境ubuntu14.04LTS前提安装gccgawkgit下载nDPI源码gitclonehttps://github.com/ntop/nDPI.gitcdnDPI目录./autogen.sh自动生成配置,会出现一系列错误,解决如下:至此开始autogen

2018-01-30 14:23:56

【Spring Cloud】三、Eureka Consumer 服务注册中心消费者调用服务

消费者和服务提供者使用同样的eureka服务端注册中心地址,调用注册中心的服务maven结构如下:application相关配置如下:spring.application.name=consumer-demoeureka.client.service-url.defaultZone=http://localhost:8060/eurekaserver.port=8080

2017-11-24 16:56:52

【Spring Cloud】二、Eureka Client 服务注册中心客户端启动注册服务

Eureka客户端启动,将服务注册到eureka服务端注册中心上maven工程结构如下pom文件如下<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.a

2017-11-24 16:48:03

【Spring Cloud】一、Eureka Server 服务注册中心服务端启动

建立maven工程工程结构如下:pom文件如下:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http:/

2017-11-17 16:44:18

【JAVA】gRPC使用

安装proto3.+版本参照http://blog.csdn.net/simonchi/article/details/76495696写好proto文件peroson.proto 对象定义文件syntax="proto3";packagecom.cmcc.protobuf;optionjava_outer_classname="PersonProbuf";

2017-08-04 16:00:52

【JAVA】google protobuf 3.0 安装使用

一开始从官网下载的protobuf3.3.0的最新版本,但是编译安装的时候有bug,回退到3.0稳定版本下载链接tar.gz解压后安装tar-zxvfxxx.tar.gz./configure--prefix=/home/protobufmakemakeinstall写proto文件syntax="proto3"

2017-08-01 10:14:27

【NetFlow】NetFlow V9协议详细分析

摘自百度百科Netflow技术最早是于1996年由思科公司的DarrenKerr和BarryBruins发明的,并于同年5月注册为美国专利,专利号为6,243,667。Netflow技术首先被用于网络设备对数据交换进行加速,并可同步实现对高速转发的IP数据流(Flow)进行测量和统计。经过多年的技术演进,Netflow原来用于数据交换加速的功能已经逐步由网络设备中的专用ASIC芯片实现,而

2017-05-09 16:40:44

【JAVA】系统中关于自定义比例选择的功能实现

这里以我做的系统案例来说,这是一套短信系统,客户端就扔一个号码和短信内容过来,服务端需要首先根据配置判断是否区分运营商,然后根据号段走不同的运营商网关去提交短信sourceId表示接入系统的唯一标识ID,如果不区分的,走下面紫色的三条线,服务端为该接入方配置了三个三网(不区分运营商)网关,并且配置了不同的比例,意思就是60%请求走gw1出去,20%走gw2出去,那么gw3虽然配置了,但

2017-03-31 14:23:09

【JAVA】系统唯一ID生成方案讨论

这种文章,网上应该很多了,不过自己不写一遍,总是不会印象太深刻,所以今天为了再度加深印象,自己也写一遍。现在的互联网项目,用户数越来越多,系统基本都是分布式部署,所以基于数据库的自增id这里就不说了。1、UUID这个东西是JAVA原生API提供的,它的确能保证唯一,但是有个弊端,它是一个字符串,字母数字组合,对于分布式系统中数据库主键的生成就不行了,数据库主键大家都是用整型类型来定义的

2017-02-21 10:12:15
CSDN身份
  • 博客专家
奖章
  • Github
    Github
    绑定github第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。