自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 通过idea把项目上传到公司git服务器

把git服务器上clone的http地址中的内网ip,替换成公网ip。

2023-08-04 10:38:25 82

原创 用idea跑eclipse项目碰到的问题

修改 $JAVA_HOME/jre/lib/security/java.security 文件,替换securerandom.source=file:/dev/random 为 securerandom.source=file:/dev/urandom。(这个永久的方法,这里面有个问题,就是设置时候实际应该设置为securerandom.source=file:/dev/./urandom,否则不生效)原因是有两个jar包在项目lib目录和tomcat目录下都有,重复了删掉lib下的或者tomcat下的。

2022-09-30 17:45:10 858 1

原创 业务场景——高并发商品库存扣减

4.10万以上,服务单独部署+本地缓存分桶+库存预留,比如单独部署100个服务实例只用于此接口,库存有1万,那么把接口调用策略改为轮巡(保证流量平均),同时每个实例赋值80作为库存,那么此时是这1万的库存分布为:100(实例数)X80(实例本地缓存)+2000(预留库存,防超卖),再异步改库。扣减库存的逻辑,需要依据qps量身定做,设计不足系统奔溃,设计过度徒增业务复杂度还浪费硬件资源。3.1万~10万qps,redis单key压力过大,给redis做分治,即多个key来保存数据。

2022-09-05 17:05:24 401

原创 spring cloud体系知识梳理

1.创建一个普通eurekaClient项目,引入zuul相关依赖。zuul的过滤器应用一般分两类:前置过滤器,后置过滤器。2.启动类添加@EnableZuulProxy注解。3.添加路由配置,核心用法配置参考如图。前置过滤器:限流,鉴权,参数校验/包装。后置过滤器:统计,日志,统一异常。

2022-08-25 16:11:15 133

原创 业务场景——热点数据

热点数据解决思路。

2022-08-25 14:51:35 1041

原创 数据库设计

如果数据被分库分表存储在库A库B两个库中,A,B两个库又各有a,b,c三个表,那么要查一个id=89的数据,路由规则如何?横向分表即将数据分摊到完全一样的N张表中,适用于数据量大场景,减轻单表数据压力。2.时间片划分法,根据创建时间段将数据存放到不同表中,此方法适用于业务上对数据产生时间敏感的场景。即master库支持增删,slave库只读,适用于读压力远大于写压力的场景,如商品的基本信息。数据库扩容(如图,扩容的时候,数据库数量必须成倍扩容)纵向分库即按业务分库,如订单库,商品库等,没啥好说的。

2022-08-24 19:33:29 351

原创 系统架构设计知识梳理--分布式架构

当集群中leader宕机,其他follower选出新leader后,宕机的leader恢复了服务(可能还携带自己的follower回到集群),那此时集群就有两个leader并各自有自己的follower,这种类似一个大脑分裂成两部分的现象叫做脑裂。

2022-08-24 17:45:40 1066

原创 MQ知识梳理

RocketMQ性能高(但比RabbitMQ差),功能多,吞吐量10万级,阿里大量应用,java语言编写适合企业自己搞扩展,适合吞吐量大,技术实力强有自己中间件团队的大中型企业。RabbitMQ性能高,功能多,吞度量万级,有开源活跃的社区,但由于是erLang语言开发,不适合企业自己搞扩展,是目前中小型企业的不二选择。Kafka性能高(但比RabbitMQ差),功能最简单,但吞吐量10万级别,在大数据的实时计算、日志采集等场景已成业界标准,社区活跃度高。

2022-08-19 16:24:20 555

原创 业务场景——限流

适用于统计请求次数是否超出限制,但不对请求做丢弃处理的场景。2.令牌桶算法:典型场景就是车库,入库相当于获取一个令牌,出库相当于释放一个令牌,最大令牌数恒定,该算法也是有限阻塞队列的核心思想(有序版的令牌桶)3.漏斗算法:相当于以一个恒定速率限制出队的令牌桶算法。......

2022-08-05 20:11:51 295

原创 项目咋就起不来

1.springBoot启动报Command line is too long原因是依赖包多,启动参数过长,百度了一堆废话后最终找到可用方法:编辑启动器,修改命令缩短器,除了默认的都可以,差别参考IDEA命令行缩短器助你解决此问题:Command line is too long. - 知乎2.Error creating bean with name ...cannot be cast to java.lang.Class引起这个错误的原因非常多,在上网能查出很多解决版本,我这次.

2022-01-21 10:13:01 290

原创 java集合专题

首先大的集合分为:List,Set,Map三种,其中List与Set是继承自Collection,而Map不是。List与Set的区别:List中的元素有存放顺序,并且可以存放重复元素,检索效率高,插入删除效率低,Set没有存放顺序,而且不可以存放重复元素,后来的元素会把前面重复的元素替换掉,检索效率低,插入删除效率高。(Set存储位置是由它的HashCode码决定的,所以它存储的对象必须有equals()方法,而且Set遍历只能用迭代,因为它没有下标。)ArrayList:ArrayList集合中

2021-09-01 13:45:22 73

原创 常见手撸代码题

