自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 你们的再哥面试复习-分布式

1.redis常用数据类型: String 最常用 List Set 可以全局去重 布隆过滤器 防止缓存击穿部署方式: 单机部署 哨兵模式 一个主节点和多个从节点,主节点用来写,从节点用来读,主节点会同步数据给从节点,每个节点防止单点再使用备用服务器 缺点就是每个服务器的数据一样,很浪费内存空间,并且有脑裂问题,就是主节点因为网络等原因连接不上,认为他挂了然后再选举一个,然后原来的又恢复了,导致数据不一致。 集群模式 集...

2021-05-11 17:36:18 153

原创 你们的再哥面试复习-MYSQL

1.索引2.锁2.调优3.主从分离平常我们的数据库3.分表

2021-05-10 18:17:31 107

原创 你们的再哥面试复习-JAVA基础

1.多线程2.锁/sychonize 、lock3.线程池2.网络编程3.io4.hashMap / concurrenthashmap5.JVM6.并发包常用

2021-05-10 17:19:34 114

原创 ArrayList源码解析

在面试的时候都会问集合ArrayList和linkList,然后你说ArrayList查询快,增删慢,然后面试官问为什么?。。。。。。你可以回答:ArrayList是基于数组的,是有下标的,查询的时候指定下标,一下就查到了。而增删慢的原因是因为增加和删除的时候它要创建一个新的数组并且扩容或者删除前移,然后复制过去,每次扩容是原来的1.5倍。jdk1.7初始化数组10个,1.8初始化0,懒汉式ArrayList还实现了自己的序列化,比如数组长度是10,里面可能只有一个元素,其他都是nul

2020-08-14 15:41:45 117

原创 eureka注册中心

作用:发现服务,心跳检测,如果有服务挂了另一台提供也可以使用其他比如zookepper作为注册中心zk在多于一半服务挂掉时会停止提供服务,而 Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样使整个注册服务瘫痪(只要有一台在就可以提供服务)。@EnableEurekaServer 注解表示作为注册中心服务端@EnableEurekaClient 注解表示作为客户端配置:#注册中心地址eureka.client.ser...

2020-08-14 10:18:06 186

原创 Sleuth&Zipkin链路跟踪

概念:Spring Cloud Sleuth可以追踪10种类型的组件,async、Hystrix,messaging,websocket,rxjava,scheduling,web(Spring MVC Controller,Servlet),webclient(Spring RestTemplate)、Feign、Zuul基于谷歌的Zipkin来实现,相当于阿里的鹰眼,zipkin有自带的UI查看链路,也提供api进行查询Span:一个调用过程比如a调用bTrace:多个span的.

2020-08-14 10:16:48 296

原创 分布式事务实现

首先搞清楚是强一致还是弱一致,还是最终一致都是不同的强一致可以用二段提交做,通过XA协议(协议就是一种数据格式 比如http 有请求头,请求体),就是需要一个 协调者来协调,分为两步来执行, 协 调者发起准备,双方都准备好了再发 起提交,两边都提交好了就完了, 如 果有不 成功的则协调者回调双方 进行回滚协调器可以自己用代码写,但是这样又会有单点风险,万一挂了怎么办最终一致可以用saga模式来做,通过消息队列,像鹰眼创建一个唯一id往下 一个一个服务的传递,如果中间有错误往回调...

2020-08-14 10:04:53 82

原创 CPU load理解

指的是cpu处理排队,比如1核的cpu 1.0就是满了 4核 4.0就是满了,可以超过 超过排队 超过太多会导致失败核心个数=最大load: 在一个多核系统中, 你的load不应该超过的你的核心数. 核心就是核心: 这些核心在CPU中是如何分布的是不关心的. 2个4核处理器=4个双核处理器=1个八核处理器. 这都是8个核心....

2020-08-13 17:13:46 948

原创 JVM学习

1. JVM是java虚拟机,通过类装载器状态到内存,内存又分为几个区域 方法区 : 常量池 静态变量 栈: 和线程绑定在一起,记录这个线程怎么走的,比如调用一个方法就会创建一个栈帧 方法栈 堆 : 对象存储的空间, 垃圾回收也是都在这 程序计数器:保存当前线程执行的内存地址、2. 判定是否是垃圾的方法引用法,引用为0就是垃圾可达性算法3. 回收算法标记清除法复制法,就是分两块区域标记整理: 标记好区分开来清理...

