中间件编程之RocketMq消息中间件消息堆积处理

我们一个一个来梳理吧,先假设一个场景,我们现在消费端出故障了,然后大量消息在 mq 里积压,现在出事故了,慌了。大量消息在 mq 里积压了几个小时了还没解决几千万条数据在 MQ 里积压了七八个小时,从下午 4 点多,积压到了晚上 11 点多。这个是我们真实遇到过的一个场景,确实是线上故障了,这个时候
2020年12月11日 1,486次浏览

zookeeper中间件使用之独占锁与共享锁

ZooKeeper提供分布式协调服务,应用非常广泛,虽然出现了其他服务发现组件,比如etcd、consul,但是仍然可以看到ZooKeeper在Kafka、Solr、Hbase、Stom等方面的应用。分布式锁是其中一个使用特性,分布式锁包含排他锁和共享锁两类锁。1. 排他锁1.1 简介又称为写锁或者
2020年12月11日 1,085次浏览

中间件编程之zookeeperApi使用

zk在常用中间件中作为通讯工具,集群管理工具,掌握zk的java操作非常有必要。Java操作zookeeper总共有三种方式:原生的Java APIzkclientcurator第一种实现代码:pom.xml<dependency> <groupId>org.apach
2020年12月09日 1,211次浏览

java之四种动态代理的实现

动态代理说白了还是为了最终生成新的代理类,把原先的老类包裹一层,生成新的类。CGLAB代理类核心,hadle类package proxy; import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer;import net.s
2020年12月09日 911次浏览

java编程小技巧

java判断字符串是否是数字public static boolean isNumeric(String str) {String bigStr;try {bigStr = new BigDecimal(str).toString();} catch (Exception e) {return fa
2020年12月04日 767次浏览

java之sql优化集合

1.大分页查询,先查询id,在查具体数据,减少回表次数 select id from xxx; select * from xxx where id in (上面语句结果); 2.多表left join查询 多表left join 查询1 原始sql select a.*,b.* from xxx as a left join yyy as b on a.id=b.aid where a.type=1 可先子查询a表,用子表再left join b表 减少笛卡尔积次数
2020年12月03日 1,380次浏览

java之区块链开发

学习文件 chaozh/awesome-blockchain-cn: 收集所有区块链(BlockChain)技术开发相关资料,包括Fabric和Ethereum开发资料
2020年12月03日 657次浏览

ElasticSearch之canal,BinLog同步代码实践

1.引言在很多业务情况下,我们都会在系统中引入ElasticSearch搜索引擎作为做全文检索的优化方案。如果数据库数据发生更新,这时候就需要在业务代码中写一段同步更新ElasticSearch的代码。这种数据同步的代码跟业务代码耦合性非常高,并且使得代码的可读性降低,于是乎,我们能不能把这些数据同
2020年12月02日 1,477次浏览

java之跨库分页

一、需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息(2)京东下单过多时,拉取第N页订单(3)浏览58同城,查看第N页帖子这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:(1)有一个业务主键id, 例如msg_id, order_i
2020年12月01日 936次浏览

java8之Stream分页

前提stream的降序排序和之前我们通过重写Comparable接口,实现降排相比,要节省很多代码,而用stream分页,额鹅…纯属玩玩,一般用来裁剪数据。排序List<Student newList = new ArrayList<>(10);//升序list.stream().
2020年12月01日 1,799次浏览