摘要: cat(https://github.com/dianping/cat)是应用监控系统,支持的消息类型如下: Transaction 适合记录跨越系统边界的程序访问行为,比如远程调用,数据库调用,也适合执行时间较长的业务逻辑监控,Transaction用来记录一段代码的执行时间和次数。 Event  阅读全文
posted @ 2020-08-21 16:39 秋夜 阅读(901) 评论(0) 推荐(0) 编辑
摘要: tinyid(https://github.com/didi/tinyid)和Leaf(https://github.com/Meituan-Dianping/Leaf)都是分布式Id生成器。 目前Id生成器大体有2类算法: 1. snowflake算法 2. 基于数据库的号段算法 各自算法的原理这 阅读全文
posted @ 2020-08-18 19:11 秋夜 阅读(810) 评论(0) 推荐(0) 编辑
摘要: shardingsphere(https://github.com/apache/shardingsphere)是一套开源的分布式数据中间件,可以在JDBC层, Proxy层进行SQL路由。 可以完成数据库读写分离, 数据分片等。 数据库库中间件一般会在两个地方: 1. 项目的JDBC层:对项目浸入 阅读全文
posted @ 2020-08-17 18:55 秋夜 阅读(1210) 评论(0) 推荐(0) 编辑
摘要: jetcache(https://github.com/alibaba/jetcache)和AutoLoadCache(https://github.com/qiujiayu/AutoLoadCache)都是缓存框架。 在应用程序开发中,缓存分为两种,一种是单机缓存,一种是分布式缓存。 单机缓存比如 阅读全文
posted @ 2020-08-17 13:31 秋夜 阅读(976) 评论(0) 推荐(0) 编辑
摘要: Apollo(https://github.com/ctripcorp/apollo)是一个配置中心,支持从应用、环境、集群维度去管理配置,也支持从公共,私有维度去管理配置。 满足了大部分的配置场景。 作为一个配置中心: 1. 配置项的保存,基本都会放到数据库中。 这里apollo使用的是mysql 阅读全文
posted @ 2020-08-09 22:05 秋夜 阅读(1164) 评论(0) 推荐(0) 编辑
摘要: Sentinel(https://github.com/alibaba/Sentinel)是一个限流组件。在互联网系统高可用设计中,限流作为一种托底的手段,保护系统不会被流量冲垮而出现未知的异常。 Sentinel系统的具体设计,可以参考官方文档,同时也可以参考 这个 , 这里只说一下大概的逻辑: 阅读全文
posted @ 2020-08-04 22:45 秋夜 阅读(1419) 评论(0) 推荐(0) 编辑
摘要: soul(https://github.com/Dromara/soul) 是一个Java语言编写的高性能,异步,基于webflux的响应式网关,整体项目结构比较清晰,目前还在维护开发,而且变化较大,项目本身也包含了一些优秀的设计,比如类似于dubbo的可扩展设计。网关采用插件化的方式对请求进行处理 阅读全文
posted @ 2020-08-04 22:44 秋夜 阅读(1201) 评论(0) 推荐(0) 编辑
摘要: xxl-job(https://github.com/xuxueli/xxl-job) 系统的具体设计,可以参考官方文档,非常详细,这里只说一下大概的流程。 1. 应用端通过继承类或者注解的方式,来标示一个类或者一个方法是一个job。 2. 在应用启动的时候,会做3个事情: 1. 扫描上面第一步的类 阅读全文
posted @ 2020-08-04 22:42 秋夜 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 最近线上某站点young gc有点频繁,经过排查确定了问题,这里记录一下 遇到GC,三步走 1. 确认是哪些对象引起的GC 2. 找到这些对象是哪里构造的 3. 根据情况进行优化。 确认是哪些对象引起的GC 一般情况下,我们可以通过jmap dump的方式把堆dump出来进行分析,但dump出来的是 阅读全文
posted @ 2020-08-04 22:40 秋夜 阅读(1212) 评论(0) 推荐(0) 编辑
摘要: bitmap本质使用一个bit来表示一个元素,在数据量比较大的情况下,数据去重,数据排序,数据查找,使用这种数据架构有这很大的空间优势。 在实现上,Java中最小单位是byte, 1byte=8bit, 所以如果使用Java来实现bitmap, 就要用到位移、或运算,这里使用Java的bitset 阅读全文
posted @ 2020-08-04 22:38 秋夜 阅读(298) 评论(0) 推荐(0) 编辑