1.手写一个阻塞队列概念理解阻塞队列其实也就是队列的一种特殊情况。举个例子来说明一下吧,我们去餐馆吃饭,一个接一个的下单,这时候就是一个普通的队列,万一这家店生意好,餐馆挤满了人,这时候肯定不能把顾客赶出去,于是餐馆就在旁边设置了一个休息等待区。这就是一个阻塞队列了。特点(1)当阻塞队列为空时,从队列中获取元素的操作将会被阻塞,就好比餐馆休息区没人了,此时不能接纳新的顾客了。换句话,肚子为空的时候也没东西吃。(2)当阻塞队列满了,往队列添加元素的操作将会被阻塞,好比餐馆的休息区也挤满了,

2021-08-20 01:32:55 152

原创 数据结构基础知识

数组:有上界和下界,数组的元素在上下界内是连续的,随机访问速度快。单链表:节点的链接方向是单向的;相对于数组来说,单链表的的随机访问速度较慢,但是单链表删除/添加数据的效率很高。双向链表:和单链表一样,双链表也是由节点组成,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。栈(stack):是一种线性存储结构,它有以下几个特点:(1) 栈中数据是按照"后进先出(LIFO, Last In First Ou

2021-08-20 01:26:13 90

原创 mybatis知识梳理

1.mybatis执行过程第一步:通过Resources加载配置好的mybatis.xml配置文件Resources是ibatis.io包下面的类,也就是一个io流,用于读写文件,通过getResourceAsStream把xml文件加载进来,把配置文件解析为一个流。第二步:获取SqlSessionFactory第三步:获取sqlSession第四步:jdk动态代理生成mapper接口的代理对象总结一下:mybatis运行时要先通过resources把核心配置文件也就是mybat

2021-08-17 17:54:13 254

原创 spring知识梳理

1.spring bean生命周期(1)实例化 Instantiation(2)属性赋值 Populate(3)初始化 Initialization(4)销毁 Destruction具体的执行步骤是:1.Bean容器找到配置文件中Spring Bean的定义。2.Bean容器利用Java Reflection API创建一个Bean的实例。3.如果涉及到一些属性值,利用set()方法设置一些属性值。4.如果Bean实现了BeanNameAware接口,调用setBeanName

2021-08-16 14:28:03 89

原创 java并发编程知识梳理

1.如何实现处理线程的返回值(1)主线程等待法(2)join()(3)通过Callable接口实现,通过FutureTask或线程池获取

2021-07-24 16:04:59 396

原创 jvm知识梳理

1.java虚拟机的组成java虚拟机主要由四部分组成(1)ClassLoader:按特定格式加载class文件到内存中(2)runtime data area:jvm内存空间模型(3)execution engine:命令解析器(4)native interface:融合不同开发语言的原生库供java使用...

2021-07-11 21:51:35 877

原创 redis知识梳理

1.众多no-sql数据库中redis的优势(1)数据类型丰富(2)支持分片和主从同步(3)支持持久化2.多路I/O复用模型的理解epoll,kqueue,evport,select都是redis内置的I/O复用函数,select是最基础的方法,时间复杂度是O(n),其他的复用函数效率高,但只能在特定条件使用,redis会根据系统环境选择最合适的复用函数执行3.redis的常用数据类型(1)string 字符串,最常用的数据类型(2)list 列表,里面元素是string的

2021-07-11 16:30:53 80

原创 反射面试题

获取类的class对象的三种方法1.通过Object对象的getClass();方法2.通过类的静态属性.class获取3.通过Class类的敞亮方法

2021-07-11 15:38:48 50

原创 数据库知识梳理

1.为什么要使用索引避免全表扫描,升查询效率2.什么样的信息能成为索引主键,唯一键,普通键3.索引的数据结构二叉树,B树,B+树,hash4.密集索引和稀疏索引的区别这两种索引都要通过折半查找或者叫做二分查找来确定数据位置,不同的是密集索引,只需要通过二分查找到搜索值=索引的索引记录就能确定准确的数据位置,而稀疏索引则需要先定位到搜索值>索引值的最小的那个,然后在通过起始位置去定位具体的偏移量。这是两种不同的索引实现,一种建立了索引值与数据位置的1:1的关系,一种建立了索引

2021-07-10 23:09:35 50

原创 泛型知识和面试题

泛型中约定的字母含义T:类型,通常定义泛型类都用TE:元素,集合类的泛型用E,表示集合中元素类型N:数量K:键值对keyV:键值对value关于泛型的面试题https://blog.csdn.net/weixin_30326515/article/details/98137232...

2021-07-04 12:59:59 40

原创 maven

dependency的四大要素groupId:jar包属于哪个group可以理解成是java类的packageartifactId:jar包的名字verson:版本号scope:这个dependency的适用范围这里又几个值的区别provided表示程序在测试,运行,编译时都会引用这个jar包,打war包时不会打进去complie也是程序在测试,运行,编译时都会引用这个jar包,打war包时也会打进去test表示只在测试时才会引用这个jar包...

2021-06-29 18:20:40 36

原创 学习spring源码的磕磕绊绊

首先是下载源码,根大多数教程一样,这里参考的https://blog.csdn.net/baomw/article/details/83956300?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.baidujs&depth_1-utm_source=distribute.pc_relevant_t0.none-task-bl

2021-06-29 17:59:20 289

原创 优质网站资源搬运

springMVC教程http://elf8848.iteye.com/blog/875830/http://www.iteye.com/blogs/subjects/springmvc-explore

2021-06-15 09:40:41 1068

空空如也

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

TA关注的人

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