自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wjl31802的博客

think and code

  • 博客(260)
  • 资源 (1)
  • 收藏
  • 关注

原创 java复习快速导航

1. java基础java基础必背知识点java基础加强知识点javaweb1 (mysql、HTML、js、xml)javaweb2 (tomcat、cookie、el、filter)javaweb3 (jquery、ajax、json、redis)maven2. java提高redisdubbo并发JUC阻塞队列、线程池NIOnetty数据库rabbi............

2019-06-11 09:20:23 32326 63

原创 设计模式重新整理

Single Responsibility Principle, SRP,一个类只负责一个功能领域的相应职责。也就是我们常说的“高内聚,低耦合”需要提供给client这些方法:login抽象方法、register抽象方法、checkUserExists抽象方法和第三方账号登录的login3rd抽象方法// 桥梁if (!");用“抽象和实现”两种类结构的设计换来了代码的高扩展性,换来了核心实现对Client端的“最少知识”原则,换来了耦合度的降低,就好比我们用空间换来了执行速度。

2024-09-13 06:48:47 1893

原创 高阶面试-concurrentHashMap的整理

算不上死磕,里面太痛苦了,现在很多位移等操作还看不懂,只是先理清大致思路,面试用。

2024-08-19 08:03:43 505

原创 设计模式实战-设计模式01

未引入refresh_token和Token过期时间的原因是:第三方账号登录几乎为一次性的请求,启用refresh_token逻辑和Token过期逻辑需要根据项目的真实访问情况而定,因此仅仅提供了核心的交互过程。

2024-08-10 16:10:31 958

原创 高阶面试-其他算法

最近面美团,结果栽到了算法上,好不甘心,需要把各个大厂近半年的全部刷N遍,保证在O(1)的时间内作出来,希望接下来的一两周不再害怕常规的算法题。

2024-08-08 05:50:10 889

原创 系统设计面试题

比较开放,需要灵活应对,列出基本的一些思路。

2024-08-03 13:34:42 1015

原创 算法剩余部分

在准备面试的过程中发现之前漏掉了一些算法的整理,在本文中慢慢补齐。

2024-07-20 22:51:57 271

原创 高阶面试-限流熔断

高并发高可用必须掌握这块采用sentinel。

2024-07-19 08:25:15 771

原创 高阶面试-hw算法整理

坚持最近一个星期把每道题搞熟悉。

2024-07-19 08:16:25 429

原创 高阶面试-mongodb

采用opLog同步数据,这里的oplog是一个特殊的固定集合,当主节点上的一个写操作完成后,会向oplog集合写入一条对应的日志,而备节点则通过这个oplog不断拉取到新的日志,在本地进行回放以达到数据同步的目的。一般100ms一次。checkpoint检查点机制,类似RDB,建立checkpoint的时候,会在内存建立所有数据的一致性快照,是通过MVCC保证,然后持久化快照,默认1min一次,成功后内存中的修改才会真正保存。真实的实现,做了优化,每次获取一批数据放到内存。缺少数据压缩,磁盘利用率低。

2024-07-13 11:17:29 1038

原创 高阶面试-dubbo的学习

在原始扩展点实现前后插入其他逻辑,实现AOP功能。也是在createExtension方法里面,在IOC之后,做AOP,判断是否有wrapperClass,有的话,遍历,将当前实例包装到wrapper中,通过构造注入,在wrapper中注入依赖,实现增强,还能层层套,如果多个wrapper,由于instance已经变成第一个wrapper包装后的instance,会在外层再包装。参考java,dubbo也实现自己的,并进行增强,java的只能循环遍历,dubbo搞的是k=v的形式,可以按需查找。

2024-07-09 08:29:07 685

原创 高阶面试-spring的部分

spring的更屌,第三级缓存不仅仅是存入了实例化的对象,而是存入了一个匿名类ObjectFactory,getEarlyBeanReference函数的实现中会调用BeanPostProcessor执行用户自定义的逻辑。首先是加一层缓存,key为beanName,value是对象实例,由于实例化和初始化分开的,A实例化后会放入缓存,A polulateBean() 依赖B,然后B实例化、填充属性的时候就从缓存中获取到A,解决了循环依赖。传统的编程模式中,应用程序代码控制着依赖对象的创建和管理。

2024-07-01 08:17:27 1183

原创 高阶面试-netty部分

Netty 是一个基于 Java 的异步事件驱动的网络应用框架,提供了用于快速开发高性能、高可扩展性的协议服务器和客户端的工具。

2024-07-01 07:49:40 1130

