
课程笔记
多线程与高并发、JVM调优、Redis、Zookeeper、MySQL调优等
寒泉Hq
当你试图解决一个你不理解的问题时,复杂化就产生了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SPU解析优化:模块设计与实现,SKU优化
SPU解析优化不兼容,但是可以互转业务转架构难,架构转业务容易SPU比如我要查“黑鸭”关键字,条件是score>0.2,我要你返回它的id,我们要实现它。你需要设计一个倒排索引就可以了。设计json文件TextReader: 读取 json,解析json,提取关键字KeywordStore: 存储关键字service: 对接 service 接口key 是可以重复的,如果 key 不能重复,要倒排索引有何用…SpuBean.javaKeyWordStore.jav原创 2020-07-12 21:55:35 · 68824 阅读 · 1 评论 -
HotSpot源码(二):Java与C语言对比
我们知道如果用C/C++写程序,从源代码到可执行程序需要经历编译,链接两个步骤。但是用Java语言写程序则不同,你只需要将你的源代码编译成字节码就可以了,字节代码通过Java虚机来运行。要概括上面两种语言的这一不同之处,我们可以说:Java是通过Java解释来执行的,C/C++是通过编译来执行的。C语言C语言没有常量池,它的编译器在编译的时候是从上到下顺序展开的,所以要提前声明函数,它的动态链接是基于符号的动态链接。Java而Java会将定义的函数放在常量池中,它只是将java代码翻译成字节码,如.原创 2020-07-06 00:13:43 · 69634 阅读 · 0 评论 -
HotSpot源码(一):Docker与虚拟机的区别,class字节码解析,linux内核源码下载地址,Yacc与Lex快速入门
Docker是虚拟机吗?Docker是用来隔离的,使用的是隔离的namespace,使用OS提供的接口进行应用程序之间的资源隔离,不是虚拟机。再加上它自己特殊的文件系统,一层一层叠加。他只不过是一个容器,不是虚拟化系统。虚拟机可以为所欲为(可以装win,装unix内核的os,装linux内核的os),而docker只能跑在linux的内核上,共享的是同一个内核。HotSpot需要实现哪些功能?内存管理 线程管理 类加载器 即时编译 垃圾回收 设计规范 监控 接口编译和翻译的区别语言之间的转换原创 2020-07-04 17:39:41 · 69185 阅读 · 0 评论 -
响应式web(四):使用Netty作为web容器,基于注解的WebFlux阻塞式与响应式实现
目录使用 WebFlux,针对IO密集度比较高的系统,性能会有提升。使用 Netty 作为 web 容器:注释掉spring-boot-starter-web,启动就默认用的 netty 而不是 tomcat 了基于注解的 WebFlux 阻塞式与响应式实现WebFlux + SSE 服务器推:下面的案例3WebFlux 中的 ServerHttpRequest 与 SpringMVC 的区别原创 2020-07-17 22:26:54 · 74054 阅读 · 2 评论 -
响应式web(三):服务当中的三种耦合,流式计算,RXJava2,Flux,Mono
响应式 Web 第三节服务调用中的三种耦合响应式流规范与接口响应式流中的流量控制Web中的响应式与请求/响应式的区别流式处理中的Source/Sink模型RXJava2 观察者模式同步与异步实现Project Reactor 中的 Flux、MonoFlux、Mono 同步静态创建与异步动态创建WebFlux服务当中的耦合在调用服务的时候,总会有耦合,基于rmi的1、技术耦合:dubbo,典型的基于rpc的远程服务调用,两边都是java才能调用。2、空间耦合:两台机器的依赖原创 2020-07-11 00:38:04 · 69067 阅读 · 0 评论 -
响应式web(二):微服务内部中的响应式、响应式和阻塞式、背压的概念、响应式web应用场景
上节回顾同步与异步命令式编程与响应式编程消息驱动观察者模式Tomcat的NIO异步网络io服务器推技术Servlet3.0与3.1本节内容响应式系统主流框架概览akka使用Scala语言开发,后期支持Java,但是在Java社区并不如从前受欢迎Vert.xVert.x是Eclipse发行的开源项目,设计初衷是作为Node.js在Java虚拟机上的替代方法,支持非阻塞和事件驱动,在近几年开始受大家关注Project ReactorSpring5中默认引入的响应式编原创 2020-07-03 22:48:44 · 72029 阅读 · 2 评论 -
响应式web(一):什么是响应式web,异步调用,callback的本质,servlet3的异步
Reactive同步与异步传统的web模型 “命令式编程”:阻塞式模型,一个请求发过来,也许你会开启新的线程,但最后需要等待完成所有操作之后,才能返回response。一个一个的操作组成了整个业务线,操作之间有先后顺序。所有具有先后顺序的操作,都在同一个线程内。微服务:开启一个新的线程A去请求别的服务,A线程要等待业务结果返回之后,才能继续执行下面的业务逻辑。这是阻塞的。Tomcat的NIO异步网络网络连接的线程池,作用是和客户端建立连接:BIO,NIO;你也可以用多路复用器但是到了To原创 2020-07-01 22:35:36 · 69013 阅读 · 0 评论 -
Java序列化 - 分析不同序列化方式的优劣
1.序列化简介1.1 定义序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据1.2 序列化的目的通过序列化以字节流的形式使对象在网络中进行传递和接收永久性保存对象,保存对象的字节序列到本地文件或者数据库中通过序列化在进程间传递对象深拷贝对象跨语言传递数据1.3 序列化常见的方式是否跨语言:生成的中间文件二进制流不同:2.常见的序列化方式特点2.1 JDK参考脑图2.2 JSONJackso原创 2020-06-21 10:14:27 · 68928 阅读 · 0 评论 -
带你理清 Java 混乱的日志体系 - log4j、logback、log4j2、jcl、SLFJ 究竟是啥关系?
Java混乱的日志体系Java日志体系概述常用的日志组成方案与应用场景目前最优的方案:slf4j的异步模式+log4j2,性能好例如,springboot+mybatis+slf4j+log4j2jcl本来就是抽象的,slf4j能桥接jcl,是为了能够适配。日志切换,适配器JCLslf4j+jcl 或其它序列化...原创 2020-06-21 01:21:09 · 70150 阅读 · 0 评论 -
左神算法课笔记(二):链表、栈和队列、递归Master公式、哈希表、有序表
单向链表双向链表单链表、双链表最简单的面试题1、单链表和双链表如何反转package class02;import java.util.ArrayList;public class Code01_ReverseList { public static class Node { public int value; public Node next; public Node(int data) { value = data; } } public stat原创 2020-06-20 19:16:15 · 68960 阅读 · 0 评论 -
左神算法课笔记(一):时间复杂度、排序、对数器、二分法、异或运算
我们常说,程序=算法+数据结构。结果光搞框架去了,有点说不过去~时间复杂度常数时间的操作:如果一个操作的执行时间不以具体样本为转移,每次执行时间都是固定时间。称这样的操作为常数时间操作。数组的寻址操作就是固定时间操作,与数据量无关。>>带符号右移>>>不带符号右移常数时间的操作包括:非常数时间操作包括:链表获取i位置的元素选择排序在0~n-1位置中找到最小值,和0位置的数交换找1~n-1位置最小值,和1位置的数交换…直到n-1~n-1,不用.原创 2020-06-18 18:29:25 · 68340 阅读 · 0 评论 -
坦克大战 - 设计模式、BIO、NIO、AIO、Netty
1、策略模式有时候你想发射单排子弹,有时候你想发射双排子弹。当你想有不同的子弹发射方式时,应该怎么做才能在尽可能少的修改代码的前提下,快速完成这些子弹发射策略的切换呢?办法就是,你写一个Interface,让不同的策略去实现这个Interface。你去通过配置文件,选择你想要的子弹发射方式。在子弹发射逻辑中,通过反射获取策略对应的类,然后直接调用接口的实现方法。2、责任链模式责任链模式,类似于 Servlet 的 Filter在坦克大战游戏中,你怎么判断两个游戏物体的碰撞?通过 if -原创 2020-06-19 17:37:17 · 67339 阅读 · 0 评论 -
网约车项目(一):项目简介
什么是项目在有限的资源下创造一个服务项目过程启动可行性分析,立项(项目背景、为什么做、HR:作为技术人员你对项目有什么更长远的考虑,做技术的也要有产品的思维)计划阶段进度安排,资源计划,成本估计,质量保证计划,风险,实施“如果10号要完成,完不成怎么办?- 1加班 - 2加人 - 3功能排优先级,重要的先做保证能用,后面再迭代”实施控制阶段开发,测试,运维,部署等等收尾验收,产品验收/甲方验收/经理验收项目的产品的区别管理方式?矩阵式(开发1组,2组…,产品1组,2组…,项目来原创 2020-06-15 18:02:28 · 69941 阅读 · 2 评论 -
分布式ID业界解决方案
分布式ID分布式ID 唯一身份标识类比身份证,引出分布式ID:AtomicInteger / AtomicLong 线程对外看是唯一的资源征用的场景如何保证唯一:锁乐观锁 / 悲观锁解决目标缓存+锁细粒度化+无锁,保证全局唯一即可CAS也是一个悲观锁下面方法基本都是互相借鉴的基于UUID生成唯一ID逻辑主键、物理主键:id是int自增主键,uuid是普通的varchar列名字空间:国家-地区不能使用IP代替MAC(局域网可以,广域网不行:NAT)可以使用NAT转换原创 2020-06-13 11:46:00 · 64876 阅读 · 0 评论