首页
下载应用
提交文章
关于我们
🔥 热搜 🔥
1
1
2
1'"
3
百度
4
习近平
5
@纽约时间
6
bxss.me
7
@诉说趣闻
8
百度傻逼
9
上海
10
/\bxss.me
分类
社会
娱乐
国际
人权
科技
经济
其它
首页
下载应用
提交文章
关于我们
🔥
热搜
🔥
1
1
2
1'"
3
百度
4
习近平
5
@纽约时间
6
bxss.me
7
@诉说趣闻
8
百度傻逼
9
上海
10
/\bxss.me
分类
社会
娱乐
国际
人权
科技
经济
其它
故意按摩让女生“产生欲望”后发生关系,算性侵吗?
洗牌电商圈!阿哲放话全网:挑战抖音所有机制!爆全品类大牌!
阿哲现身评论区,@一修!肉肉痛哭,无限期停播!回应舆论黑料,关闭私信评论区!
登热榜!某牙电母被S,榜一求爱遭拒!柚柚阿哲合体年度走红毯!
小敏感喊话阿哲,出镜抖音!欠钱不还,小白龙再被扒借贷官司!
crossoverJie
筛选:
全部
仅被删
排序:
热门
实时
其他
手把手实现一条延时消息
它会一直从时间轮中取出任务来运行,而运行这些任务的线程便是我们在初始化时传入的线程池;所以所有的延时任务都是由自定义的线程池调度完成的,这样可以避免时间轮的阻塞。
crossoverJie -
2019年9月27日
其他
如何参与一个顶级开源项目
http://dubbo.apache.org/en-us/docs/developers/contributor-guide/new-contributor-guide_dev.html
crossoverJie -
2019年8月19日
其他
也许是东半球直接底气的分库分表实践了
只是需要在操作数据之前做一次路由判断,当新数据产生的足够多时(我们是两个月时间),几乎所有的操作都是针对于分表,再从库启动数据迁移,数据迁移完毕后将原有的路由判断去掉。
crossoverJie -
2019年7月25日
其他
What?一个 Dubbo 服务启动要两个小时!
但其实经过我后续排查发现刚开始其实并不是启动不起来,而是启动速度非常缓慢,所以当应用长时间启动后才会对外提供服务。而这个速度慢到居然要花费
crossoverJie -
2019年7月5日
其他
又一次生产 CPU 高负载排查实践
通过这张图其实很明显可以看出,在内存中存在一个非常大的字符串,而这个字符串正好是被这个定时任务的线程引用着。
crossoverJie -
2019年6月18日
其他
分表后需要注意的二三事
但在分表之前所有的数据都是从老表中获取的,当时的业务也没有出现问题;现在多的只是查询分表而已,但分表的数据量肯定要比大表小的多,而且有索引,所以这个效率也不会慢多少。
crossoverJie -
2019年6月13日
其他
线程池没你想的那么简单(续)
后会将线程池的状态置为关闭状态,这时将会停止接收新的任务同时会等待队列中的任务全部执行完毕后才真正关闭线程池。
crossoverJie -
2019年6月6日
其他
没那么简单的线程池
原以为线程池还挺简单的(平时常用,也分析过原理),这次是想自己动手写一个线程池来更加深入的了解它;但在动手写的过程中落地到细节时发现并没想的那么容易。结合源码对比后确实不得不佩服
crossoverJie -
2019年5月20日
其他
一次分表踩坑实践的探讨
字段选好,由于我们的业务比较单纯;是一个物联网应用,所有的数据都包含有物联网设备的唯一标识(IMEI),并且这个字段天然的就保持了唯一性;大多数的业务也都是根据这个字段来的,所以它非常适合来做这个
crossoverJie -
2019年4月16日
其他
『并发包入坑指北』之阻塞队列
因为这个外部接口是支持批量执行的,所以在消费线程取出数据后会在内存中做一个累加,一旦达到阈值或者是累计了一个时间段便将这批累计的数据处理掉。
crossoverJie -
2019年4月9日
其他
线程池中你不容错过的一些细节
这次呢可能更多是我自己的总结,比如写一篇技术博客时如果大部分人对某一个知识点讨论的比较热烈时,那一定是作者要么讲错了,要么没讲清楚。
crossoverJie -
2019年3月26日
其他
一个线程罢工的诡异事件
BlockQueue不太一样,不是由开发者自定义一个消费逻辑进行处理的;而是在初始化队列时直接丢一个线程池进去,它会在内部使用这个线程池进行消费,同时回调一个方法,在这个方法里我们写自己的消费逻辑。
crossoverJie -
2019年3月12日
其他
一致性 Hash 算法的实际应用
routeHandle.routeServer(serverCache.getAll(),String.valueOf(loginReqVO.getUserId()));
crossoverJie -
2019年3月1日
自由知乎
自由微博
其他
利用策略模式优化过多 if else 代码
所以在之前的枚举中就维护了命令和类类型的关系,只需要知道命令就能知道他的类类型。
crossoverJie -
2019年1月30日
其他
为自己搭建一个分布式 IM 系统二【从查找算法聊起】
下面则是具体的代码实现,其实算法不像是实现一个业务功能这样好用文字分析;具体还是看源码多调试就明白了。
crossoverJie -
2019年1月14日
其他
为自己搭建一个分布式 IM(即时通讯) 系统
老读者应该还记得我在去年国庆节前分享过一篇《设计一个百万级的消息推送系统》;虽然我在文中有贴一些伪代码,依然有些朋友希望能直接分享一些可以运行的源码;这么久了是时候把坑填上了。
crossoverJie -
2019年1月2日
其他
一次生产 CPU 100% 排查优化实践
创建线程池的方式也是核心线程数、最大线程数是一样的,导致一些空闲的线程也得不到回收;这样会有很多无意义的资源消耗。
crossoverJie -
2018年12月17日
其他
没错,老板让我写个 BUG!
-Dcom.sun.management.jmxremote.authenticate=false
crossoverJie -
2018年12月12日
其他
如何判断一个元素在亿级数据中是否存在?
而我们是否可以换种思路,因为只是需要判断数据是否存在,也不是需要把数据查询出来,所以完全没有必要将真正的数据存放进去。
crossoverJie -
2018年11月26日
其他
设计一个可拔插的 IOC 容器
http://127.0.0.1:5688/cicada-example/routeAction/getUser?id=1234&name=zhangsan
crossoverJie -
2018年11月15日
其他
不改一行代码定位线上性能问题
com.taobao.sketch;org.apache.velocity;com.alibaba;com.taobao.forest.domain.dataobject
crossoverJie -
2018年11月12日
其他
一次 HashSet 所引起的并发问题
这是因为之前数据量都比较少,即使是并发写入也没有出现并发扩容形成环形链表的情况。这段时间业务量的暴增正好把这个隐藏的雷给揪出来了。所以还是得信墨菲他老人家的话。
crossoverJie -
2018年11月8日
其他
一份针对于新手的多线程实践--进阶篇
上面提到的这个分配中心其实就是一个常见的定时任务的分布式调度中心,由它来统一发起调度,当然分片只是它其中的一个功能而已(关于调度中心之后有兴趣再细说)。
crossoverJie -
2018年10月31日
其他
一份针对于新手的多线程实践
线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高),并且不能直接操作主内存以及其他线程工作内存中的数据,之后再将更新之后的数据刷新到主内存中。
crossoverJie -
2018年10月29日
其他
利用责任链模式设计一个拦截器
这样看似没啥问题也能解决需求,但如果我还需要为为内容加上一个统一的标题呢?在现有的方式下就不得不新增处理方法,并且是在这个客户端(
crossoverJie -
2018年10月22日
其他
分享几个 SpringBoot 实用的小技巧
defaultListableBeanFactory.removeBeanDefinition(OrderServiceClient.class.getCanonicalName());
crossoverJie -
2018年10月15日
其他
从源码分析如何优雅的使用 Kafka 生产者
valueSerializer.serialize(record.topic(),record.value());
crossoverJie -
2018年10月11日
其他
设计一个百万级的消息推送系统
权重。可以手动调整各个节点的负载情况,甚至可以做成自动的,基于监控当某些节点负载较高就自动调低权重,负载较低的可以提高权重。
crossoverJie -
2018年9月25日
其他
【译】如何高效的使用 Git
可能有多个项目都基于同一份代码运行,因此对于每一个项目来说都需要创建一个独立的发布分支。假设现在还有一个项目正在并行运行,那就得为这个项目创建一个单独的发布分支比如
crossoverJie -
2018年9月7日
其他
「造个轮子」——cicada 源码分析
ClassactionClazz=routeAction(queryStringDecoder,appConfig);
crossoverJie -
2018年9月5日
其他
「造个轮子」——cicada(轻量级 WEB 框架)
top.crossoverjie.cicada.server.intercept.AbstractCicadaInterceptorAdapter
crossoverJie -
2018年9月3日
其他
强如 Disruptor 也发生内存溢出?
https://github.com/crossoverJie/JCSprout/tree/master/src/main/java/com/crossoverjie/disruptor
crossoverJie -
2018年8月29日
其他
分布式(一) 搞定服务注册与发现
https://github.com/crossoverJie/netty-action/tree/master/netty-action-zk
crossoverJie -
2018年8月27日
其他
什么样的简历不会被丢进回收站
这块我觉得可以适当减少项目具体的业务描述(自然不是不写),因为具体的项目了解一般会在简历评估通过后在面试中详聊。
crossoverJie -
2018年8月21日
其他
如何成为一位「不那么差」的程序员
https://medium.freecodecamp.org/building-your-personal-brand-as-a-new-web-developer-f6d4150fd217
crossoverJie -
2018年8月13日
其他
Netty(三) 什么是 TCP 拆、粘包?如何解决?
ProtobufDecoder(BaseResponseProto.ResponseProtocol.getDefaultInstance())).addLast(new
crossoverJie -
2018年8月6日
其他
如何优雅的使用和理解线程池
谈到线程池就会想到池化技术,其中最核心的思想就是把宝贵的资源放到一个池子中;每次使用都从里面获取,用完之后又放回池子供其他人使用,有点吃大锅饭的意思。
crossoverJie -
2018年7月30日
其他
HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!
冲突严重时,在桶上形成的链表会变的越来越长,这样在查询时的效率就会越来越低;时间复杂度为
crossoverJie -
2018年7月23日
其他
Guava 源码分析(Cache 原理【二阶段】)
value={}",notification.getCause(),notification.getKey(),notification.getValue());
crossoverJie -
2018年7月16日
其他
一次线上问题排查所引发的思考
这类问题并不像一个空指针、数组越界这样明显好查,这时就需要刚才提到的内存模型、对象创建、线程等相关知识结合在一起来排查问题了。
crossoverJie -
2018年7月9日
其他
Netty(二) 从线程模型的角度看 Netty 为什么是高性能的?
利用率不高,一旦有大量的客户端连接上来性能必然下降,甚至会有大量请求无法响应。最坏的情况是一旦这个线程哪里没有处理好进入了死循环那整个服务都将不可用!
crossoverJie -
2018年7月4日
其他
一个学渣的阿里之路
部门在做的事情上确实更加有诱惑力,之后我表达了有一个面试正在流程中的顾虑;对方表示可以私下和我快速的进行三面,如果一切没问题再交由我自行选择。至少对双方都是一个双赢嘛。
crossoverJie -
2018年6月21日
其他
Guava 源码分析(Cache 原理)
内部通过一个队列来维护缓存的顺序,每次访问过的数据移动到队列头部,并且额外开启一个线程来判断数据是否过期,过期就删掉。有点类似于我之前写过的
crossoverJie -
2018年6月13日
其他
Netty(一) SpringBoot 整合长连接心跳机制
ctx.writeAndFlush(HEART_BEAT).addListener(ChannelFutureListener.CLOSE_ON_FAILURE)
crossoverJie -
2018年5月28日
其他
秒杀架构实践
https://github.com/crossoverJie/SSM/tree/master/SSM-SECONDS-KILL/SSM-SECONDS-KILL-ORDER-CONSUMER
crossoverJie -
2018年5月8日
其他
分布式限流
@Pointcut("@annotation(com.crossoverjie.distributed.annotation.CommonLimit)")
crossoverJie -
2018年4月28日
其他
动手实现一个 LRU cache
时需要删除初始化的头尾结点。这是因为初始化时候生成了两个双向节点,没有数据只是为了形成一个数据结构。当真实数据进来之后需要删除以方便后续的操作(这点可以继续优化)。
crossoverJie -
2018年4月8日
其他
基于 Redis 的分布式锁
在我们将应用拆分为分布式应用之前的单机系统中,对一些并发场景读取公共资源时如扣库存,卖车票之类的需求可以简单的使用同步或者是加锁就可以实现。
crossoverJie -
2018年4月2日
其他
深入理解线程通信
开发中不免会遇到需要所有子线程执行完毕通知主线程处理某些逻辑的场景。
crossoverJie -
2018年3月16日
其他
你应该知道的 volatile 关键字
线程在工作时,需要将主内存中的数据拷贝到工作内存中。这样对数据的任何操作都是基于工作内存(效率提高),并且不能直接操作主内存以及其他线程工作内存中的数据,之后再将更新之后的数据刷新到主内存中。
crossoverJie -
2018年3月9日
{{{deleted_alert}}}
{{classification}}
{{{title}}}
{{{preview}}}
{{nickname}}
{{ct}}
更多