原创 高阶面试-写缓存

写缓存的思路是后台服务接收到用户请求时,如果请求校验没问题,数据并不会直接落库,而是先存储在缓存层中,缓存层中写请求达到一定数量时再进行批量落库。同步:写请求提交数据时,写请求的线程被堵塞或者等待,待批量落库完成后再发送信号给写请求的线程,这个线程获得落库完成的信号后,返回预约成功提示给用户。1)每收集一次写请求,就插入预约数据到缓存中,再判断缓存中预约的总数是否达到一定数量,达到后直接触发批量落库。用户体验优化:预约成功,进入预约详情页,页面定时调接口查批量落库状态,成功弹出成功标志,跳转下一页。

2024-07-01 07:33:23 658

原创 高阶面试-存储系统的设计

分类块存储 block storage文件存储 file storage对象存储 object storage位于最底层,块,是物理存储设备上数据存储的最小单位。硬盘(Hard Disk Drive,HDD)就属于块存储。常见的还有固态硬盘(SSD)、存储区域网络(SAN),操作系统和应用程序可以通过块级接口来访问这些数据。主要应用程序:数据库。生产上,除了磁盘挂载,要么就是用云厂商提供的块存储,如AWS EBS,要么就是Ceph这种文件存储系统的块存储。

2024-07-01 07:32:00 1146

原创 高阶面试-hbase的整理

Region Server 是 HBase 最核心的模块,包含多个 Region,负责维护 Master 分配给它的 Region 集合,并处理对这些 Region 的读写操作,Client 直接与 Region Server 连接,并经过通信获取 HBase 中的数据。ColumnFamily一开始就要定义好,类似于关系型数据库里面的列,属于schema,每个ColumnFamily可以灵活增加ColumnQualifier,ColumnQualifier不需要在创建表的时候定义。

2024-07-01 07:23:54 1265

原创 高阶面试-秒杀系统的设计

查缓存-落库-删对应缓存数据,落库用事务包裹,失败回滚,其他不用处理,落库需要支持幂等性,根据手机号作为唯一索引。订单未及时付款而被取消需要把数据库和redis的库存加回去。特价商品如茅台,在8月1日22点10分0秒开始秒杀。浏览器-负载均衡-网关-后台服务器-缓存-数据库。后台服务:保证特价商品不超卖,保证订单的准确性。平台用户量:几千万,预计几十万用户感兴趣。其实设计方案就是不断过滤请求的过程。临时性的活动,不要太大技术改动。为防爬虫,下单页面做两层防护。服务间触发通知需要使用。

2024-07-01 07:20:13 476

原创 《程序员超强大脑》读书笔记

整理一些对自己有启发和帮助的点,与君共享,强烈推荐这本书,值得从新手到中高级程序员共读。

2023-12-09 17:42:23 329

原创 vs code小工具

新公司主流语言为js及其框架eggjs,需要尽快上手,而核心编辑器vscode就是必备技能,对比IDEA,通过demo项目快速了解开发中常用功能对应的快捷键等,保证快速上手。

2023-05-21 11:52:29 871

原创 各类中间件的docker快速安装

docker-compose 快速搭建各类中间件

2022-08-07 23:26:10 820

原创 jvm终极篇

jvm的学习,数据从字节码到jvm流转的整个过程

2022-06-14 10:57:42 526

原创 打开IDEA报错及解决方案

报错内容Internal error. Please refer to https://jb.gg/ide/critical-startup-errorscom.intellij.ide.plugins.StartupAbortedException: Cannot start app at com.intellij.idea.StartupUtil.lambda$start$15(StartupUtil.java:263) at java.base/java.util.concurr

2022-05-23 19:42:22 4767 5

原创 mysql扩容方案及实践

1. 扩容问题项目初期,部署了数据库A及其从机A0,B及其从节点B0,为将数据平均分配,在service层,使用uid%2取模分片(可采用sharding JDBC),将数据分配到对应的数据库。如下图随着用户量的增大,用户产生的数据量最终达到数据库的最佳存储容量,需要进行扩容,否则CRUD操作会变慢,影响服务的响应速度。如何平滑的扩容,保证业务的连续性和高可用,对业务影响最小?2. 解决方案先把A0和B0升级为新的主库节点,如此,由2个分库变为4个分库。同时在上层的分片配置,做好映射,规则如下

2022-05-20 11:52:10 1870

原创 skywalking学习

