- 博客(40)
- 收藏
- 关注
转载 java线程池ThreadPoolExecutor八种拒绝策略浅析
前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了,jdk1.5新增的java.util.concurrent包下的这个api,大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPo...
2019-07-29 19:42:00 1690
转载 计算机数字的表示
我们知道计算机底层都是使用二进制来操作的,但是生活中我们更习惯使用十进制来计算和表示. 这其中又有什么关系呢?所以在阅读此文章之前,我们先问自己一下两个问题:1.我们生活中常用的数字如何在计算机中使用二进制表示2.这些数如何在计算机中做数字运算。一、常用进制对于习惯使用十个手指头的人类...
2019-07-26 18:36:00 4701
转载 etcd实现故障时主备秒级切换高可用架构
什么是Etcd? etcd是一个强大的一致性的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器群访问的数据。它优雅地处理网络分区期间的领导者选举,并且可以容忍机器故障,即使在领导者节点中也是如此。从简单的Web应用程序到Kubernetes,任何复杂的应用程序都可以读取数...
2019-07-23 17:21:00 1607
转载 GitOps 与 ChatOps 的落地实践
前言说到 GitOps 和 ChatOps ,那就不得不谈到 DevOps 。 DevOps 作为一种文化,旨在促进开发、测试和运维人员之间的沟通与协作。而促进合作的方式,往往是使用一系列工具,完成这三个角色的相互协作。这带来的好处也是显而易见的:更快的交付速度和更低的人力成本。获益于 De...
2019-07-19 17:31:00 417
转载 Kubecon 2019 见闻:云原生未来可期
Kubecon 2019 见闻:云原生未来可期前言2019年6月24-26日,KubeCon + CloudNativeCon + Open Source Summit大会在上海世博中心举行。本次大会规模空前,预计有超过40个国家,3500多名云原生、开源领域的开发者参加,门票更是早早售罄...
2019-07-05 17:33:00 224
转载 由一封邮件看 Mailing List 在开源项目中的重要性
由一封邮件看 Mailing List 在开源项目中的重要性只要仔细找,想要的轮子总会有的。--- 某不知名 DevOps 工程师感谢 kubernetes-dev 的 Mailing List !早上在浏览邮件时发现了下面这封有趣的邮件:接触 Kubernetes 也有不短的时间了,...
2019-07-05 17:29:00 1174
转载 Spring Cloud Gateway限流浅析之一段脚本实现令牌桶
前言 在一个分布式高并发的系统设计中,限流是一个不可忽视的功能点。如果不对系统进行有效的流量访问限制,在双十一和抢票这种流量洪峰的场景下,很容易就会把我们的系统打垮。而作为系统服务的卫兵的网关组件,作为系统服务的统一入口,更需要考虑流量的限制,直接在网关层阻断流量比在各个系统中实现更合适。...
2019-07-04 09:52:00 446
转载 kkFileView(在线文件预览项目)功能详解
项目介绍项目简介此项目为文件文档在线预览项目解决方案,对标业内付费产品有【永中office】【office365】【idocv】等,在取得公司高层同意后以Apache协议开源出来反哺社区,在此特别感谢@唐老大的支持以及@端木详笑的贡献。该项目使用流行的spring boot搭建,易上手和部...
2019-06-21 14:28:00 33454
转载 Spring WebFlux的设计及工作原理剖析
前言 Spring 5发布有两年了,随Spring 5一起发布了一个和Spring WebMvc同级的Spring WebFlux。这是一个支持反应式编程模型的新框架体系。反应式模型区别于传统的MVC最大的不同是异步的、事件驱动的、非阻塞的,这使得应用程序的并发性能会大大提高,单位时间能够...
2019-06-19 11:09:00 6533
转载 spring-boot-actuator中health的工作原理解析
前言 最近在一个webflux项目中使用spring-boot-actuator提供的健康检查端点时出了点问题,故对spring-boot-actuator的项目构造,工作原理进行了全面的梳理,标题之所以写明health的工作原理,是因为spring-boot-actuator着实是个大工...
2019-06-14 15:32:00 2314
转载 使用Path2D和凸包算法实现地理围栏
前言地理围栏(Geo-fencing)是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界。在物流配送行业应用比较广,划分每个配送网点或者商家配送的范围,提高配送员的配送效率和服务的范围。1.使用Path2D创建一个多边形Path2D类是java.awt.geom包提供的工具包...
2019-06-06 11:34:00 1154
转载 记spring-boot项目启动卡住问题排查记录
问题背景 一个spring boot开发的项目,spring boot版本是1.5.7,携带的spring版本是4.1.3。开发反馈,突然在本地启动不起来了,表象特征就是在本地IDEA上运行时,进程卡住也不退出,应用启动时加载相关组件的日志也不输出。症状如下图: 问题分析 因为没...
2019-06-05 19:30:00 2280
转载 j2Cache线上异常问题排查记录
问题背景 开发反馈,线上有个服务在运行一段时间后,就会抛异常导致redis缓存不可用。项目使用了j2Caceh,异常是j2Cache的RedisCacheProvider抛出来的,如: Exception in thread "main" redis.clients.jedis.exce...
2019-06-04 18:00:00 1401
转载 spring boot集成kafka之spring-kafka深入探秘
前言 kafka是一个消息队列产品,基于Topicpartitions的设计,能达到非常高的消息发送处理性能。Spring创建了一个项目Spring-kafka,封装了Apache 的Kafka-client,用于在Spring项目里快速集成kafka。除了简单的收发消息外,Spring...
2019-05-31 19:08:00 1140
转载 DRF-Tracking模块源码分析
DRF-Tracking模块源码分析一、drf-tracking是什么?drf-tracking是为DRF的view访问提供一个日志记录模块。使用mixin的方式无缝的和DRF相结合。 从源码结构上来看也是Django的一个APP项目,提供Model将日志记录到数据库、自定Manger操作...
2019-05-24 17:44:00 247
转载 轻量快速的CI工具Drone快速入门
前言公司之前一直在使用 Jenkins 作为 CI/CD 工具, Jenkins 非常强大,它完成了几乎所有 CI/CD 的工作,并且应用于整个团队有好长一段时间了。但是随着公司推荐数字化、智慧化,以及服务容器化的推进, Jenkins 的一些弊端也凸显了出来:重量级: Jenkins ...
2019-05-24 17:38:00 3494
转载 Spring原生Rpc六种实现的正确打开方式
前言 在java生态圈谈到Rpc,很多人可能就会想到Dubbo、Motan、Grpc等框架。但是你知道吗?作为Java编程全家桶的Spring已经内置了多种RPC的实现方式,可以直接使用。存在即合理,有些场景下其实并不需要Dubbo,Grpc等重量级的RPC组件,那么Spring的轻量封装...
2019-04-29 20:08:00 509
转载 从边车模式到 Service Mesh
从边车模式到 Service Mesh所谓边车模式( Sidecar pattern ),也译作挎斗模式,是分布式架构中云设计模式的一种。因为其非常类似于生活中的边三轮摩托车而得名。该设计模式通过给应用程序加上一个“边车”的方式来拓展应用程序现有的功能。该设计模式出现的很早,实现的方式也多种...
2019-04-16 17:39:00 302
转载 手写一个简版的key/value服务kedis
前言 今天博主主要介绍两个开源项目,然后创建应用最终实现的效果就像简版的redis服务那样,通过http的get请求,能够插入和获取数据,项目暂取名为kedis,源码后面会上传到git仓库。他们分别是Facebook开源的Rocksdb和netty实现的http容器RestExpress。...
2019-04-16 09:52:00 327
转载 关于mysql的事务,这些你都了解了么?
前言 这篇博文源于公司一个批处理的项目异常而起的。先简单描述下发生背景。一个基于spring batch开发的批处理应用,线上运行了9个多月后,某一天突然跑批任务失败了,检查日志得知,是因为一个mysql异常导致的:Lock wait timeout exceeded。msyql事务锁等待...
2019-04-08 15:45:00 179
转载 阿里云容器服务新建集群优化方案
前言选择阿里云的容器服务,主要原因是公司主要业务基本都运行在阿里云上。相较自建 kubernetes 集群,容器服务的优势在于部署相对简单,与阿里云 VPC 完美兼容,网络的配置相对简单,而如果使用 kubeadmin 安装部署 kubernetes 集群,除了众所周知的科学上网问题,还有一...
2019-04-08 11:14:00 150
转载 关于Maven的使用,这些你都了解了么?
Maven使用说明及规范 此文档主要说明Maven的基础使用方式,以及在使用过程过程中需要遵守哪些默认的准则。我们工作中会经常写maven的配置,但是很多maven使用细节你可能并不知道,但你掌握后使用maven会更加上手。 Maven是什么? Apache Maven是一个软件项目...
2019-03-28 15:21:00 388
转载 RabbitMQ通过HTTP API获取队列消息内容
RabbitMQ通过HTTP API获取队列消息内容背景为配合公司数据中台建设,我们对公司内部使用的mysql binlog数据分发中间件(现已开源:https://gitee.com/kekingcn/keking-binlog-distributor )进行定制化改造,使其能够同时支持...
2019-03-22 13:41:00 2289
转载 浅析ServiceMesh & Istio
浅析ServiceMesh & Istio前言公司于18年10月正式确认服务容器化,到18年12月4日第一个服务正式部署到生产环境kubernetes集群,再到如今已有23个服务完成了生产环境容器化的切换,更多的服务在测试环境容器化部署随时可以切换到生产环境。目前新项目的开发,大部...
2019-03-22 10:02:00 650
转载 改造Skywalking支持阿里云等带Http Basic的Elasticsearch服务
前言 最近公司skywalking服务经常出现大盘空白的情况,经查明,是由于ES的写入瓶颈造成线程阻塞,数据没有落地到ES造成。后综合运维成本等方面考虑,准备使用阿里云提供的Elasticsearch服务,阿里云的ES无论内外网都加上了Http Basic认证,但是skywalking6....
2019-03-21 15:33:00 555
转载 Elasticsearch写入瓶颈导致skywalking大盘空白
前言 继上次skywalking出故障《https://my.oschina.net/keking/blog/3016839》不到一个月,线上skywalking又出毛病了。又是大盘空白,trace列表最近的数据都查询不出来,但是时间稍久的数据就能查询出来,如一天前的数据有,一个小时前的数...
2019-03-20 17:49:00 1236
转载 kkbida - 开源消息投递中间件详细解析
kkbida - 开源消息投递中间件详细解析项目简介kkbida为凯京科技开源的消息投递中间件,谐音必达,旨在保证异构系统间消息通知时消息投递必达,详情见 https://gitee.com/kekingcn/kkbida快速开始从gitee拉取代码git clone https:/...
2019-03-15 13:46:00 241
转载 Jenkins Pipeline集成Sonar进行代码质量检测
Jenkins Pipeline集成Sonar进行代码质量检测简介jenkins pipelineJenkins Pipeline (或简称为 "Pipeline" )是一套jenkins插件,将持续交付的实现和实施集成到 Jenkins 中。Jenkins Pipeline 表达了...
2019-03-07 17:37:00 1844
转载 Arthas排查Kubernetes中的应用频繁挂掉重启问题
前言 其实最终定位到的问题还是蛮好解决的,但是因为应用在Kubernetes容器中的特殊性,导致在使用Arthas过程中出现了各种问题,所以单独成文和大家分享下。照例先讲下问题发生的背景,一个很老的web系统部署在tomcat容器里。近期打成了镜像丢到了Kubernetes环境中运行,总是...
2019-03-06 13:45:00 1677
转载 Arthas协助排查线上skywalking不可用问题
前言 首先描述下问题的背景,博主有个习惯,每天上下班的时候看下skywalking的trace页面的error情况。但是某天突然发现生产环境skywalking页面没有任何数据了,页面也没有显示任何的异常,有点慌,我们线上虽然没有全面铺开对接skywalking,但是也有十多个应用。看了应...
2019-03-01 17:41:00 1124
转载 Fescar分布式事务实现原理解析探秘
前言 fescar发布已有时日,分布式事务一直是业界备受关注的领域,fescar发布一个月左右便受到了近5000个star足以说明其热度。当然,在fescar出来之前,已经有比较成熟的分布式事务的解决方案开源了,比较典型的方案如LCN(https://github.com/codingap...
2019-02-18 16:37:00 316
转载 DDD领域驱动设计在凯京科技的应用实践(概念充电篇)
凯京科技成立已三周年,其技术架构经历从单体应用到微服务架构的升级,项目经历了从Spring到SpringBoot的改造,配置实现自动化,初步实现分布式,微服务,具备一定的容错能力,完成RPC框架 Dubbo的定制化改造。目前,凯京科技在领域驱动方面也在不断的探索和实践,将DDD与微服务有机结合...
2019-02-14 13:37:00 219
转载 写给工程师的十条精进原则
前言 本文转载自美团技术博客,作者总结的十条精进原则也非常符合凯京研发中心对工程师们的要求。其中多条原则也是在公司内部多次宣导践行,故转载分享给更多的走在精进路上的工程师们。 引言 时间回到8年前,我人生中第一份实习的工作,是在某互联网公司的无线搜索部做一个C++工程师。当时的我可谓...
2019-02-01 09:48:00 173
转载 开源漏洞扫描工具(OWASP-Dependency-Check)探索
背景随着公司逐渐发展壮大,网络信息安全变得越来越重要。由此激发了我们成立兴趣小组(凯京爆破小组)研究网络信息安全的欲望。然而信息安全的防范,还得从底层编码开始做起。这样依赖性扫描工具(OWASP-Dependency-Check)就进入了我们的视线,既符合我们当前的需求又使用方便简单,自然而...
2019-01-31 17:27:00 4342
转载 kkfileView使用问题年终答疑篇
前言碎语 首先非常感谢社区同仁对kkfileview项目的关注,kkfileview开源一年多以来,收获了两千六百多个赞以及获得码云最有价值项目GVP,这离不开大家的贡献和关注。同时,kkfileview的设计模式,也被其他的类似项目所抄袭,这也从侧面说明了kkfileview存在的价值。...
2019-01-31 16:15:00 2350
转载 深入解析TCP协议
1. OSI七层模型 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。 TCP在IP报文的协议号是6。TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。 ...
2019-01-30 17:23:00 179
转载 Windows环境下Flink消费Kafka实现热词统计
前言碎语 昨天博主写了《windows环境下flink入门demo实例》实现了官方提供的最简单的单词计数功能,今天升级下,将数据源从socket流换成生产级的消息队列kafka来完成一样的单词计数功能。本文实现的重点主要有两个部分,一是kafka环境的搭建,二是如何使用官方提供的flink...
2019-01-30 17:14:00 286
转载 bin-log-distributor消费数据丢失问题解决记录
bin-log-distributor项目简介bin-log-distributor是凯京科技开源的Mysql数据库数据变动实时监听分发中间件,详情见码云开源地址, github开源地址背景线上反馈有bin-log-distributor客户端偶尔有丢失数据的情况。验证方法在装mys...
2019-01-29 20:25:00 197
转载 windows环境下flink入门demo实例
前言碎语 为了应对凯京科技集团的飞速发展,凯京科技研发中心2019定下了数据中台的目标。数据处理我们选择了批处理+流处理结合的大数据应用软件新秀Apache Flink,前几天阿里又发出好信息称将开源Blink(Flink早期分支迁出迭代优化),所以今天来近距离感受下Flink。博主之前没...
2019-01-29 18:08:00 1522
转载 脚踏实地,仰望星空
凯京技术部门,从公司创立之初的6个人,发展到今天,已经是100人左右的大部门了,创业历程,有欢笑,有泪水,有太多难忘的经历。既然是团队运营的博客,就先介绍一下团队吧 团队 团队平均年龄26岁,每个人都朝气蓬勃,充满创造力,在践行devops文化上都充满热情和活力。大家互相帮助,逐步达成一...
2019-01-29 18:04:00 81
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人