2020-08-13 17:11:59 98

原创 Java8 Optional解决多层if

if(user!=null){Addressaddress=user.getAddress();if(address!=null){Countrycountry=address.getCountry();if(country!=null){Stringisocode=country.getIsocode();if(isocode!=null){...

2020-08-13 17:10:39 4883

原创 CompletableFuture学习

https://segmentfault.com/a/1190000019571918CompletableFuture能简化很多线程操作,并行,穿行,等待等

2020-08-13 17:09:32 63

原创 Redis做分布式锁

使用redis的setnx方法来保证锁的原子性,获取锁,执行结束释放锁但是有几个问题1.如果执行过程中有异常,锁就不会释放 。 可以使用try catch 解决2.如果服务器挂了,锁也不会释放, 所以锁要设置超时时间 超过了会自动释放锁3.设置了超时时间10秒,但执行过程很慢要15秒,10秒锁就过期,其他线程拿到会有问题 所以有一个线程观察超时时间到了,还没执行完给它延长超时时间使用Redission...

2020-08-13 17:07:49 50

原创 批量部署Jenkins

Jenkins 是一个可扩展的持续集成引擎。主要用于:l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。启动直接下载war包启动,或者通过拉取docker镜像拉取镜像启动容器后,访问8080提示密码,密码在tail /var/jenkins_home/secrets/initialAdminPassword可以在git提交后触发任务通过maven编译代码后 把项目部署到各个docker或者服务器上...

2020-08-13 17:06:16 358

原创 sentinel限流

服务端:下载sentinel.jar 然后启动java -jar sentinel.jar &默认端口8080启动后可以浏览器访问8080进入控制台页面配置限流等客户端:spring.cloud.sentinel.transport.dashboard=106.13.235.184:8080spring.cloud.sentinel.eager=false <dependency> <groupId>org.springframewor

2020-08-13 17:05:02 89

原创 rabbitmq消息队列

安装:首先服务器安装rabbitmq,自行百度https://www.cnblogs.com/liaojie970/p/6138278.html添加rabbitmq的用户默认不能远程访问,需要配置https://blog.csdn.net/andrewniu/article/details/80255829安装控制台插件默认端口5726 控制台默认端口15672rabbitmq-plugins.bat enable rabbitmq_management/sbin/...

2020-08-13 17:02:46 145

原创 docker镜像

镜像使用的硬件还是主机的硬件所以不存在虚拟机那种小内存影响性能的情况制作镜像,在镜像里安装环境部署项目,打包环境到远程仓库其他机器从远程仓库拉镜像ok生成镜像:docker build -t 镜像名. //最后一点表示Dockerfile文件在当前文件夹删除镜像要先删除容器docker rm 容器iddocker rmi 镜像id运行镜像:docker run -d -p 7002:7001 9c6370718ce1端口映射的运行方式有弊端,比如宿主机80端口占..

2020-08-13 16:53:18 165

原创 tomcat优化

服务器tomcat优化tomcat优化1.关闭AJPtomcat的AJP占用8009端口,关闭可以节省资源,提升效率AJP是一种通讯协议,原本的作用是当apache,iss这种服务器会通过AJP访问tomcat如果我们是直接使用tomcat,或者nginx转发8080端口就可以关闭AJP2.设置运行模式tomcat有3中运行模式:bionioapr前2个可以再配置文件直接设置,nio效率会比bio更快,tomcat8之后默认用nio而且tomcat8后有nio2更快设置:3.设

2020-08-13 16:51:49 439

原创 踩坑记录

1.springAopjdk动态代理,是jvm自身实现的一个代理,最核心的点在于是一种基于接口的代理,一定要实现接口!! cglib代理,继承这个类生成代码来代码,所以必须能继承!!2.Zipkin代表上传链路信息的比例 % 默认0.1spring.sleuth.sampler.probability=1.0spring.sleuth.sampler.percentage=1.0两个都配上,网上只写一个死活不生效,percentage和probability 官网有改过,不同..

2020-08-13 16:51:07 139

空空如也

空空如也

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

TA关注的人

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