分布式系统越来越复杂,各个组件如微服务、消息收发、分布式数据库、分布式缓存、分布式对象存储、跨域调用,共同组成分布式网络。问题:一个请求经过这些服务后其中出现一个调用失败的问题,如何快速定位问题发生的地方如何计算每个节点的访问流量流量波动的时候,增加哪些节点集群服务需要APM。1.1 微服务系统监控三要素logging日志 就是记录系统行为的离散事件。metrics 是 CPU、内存、某个接口的QPS、TPS、RT等tracing 跟踪 记录单个请求的处理流程,包括三部分:数据采

2022-05-08 16:15:07 1215

原创 zookeeper学习

文章目录目标zk的启动流程1.1 启动入口1.2 单机启动主流程1.3 zk网络通信1.3.1 NIOServerCnxnFactory2. session管理机制3. zk集群3.1 启动流程3.2 leader选举目标能基于Maven导入最新版Zookeeper源码能说出Zookeeper单机启动流程理解Zookeeper默认通信中4个线程的作用掌握Zookeeper业务处理源码处理流程能够在Zookeeper源码中Debug测试通信过程掌握Zookeeper中Session的管理机制能

2022-05-08 16:14:38 895

原创 nginx学习

根据陶辉老师的《nginx核心知识100讲》整理的学习笔记,方便温故知新1. nginx介绍由大神Igor开源的高性能的HTTP和反向代理web服务器,官网 ,竞品apache。诞生背景世纪初互联网快速普及,数据量爆炸式增长,相应的对硬件要求更高摩尔定律在单核CPU上失效,单核CPU性能提升有限,开始多核CPU。但大量的软件并未做好针对多核CPU的优化,如apacheapache较为低效,一个连接对应一个进程,面对上百万个请求时无法开数百万个进程进行切换,而nginx异步请求,抗并发,快速.

2022-05-08 16:12:48 945

原创 mongodb提高篇

聚合查询

2022-05-08 16:11:48 454

原创 xshell报错的处理

电脑重装之后,xshell使用的时候有报错,解决浪费了一个多小时,记录下,方便以后回顾问题1报错:xshell SSh连接失败,Socket error Event: 32 Error: 10053解决:参考官网的解决方法即可解决:https://netsarang.atlassian.net/wiki/spaces/ENSUP/pages/1555333366/Why+does+my+session+disconnect+after+a+certain+period+of+idle+time?

2022-04-20 16:08:47 2074

原创 数据结构与算法相关题解

