- 博客(67)
- 资源 (4)
- 收藏
- 关注
原创 frostmourne
1、快速入门 产品简介 使用场景 诊断内存泄露 诊断方法性能 重现误吞的异常 数据订正 字节码增强 快速开始 系统支持 2、原理&设计 相关技术 instrument jni jvmti javassist jline 系统架构 How to attach SystemArchitecture 功能扩展 拓展点 拓展口 开发部署 构建开发环境 工程目录结构.
2021-08-24 13:27:02
1190
原创 大厂面试--人活着就是在两种痛苦中煎熬
简介人活着就是在两种痛苦中煎熬 求之不得 求得之后的厌倦,本篇主要围绕求得之后的厌倦,谈一次面试经历。求得之后的厌倦一次面试经历二年多以前当我还在某厂碌碌无为的时候,发现身边有不少的人已经迈出了,进入大厂的步伐,不知重何时起大厂的概念已经的互联网圈子里蔓延开来,很多人将其看作是身份的象征,当听说某某进入大厂之后身边的人都会投去羡慕的目光,不知从何时起,这无形中也影响了,我开始为进入大厂开始做准备,期间在各大平台和关注各种公众号去获取更多的资料和信息,将之前各种零散的学习资料又从新去整理和汇总
2021-08-23 20:24:51
200
原创 增长黑客——如何低成本实现爆发式成长
理论篇时代背景从蛮荒时代到个人流量时代 蛮荒时代 流量时代 个人流量时代 媒介 电视、报纸、广播、电脑 手机、电脑 手机为主、电脑 触点 静态触点(只可进行单向的信息输出/输出) 交互触点为主+部分人类触点 人类触点为主+交互触点 信
2021-08-23 10:00:22
932
原创 苏宁的RPC远程服务调用框架RSF
苏宁的系统间交互最初使用中心化 ESB 架构,但随着系统拆分工作的展开及业务量的迅速攀升,系统间调用规模越来越大,ESB 中心化架构带来的诸如中心资源隔离、中心容量动态评估、问题排查难度、中心化扩展能力瓶颈等问题迅速显现。并且,随着自研系统逐步替换商用系统,需要进行协议转换等工作逐步弱化,因此苏宁亟待一个更轻量化的去中心化的跨系统服务调用方案。苏宁远程服务框架(RSF)致力于解决系统间的服务调用问题,提供一种透明的、高性能的 RPC 服务调用方案。目前应用于苏宁 1000+ 系统,每天的服务调用次数在
2021-08-08 11:49:59
853
原创 Redis 客户端
Jedis api 在线网址:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.htmlredisson 官网地址:https://redisson.org/redisson git项目地址:https://github.com/redisson/redissonlettuce 官网地址:https://...
2020-10-19 11:06:22
1416
转载 一文读懂 kafka
1 概述Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark等都支持与Kafka集成。Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一。Kafka作为一个商业级消息中间件,消息可靠性的重要性可想而知。如何确保消息的精确传输?如何确保消息的准确存储?如何确保消息
2020-10-19 11:05:38
292
1
原创 算法题练习:计算二叉树的深度
给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。class Solution{ /** * 计算二叉树的深度 * */ public int maxDepth(TreeNode treeNode){ if(null == treeNode){ return 0 ; } // Queue<TreeNode> queu.
2020-07-29 08:56:03
390
2
原创 常见解决Hash 冲突的方法
开放定址法 线性探测再散列 二次探测再散列 伪随机探测再散列 再哈希法 链地址法 建立公共溢出区 优缺点 开放散列(open hashing)/ 拉链法(针对桶链结构) 封闭散列(closed hashing)/ 开放定址法 通过构造性能良好的哈希函数,可以减少冲突,但一般不可能完全避免冲突,因此解决冲突是哈希法的另一个关键问题。创建哈希表和查找哈希表都会遇到冲突,...
2020-04-25 10:47:14
245
原创 Reactor模式详解
在学习Reactor模式之前,我们需要对“I/O的四种模型”以及“什么是I/O多路复用”进行简单的介绍,因为Reactor是一个使用了同步非阻塞的I/O多路复用机制的模式。I/O的四种模型I/0 操作 主要分成两部分① 数据准备,将数据加载到内核缓存② 将内核缓存中的数据加载到用户缓存 Synchronous blocking I/O Typical f...
2020-03-03 10:38:35
281
转载 从ReentrantLock的实现看AQS的原理及应用
前言Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过ReentrantLock的基本特性和ReentrantLock与AQS的关联,来深入解读AQS相关独占...
2020-02-25 20:12:16
165
转载 分布式系统互斥性与幂等性问题的分析与解决
随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用在更多的场景中。分布式系统由独立的服务器通过网络松散耦合组成。在这个系统中每个服务器都是一台独立的主机,服务器之间...
2020-02-25 12:05:06
169
转载 分布式会话跟踪系统架构设计与实践
分布式服务通信框架及服务治理系统、分布式监控系统实践、分布式会话跟踪系统架构设计与实践,特邀美恰CTO讲解时下热门话题“微服务”。其中既包括关键系统设计、在美团点评内部的实践经验,也包括一些项目在业界开源的运营实践。随着美团点评的业务发展,公司的分布式系统变得越来越复杂,我们亟需一个工具能够梳理内部服务之间的关系,感知上下游服务的形态。比如一次请求的流量从哪个服务而来、最终落到了哪个服务中去?...
2020-02-24 21:39:04
255
原创 Java NIO 浅析
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。那么NIO的本质是什么样的呢?它是怎样与事件模型结合来解放线程、提高系统吞吐的呢?本文会从传统的阻塞I/O和线程池模型面临的问题讲起,然后对比几种常见I/O模型,一...
2020-02-24 21:05:26
140
原创 Java/JUC进阶/Java 并发 - 09 ScheduledThreadPoolExecutor 进阶
目录:一、ScheduledThreadPoolExecutor 结构概述继承关系 ScheduledFutureTask二、scheduleAtFixedRate 与 scheduleWithFixedDelayscheduleAtFixedRate scheduleWithFixedDelay三、源码分析延迟任务 周期任务 取消任务总结本文主要讲述 Threa...
2019-09-04 15:09:42
207
原创 Java/JUC进阶/Java 并发 - 08 ThreadPoolExecutor 进阶
目录:一、ThreadPoolExecutor 概览主体结构 Worker 结构 ctl 控制变量二、ThreadPoolExecutor 源码分析增加工作线程 提交任务 处理任务 停止线程池三、拒绝策略四、Executors 工厂方法总结本文主要借号我们平时最常用的线程池 ThreadPoolExecutor , 有可能平时没有直接使用这个类, 而...
2019-09-04 09:50:16
119
原创 Java/JUC进阶/Java 并发 - 07 Future 进阶
目录:一、Future 框架概述 1. 应用实例 2. Futrue 运行逻辑二、源码分析 1. FutureTask 主体结构 2. 任务执行 3. 任务取消 4. 获取结构三、Treiber stack总结一、 Future 框架概述JDK 中的Future 框架实际就是Future 模式的实现 ...
2019-08-19 10:19:32
174
原创 Java/JUC进阶/Java 并发 - 06 AbstractQueuedSynchronizer 进阶
https://blog.youkuaiyun.com/wszhongguolujun/article/details/98638612目录:一、AQS 结构概述 1. Node 结构 2. AQS运行逻辑 3.入队二、独占模式 1. 应用 2. 获取锁 3. 释放锁三、共享模式 1.应用 ...
2019-08-17 09:02:10
133
原创 Java/JUC进阶/Java 并发 - 05 CLH、MCS 队列锁简介
一、自旋锁简介通常情况下解决多线程共享资源逻辑一致性问题有两种方式:1. 互斥锁: 当发现资源被占用的时候,会阻塞自己直到资源解除占用,然后再次尝试获取2. 自旋锁: 当发现占用时,一直尝试获取锁(线程没有被挂起的过程,也就没有线程调度切换的消耗);对于这两种方式没有优劣之分,只有是否适合当前的场景。但是如果竞争非常激烈的时候,使用自旋锁就会产生一些额外的问题:可能导致一些...
2019-08-06 20:53:51
219
原创 Java/大数据/人工智能AI 技术汇总
API网关Spring Cloud GatewayZuulKongNetflix API服务调用DubboMotanRibbonSpring Cloud消息队列ActiveMQRabbitMQZeroMQKafkaRocketMQ作业调度Elastic Job LiteElactic Job CloudQuartzXXL-...
2019-08-06 14:39:09
745
原创 Java/JUC进阶/Java 并发 - 04 ThreadLocal
本文主要结合源码讲述ThreadLocal 的使用场景和内部结构,以及ThreadLocalMap 的内部结构。一、使用场景通常情况下避免多线程问题的三种方法不使用共享状态变量 状态变量为不可变的 访问共享变量的使用同步而ThreadLocal 则是通过每个线程独享状态变量的方式,即不使用共享状态变量,来消除多线程的问题:package com.spring.test;...
2019-05-20 09:01:17
183
原创 SpringCloud系列之Eureak服务注册(一)
从今天开始陆续分享一下springcloud的相关知识,一方面在分享的同时,也是为了知识的储备,今天要介绍的springcloud的服务治理组件-eureka,这个组件很基础但却非常重要,因为如果没有它的话基本上也就啥都玩不了(不是说少了eukrea啥都玩不了,因为服务治理的组件有很多,比如consul,zookeeper等)我强调的是在springcloud的组件中,必不可少的组件是服务治理相关...
2019-05-14 20:17:32
368
转载 Spring Cloud系列之基本使用汇总
当前微服务非常的火,实现它的框架,一般会选择springcloud,dubbo,motan,主流话基本上会选择前两个,最后一个用的比较少,因为springcloud是基于spring的 功能非常强大也比较稳定,主要是有spring这个强大的组织在后面,dubbo是基于阿里巴巴的,当然新版的dubbo会进行全方面的升级,据说功能可以和springcloud想媲美,关于dubbo之前有专门的文章分析过...
2019-05-14 20:16:37
151
原创 Java/JUC进阶/Java 并发 - 03 十五种锁
锁分类1. 公平锁/ 非公平锁2. 可重入锁/ 不可重入锁3. 独享锁/ 共享锁4. 互斥锁/ 读写锁5. 乐观锁/ 悲观锁6. 分段锁7. 偏向锁/ 轻量级锁/ 重量级锁8. 自旋锁名词解释公平锁公平锁是指多个线程按照申请的顺序来获取锁非公平锁非公平锁是指多线程获取锁的顺序并不是按照申请的顺序,有可能后申请的线程比先申请的线程优先获取锁。有可...
2019-05-14 19:50:17
211
原创 Idea+lua 开发环境搭建(一)
Idea 是比较流行的开发工具,功能强大,那么如何来开发lua项目,下面进入实战。软件准备1. idea 文件大自己下载2. IntelliJ-EmmyLua-1.2.6-IDEA172 EmmyLua 是一款基于IntelliJ IDEA的Lua插件,拥有强大的代码提示以及调试功能,开源免费3. LuaForWindows_v5.1.4-35.exeLuaForWindows是...
2019-05-14 10:14:26
15803
8
原创 Java/JUC进阶/Java 并发 - 02 Thread
1. 线程概述对于Java 中的线程主要是依赖于系统的API 的实现, 这一点可以从 java.lang.Thread 源码中关键的方法都是 native 方法看出,亦可以直接查看OpenJDK 源码看出来; 对于JDK8 而言, window 和 linux 版使用的都是 1 : 1 线程模型, 即系统内核线程和轻量级进程的比是 1 : 1内核线程(Kernel-Level Thre...
2019-05-12 21:54:57
141
原创 分布式 - 统一配置中心 - 02 Disconf 安装
安装Disconf需要的环境需要安装Nginx、Tomcat、Zookeeper、Redis和MySQL。Nginx:处理静态资源请求、动态请求转发到TomcatTomcat:处理Nginx的请求Zookeeper:管理Disconf配置信息,配置变更通过zk通知Redis:用户session管理MySQL:应用管理、用户管理、角色管理、环境管理、配置持久化...
2019-05-11 13:24:59
625
原创 分布式 - 统一配置中心 - 01 Disconf 介绍
分布式配置管理平台Disconf1.1. 摘要为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分布式配置管理解决方案(简称为disconf[4],下同)。首先,实现了同构系统的配置发布统一化,提供了配置服务server,该服务可以对配置进行持久化管理并对外提供restful接口,在此基础上,基于zookeeper实现对配置更改的实时推送,并且,提供了稳定有效的...
2019-05-07 17:16:33
387
原创 JUC - 30 知识汇总脑图
Java 并发体系Java 并发集合CouncurrentHashMap原理重要内部类重要操作-initTable-put-get-扩容-链表转换为红黑树过程-1.7和1.8 区别ConcurrentLinkQueueConcurrentSkipListMap跳表SkipListConcurrentSkipListSetatomic基本类型...
2019-05-07 17:00:57
910
原创 [小枫逐日]Java 并发 - 01 Unsafe
在 JUC 篇章中我们去了解了 JUC 相关的包结构和相关工具类锁等相关的概念,JUC 进阶篇章将深入去讲解相关的Java并发涉及的相关知识,以及涉及到的相关引用。简介Java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作, 为我们提供了访问底层的机制, 这种机制仅供Java 核心类库使用, 而不应该被普通用户使用。所在包package ...
2019-05-07 16:35:03
193
原创 JUC - 29 CompletionService
CompletionService异步获取并行任务执行结果源码分析首先看下构造方法public ExecutorCompletionService(Executor executor) { if (executor == null) throw new NullPointerException(); this.executor = executor;...
2019-05-04 16:33:31
1116
原创 JUC - 28 Phaser (二)
这一部分来分析Phaser关于线程等待的实现。所谓线程等待Phaser的当前phase结束并转到下一个phase的过程。Phaser提供了三个方法:// 不可中断,没有超时的版本public int awaitAdvance(int phase);// 可以中断,没有超时的版本public int awaitAdvanceInterruptibly(int phase);// 可...
2019-05-03 11:31:33
163
原创 JUC - 27 Phaser (一)
Phaser是JDK7新添加的线程同步辅助类,作用同CyclicBarrier,CountDownLatch类似,但是使用起来更加灵活:1. Parties是动态的。2. Phaser支持树状结构,即Phaser可以有一个父Phaser。Phaser的构造函数涉及到两个参数:父Phaser和初始的parties,因此提供了4个构造函数:public Phaser();pu...
2019-05-03 11:31:25
187
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人