上一页 1 2 3 4 5 6 7 ··· 26 下一页
  2019年9月17日
摘要: 最近项目中的本地缓存,看是从Guava改成了Caffeine,据说是性能更好,既然性能更好的话,那么就用起来吧。不过在使用过程中,发现了单个load和批量loadall方面的一些小设置,记录一下。 一般说来,我们获取单条记录的时候,一般都是 cache.get(id),当数据过期,会从提前设定好的load方法中获取数据。 同样的,如果我们想批量获取记录的时候,一般都是用cache.getAll(i... 阅读全文
posted @ 2019-09-17 09:29 程序诗人 阅读(2367) 评论(0) 推荐(0) 编辑
  2019年8月21日
摘要: 说来赶巧,之前我有16个redis集群,然后我要将某个key根据路由规则存到16个集群中的某一个上面,正巧用到了这两种哈希算法,改造完毕上线后,整体带来的效果也十分理想。 说道ketamahash,它是一致性哈希算法,一般说来都是由若干固定的虚拟节点来计算出每个虚拟节点的slots,数据存储的时候,算出key的slot值,然后存入相邻最近的虚拟节点。而murmurhash则是散列算法,由于其计算产... 阅读全文
posted @ 2019-08-21 09:30 程序诗人 阅读(4273) 评论(0) 推荐(2) 编辑
  2019年8月20日
摘要: 处理json字段,可以用json_extract函数: select * from (select json_extract(ext_value,'$.high')+0 highx,batch_id from batch_ext_1 where ext_type=19 ) a where a.highx>15000000000 将json字段中的String值转为数字型,可以用+0操作,比如上面语... 阅读全文
posted @ 2019-08-20 14:40 程序诗人 阅读(6444) 评论(0) 推荐(0) 编辑
  2019年8月5日
摘要: 今天在进行序列号压测的时候,通过调用genSeqId方法来获取序列号,100并发,16台压测机器,发现无论怎么压测,调用量达到140w左右的时候,此方法的ops直接掉到了0,具体图示如下: 从上图可以明显看到,整个ops呈现断崖式下跌。 当时左思右想,不得其解,后来注释掉代码中的System.out.println后,然后再进行压测,发现恢复正常: 上图可以看到,压到了一亿的量后,由于没有... 阅读全文
posted @ 2019-08-05 17:58 程序诗人 阅读(707) 评论(0) 推荐(1) 编辑
  2019年7月26日
摘要: 书名:微言高并发架构 拟采用先总,然后细分,最后再以秒杀系统汇总的方式来进行。 先总,也就是先总的概述当前互联网架构的演进方式,从最简单的两层模式,逐渐过渡到三层模式,直到最后的分布式服务框架的加入,直至目前大行其道的微服务架构。 之后各章节,将此架构进行拆分,分为基础章节和提升章节 基础章节分为高性能列号生成器章节,分布式缓存章节(redis和本地缓存),分布式服务章节,微服务章节,分布式mq章... 阅读全文
posted @ 2019-07-26 19:50 程序诗人 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在翻阅AQS(AbstractQueuedSynchronizer)类的过程中,发现其进行原子操作的时候采用的是CAS。涉及的代码如下: 1: private static final Unsafe unsafe = Unsafe.getUnsafe(); 2: private static final long stateOffset; 3: privat... 阅读全文
posted @ 2019-07-26 17:53 程序诗人 阅读(11073) 评论(0) 推荐(0) 编辑
  2019年7月17日
摘要: 今早收到一条短信,具体报警信息如下: 【UMP JVM监控内存报警】应用名:发券worker(jdos_couponwkr);KEY【coupon.send.worker.jvm】,主机名:【host-10-183-72-114】,实例【11909223645】的堆内存使用率连续3次超过设定阀值【90.0%】。报警级别:【Warning】,报警时间:【2019-07-17 07:36:12】。 说... 阅读全文
posted @ 2019-07-17 10:06 程序诗人 阅读(2257) 评论(0) 推荐(0) 编辑
  2019年6月28日
摘要: 本文译自Getting Started with Javassist,如果谬误之处,还请指出。 bytecode读写 ClassPool Class loader 自有和定制 Bytecode操控接口 Generics Varargs J2ME 装箱和拆箱 调试 1. bytecode读写 Java 阅读全文
posted @ 2019-06-28 09:35 程序诗人 阅读(6390) 评论(0) 推荐(3) 编辑
  2019年6月6日
摘要: 1. 前言 几年前,我就一直想着要设计一款自己的实时通讯框架,于是出来了TinySocket,她是基于微软的SocketAsyncEventArgs来实现的,由于此类提供的功能很简洁,所以当时自己实现了缓冲区处理,粘包拆包等,彼时的.net平台还没有一款成熟的即时通讯框架出来,所以当这款框架出来的时 阅读全文
posted @ 2019-06-06 11:07 程序诗人 阅读(7319) 评论(30) 推荐(26) 编辑
  2019年6月5日
摘要: 在最近设计服务治理模块中,涉及到如下的使用方式:abstract class mybase{ Map cache = Maps.newConcurrentMap(); abstract void add(); } class mya extends mybase{ public void add (){ ca... 阅读全文
posted @ 2019-06-05 21:05 程序诗人 阅读(196) 评论(0) 推荐(0) 编辑
  2019年4月17日
摘要: 客户端发送消息并同步获取结果,其实是违背Netty的设计原则的,但是有时候不得不这么做的话,那么建议进行如下的设计: 比如我们的具体用法如下: NettyRequest request = new NettyRequest(); request.setRequestId(UUID.randomUUID().toString()); ... 阅读全文
posted @ 2019-04-17 10:07 程序诗人 阅读(22224) 评论(2) 推荐(0) 编辑
  2019年3月15日
摘要: 压测机器: 100台docker redis集群:16个分片 在开始压测的半个小时中,一直很稳定,ops稳定在20w左右。但是接下来突然ops断崖式下跌,ops降到了3w以下。然后持续一段时间,直至变为0。 问题排查: 1. 检查docker docker都很健康,cpu占用率,内存占用率都正常,不到30%。网络状况也很好。 2. 检查mq mq也正常,响应时间没有被可以拉长 3. 检查redis... 阅读全文
posted @ 2019-03-15 15:52 程序诗人 阅读(938) 评论(0) 推荐(0) 编辑
  2019年3月8日
摘要: 1. 写作缘起 几年前,我在一家农业物联网公司,负责解决其物联网产品线。我们当时基于.net平台打造了一套实时数据采集系统,可以把数以百万级的传感器传送回来的数据采集入库并根据这些数据进行建模。在搭建这套实时数据采集系统的时候,高并发高可用被首次提出,同时要求系统不会有太大的时延。一旦有时延,也就意 阅读全文
posted @ 2019-03-08 20:22 程序诗人 阅读(4436) 评论(47) 推荐(23) 编辑
  2019年3月7日
摘要: 在Redis集群中,会有很多个分片,如果此时利用Jedis来操作此Redis集群,那么他会把数据路由到不到的分片上。而且如果动态的往集群中增加分片,也不会影响Jedis的功能。究竟是怎么做到的呢? 由于最近公司要集中迁移redis集群,也就是把旧集群的数据迁移到Redis Cluster中,就需要我们自己来整理数据。刚好我这里有个库存热点数据,我们叫做A吧,这个A在Redis集群中,每个分片上都有... 阅读全文
posted @ 2019-03-07 21:45 程序诗人 阅读(394) 评论(0) 推荐(0) 编辑
  2019年2月12日
摘要: 说到ByteBuf,我们并不陌生,官网给的解释为,一个可以进行随机访问或者是顺序访问的字节集合,它是NIO buffers缓冲的底层抽象。既然是底层抽象,那么我们就可以基于其衍生出很多的具体实现出来,事实上,netty中的很多缓冲组件都是基于此抽象类做的扩展。 随机访问索引 和普通的字节数据一样,B 阅读全文
posted @ 2019-02-12 18:21 程序诗人 阅读(1794) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 26 下一页