Spring原生Rpc六种实现的正确打开方式

前言 在java生态圈谈到Rpc,很多人可能就会想到Dubbo、Motan、Grpc等框架。但是你知道吗?作为Java编程全家桶的Spring已经内置了多种RPC的实现方式,可以直接使用。存在即合理,有些场景下其实并不需要Dubbo,Grpc等重量级的RPC组件,那么Spring的轻量封装就可以派上用场了。下面就来探索下Spring中的RPC的实现方式以及如何使用的。 文中代码地址: https://gitee.com/kailing/spring-rpc 什么是Rpc? Rpc...

阅读全文 »

Klcok分布式锁新增锁超时处理策略支持

Klcok分布式锁新增锁超时处理策略支持

klock简介 Klock是博主基于redis开发的分布式锁spring-boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目。基于注解驱动,支持spring Spel,方便的定义锁的key的粒度。项目已开源,这次主要新增了锁等待超时和锁释放超时的处理策略。 项目地址: https://gitee.com/kekingcn/spring-boot-klock-starter 本次更新内容 本次更新主要新增了【锁等待超时】和【...

阅读全文 »

手写一个简版的key/value服务kedis

手写一个简版的key/value服务kedis

前言 今天博主主要介绍两个开源项目,然后创建应用最终实现的效果就像简版的redis服务那样,通过http的get请求,能够插入和获取数据,项目暂取名为kedis,源码后面会上传到git仓库。他们分别是Facebook开源的Rocksdb和netty实现的http容器RestExpress。通过实现这样的一个key/value系统实例来学习这两个框架的使用。 rocksdb 项目地址:https://github.com/facebook/rocksdb RocksDB是一个带key/value接口的存储...

阅读全文 »

关于mysql的事务,这些你都了解了么?

关于mysql的事务,这些你都了解了么?

前言 这篇博文源于公司一个批处理的项目异常而起的。先简单描述下发生背景。一个基于spring batch开发的批处理应用,线上运行了9个多月后,某一天突然跑批任务失败了,检查日志得知,是因为一个mysql异常导致的:Lock wait timeout exceeded。msyql事务锁等待超时这个异常虽然不常见,但随便一搜就会看到大量的相关的信息。导致这个异常的原因就是mysql数据库事务锁等待超时,默认超时时...

阅读全文 »

关于Maven的使用,这些你都了解了么?

关于Maven的使用,这些你都了解了么?

Maven使用说明及规范 此文档主要说明Maven的基础使用方式,以及在使用过程过程中需要遵守哪些默认的准则。我们工作中会经常写maven的配置,但是很多maven使用细节你可能并不知道,但你掌握后使用maven会更加上手。 Maven是什么? Apache Maven是一个软件项目管理工具。基于项目对象模型(POM)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告和文档。 Maven的核心是一个插件...

阅读全文 »

改造Skywalking支持阿里云等带Http Basic的Elasticsearch服务

改造Skywalking支持阿里云等带Http Basic的Elasticsearch服务

前言 最近公司skywalking服务经常出现大盘空白的情况,经查明,是由于ES的写入瓶颈造成线程阻塞,数据没有落地到ES造成。后综合运维成本等方面考虑,准备使用阿里云提供的Elasticsearch服务,阿里云的ES无论内外网都加上了Http Basic认证,但是skywalking6.x提供的RestHighLevelClient客户端并没有适配带Http Basic基础认证的ES服务,所以需要稍加改动下skywalking源码。 skywalking项目结构 项目从github...

阅读全文 »

Elasticsearch写入瓶颈导致skywalking大盘空白

Elasticsearch写入瓶颈导致skywalking大盘空白

前言 本文首发于博主所在公司凯京官方博客,欢迎关注: https://my.oschina.net/keking/ 继上次skywalking出故障《 https://my.oschina.net/keking/blog/3016839 》不到一个月,线上skywalking又出毛病了。又是大盘空白,trace列表最近的数据都查询不出来,但是时间稍久的数据就能查询出来,如一天前的数据有,一个小时前的数据就没有,这个只是表象,最终查明症结是ES的服务写入瓶颈,导致写入写入数据...

阅读全文 »