根据六脉神剑刷题法,记录自己的刷题过程,方便回溯leetcode重新刷题文章目录数组[1. 两数之和](https://leetcode-cn.com/problems/two-sum/)[167. 两数之和 II - 输入有序数组](https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/)链表[21. 合并两个有序链表](https://leetcode-cn.com/problems/merge-two-sorted-l.

2022-04-20 09:34:01 441

原创 TiDB学习

#博学谷IT学习技术支持#TiDB作为优秀的newsql数据库,集传统sql和nosql的优点于一身,而且国人开发,文档超级详细,官方免费视频教程,类似spring之于java,希望都能学起来文章目录1. 介绍1.1 简介1.2 诞生背景1.2.1 传统数据库的问题1.2.2 nosql的问题优点缺点1.2.3 newsql的特性1.3 OLTP&OLAP1.3.1 OLTP(联机事务处理)1.3.2 OLAP(联机分析处理)1.3.3 特性对比1.3.4 设计角度区别1.4 TIDB核心特

2022-04-08 20:46:39 240

原创 picgo图片上传踩坑

之前用的picgo好好的,最近突然有问题了问题typora上上传测试失败,报错 [上传操作]异常:Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 18765看了很多,有的说代理问题,系统环境变量有http_proxy的配置,但我的没有。各种尝试,包括更改gitee的仓库、token、卸载重新安装picgo,都不行。重新安装后,上传测试报错[上传操作]异常:403 - "<ht.

2022-04-08 08:14:00 1834

原创 mongodb基础篇

文章目录MongoDB入门1. 基础概念2. 连接mongodb3. 数据库4. 集合5. 文档1. 插入文档2. 更新文档3. 删除文档4. 查询文档6. 用户1. 创建用户2. 认证登录3. 查询用户4. 删除用户5. 修改用户6. 修改密码2. mongodb集群1. 概念2. 副本集部署MongoDB入门1. 基础概念在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:SQL术语/概念MongoDB术语/概念解释/说明

2022-03-31 23:42:48 1110

原创 机械键盘win键和alt键反了

问题前几天买的京东京造K8双模键盘,用着挺好,今天用着发现机械键盘win键和alt键反了,百度了半天也没解决解决问客服,原来是键盘左侧可以切换win/mac,不知道怎么切换到mac了,切回来就好了,希望能帮助到需要的人...

2022-03-31 10:27:27 16800 4

原创 dubbo学习

dubbo高阶1. 不同配置覆盖规则方法级别优先,接口级次之,全局配置再次之;级别一样,则消费方优先,提供方次之2. 属性配置优先级优先级规则从高到低:JVM -D参数 -Ddubbo.protocol.port=20881xml配置(application.yml/application.properties)重写dubbo.properties中参数dubbo: protocol: name: dubbo # 通讯协议 port: 20882 # dubbo服.

2022-02-13 07:47:30 564

原创 jenkins学习和实践

参考电商架构课程文章目录Jenkins主从集群搭建环境说明1. docker私有仓库安装docker环境安装docker私有仓库安装jenkins用户2. 安装master基础环境准备(root用户执行命令)安装JDK其他的安装jenkins用户下载安装maven修改docker配置修改默认镜像仓库地址Jenkins主从集群搭建jenkins支持主从模式,这将会把构建任务分发到多个从节点去执行,这样就可以支撑起多个项目的大量构建任务,提升构建效率。同时,你可以提供多种环境(如:开发环境、生产环境).

2022-02-09 21:59:36 376 2

原创 kafka学习

文章目录1. kafka概念2. 安装部署单节点安装java环境zookeeper安装kafka的安装kafka测试消费和生产创建主题展示所有主题查看主题详情消费端订阅消息生产端发送消息集群搭建zk安装kafka集群搭建验证:3. 生产者1. 流程消息发送流程发送类型序列化器分区器拦截器interceptor发送原理1. kafka概念和rocketmq类似,都有broker,不同的是,rocketmq通过nameserver进行调度,而kafka依赖zookeeper进行调度。此外,kafka采用

2021-11-17 20:47:13 1974 1

原创 各类项目汇总

酷我声浪计划入驻成为TME主播,选择个人主播,注册后,信息中,主播信息、实名信息、结算信息填写完整。上传第一条音频后,1-3个工作日审核完毕后,在右侧,添加官方客服,报名参加声浪计划。需要先把创作者学院的内容看一遍,课程比较少,可参考喜马拉雅入门课程博客中心创作栏,最好选择重点扶持的领域。写不出的可参考知乎、头条、公众号和一些情感网站等图文平台。制作成音频上传即可。内容时长不要超过5min,3min最好,完播率较高。录制:录音即可,或者文字转语音,微信-配音家添加配音,再前面留白2秒,即可上

2021-11-14 16:23:40 475

原创 打新指南

如何挑选优质新债在集思录上,看日历具体分析:看三部分行业,是否资本涌入的朝阳行业,看上市公司股价走势,比巅峰时跌了60-70%,估计经营有问题溢价率 如果-20%、-30%,溢价率越低越好,大于0,如果40-50%,大概率亏钱债券评级 从高到低,AAA、AA+、AA、AA-、A+如何购买国金佣金宝app等,交易–申购即可申购金额顶格申购,最大数值,提高中签概率,中签率一般20%...

2021-11-14 16:03:25 12720

原创 elasticsearch学习和实践01

es学习笔记记录整理,不定期更新文章目录1. Elastic Stack介绍2. Elasticsearch2.1 介绍2.2 安装2.2.1 版本说明2.2.2 单机版安装2.2.3 elasticsearch-head2.3 基本概念2.4 RESTful API2.4.1 创建非结构化索引2.4.2 插入数据2.4.3 更新数据2.4.4 删除数据2.4.5 搜索数据根据id搜索数据搜索全部数据关键字搜索数据2.4.6 DSL搜索实现:查询年龄大于30岁的男性用户全文检索2.4.7 高亮显示2..

2021-07-12 16:32:17 495 1

原创 win10 git bash的高效使用

文章目录tip1:删除文件和文件夹tip2: 查看和编辑文件tip1:删除文件和文件夹如果在文件管理器中删除的话,会进入回收站,且效率很低,删文件耗时长,可将git bash集成到右键快捷键,在目录下调用,直接rm -rf 文件/文件夹即可。tip2: 查看和编辑文件由于windows大部分文件编码格式都不是utf-8的,查看和更改很麻烦,可将notepad++集成到git bash中,参考https://www.jianshu.com/p/7bfe6810d13f,具体如下:在gitbash目

2021-07-01 11:12:17 393

Git课堂笔记思维导图

git的课堂笔记导图资源,具体模块分为基本操作、分支管理和github的使用

2018-12-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除