自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线上系统oom,内存cpu飙高该如何处理?

1.针对线上系统发生oom,该怎么处理?oom叫内存溢出,一般在指的是堆内存溢出。就是应用程序在运行的过程中试图申请内存空间但是堆内存已经没有足够的空间可供申请就会发生oom。一般的原因有两种:1.业务流量激增突然的业务流量激增导致堆内存空间不足,这个是由于堆内存空间设置不合理或者说没有对应用程序进行过资源评估或者资源评估不合理导致。解决办法就是扩大堆内存的空间,这个区域的大小可以在JVM(Java虚拟机)启动时通过参数-Xmx设置,如果你没有显式设置,则将使用特定平台的默认值。同时需要对程序进行资

2021-06-16 23:01:09 587

原创 springboot常用注解

1,类相关的注解@SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三个配置。一般微服务启动类上面都要加。@Controller @RestController @Service @Repository @...

2019-10-17 22:10:50 121

原创 聊聊redis集群的三种方式

redis集群有三种方式:主从复制,哨兵,集群(master-cluster)。1.主从复制(Master-Slave)数据库分为两类,Master数据库和Slave数据库。有以下特点:1.master一般是接受读写的,slave只接受读操作。2.当master接受写操作后会将命令发送给slave执行,从而实现数据一致性3.一个master下面可以有多个slave,但是一个slave上...

2019-10-17 21:32:15 7807

原创 聊聊分布式事务的解决方案

在一个分布式微服务系统中,由于每个微服务可能都有自己的数据库,例如支付宝给余额宝转账怎么确保两边的操作都成功?常用的解决方案有以下几种:1,2PC两阶段提交,其实就是有一个全局的事务管理器管理。第一阶段:各微服务数据库预提交此事务操作,并反馈是否可以提交给事务协调器,及投票第二阶段:根据微服务的投票结果要求提交或者回滚。2,消息中间件操作1操作完后把消息放到消息中间件里面,操作...

2019-10-16 10:50:14 168

原创 简述jvm内存模型及垃圾回收

一,java内存模型jvm内存模型见下图:1,程序计数器线程是cpu调度的最小单位,当多线程竞争cpu时间片段时,当线程切换时能正确的切回到指定位置,需要一个计数器记录当前执行的字节码的地址。因此,程序计数器是线程私有的一块较小的内存空间,其可以看做是当前线程所执行的字节码的行号指示器。2,本地方法栈属于线程私有,存放java的本地方法调用,java本地方法指的时native修饰的那...

2019-10-12 14:11:43 184

原创 关于cap理论及zookeeper,eureka

cap指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。什么是一致性?一致性分为强一致性,弱一致性,以及最终一致性。先看下面一张图。一个数据库集群中,用户先更新数据库a中的value为2,再从数据库b中读取value的值。...

2019-10-10 17:07:35 718

原创 一张图概括一个微服务架构需要考虑的事情

举的例子是以springcloud为例

2019-10-09 21:21:51 184

原创 spring cloud的eureka注册中心,ribbon以及hystrix介绍以及相应的基础配置

ribbon介绍:spring cloud采用ribbon来做客户端负载均衡(主要是服务清单维护在客户端),eureka分为eureka服务端和客户端。eureka服务端,是注册中心,支持高可用配置,推荐每个可用的区域运行一个eureka注册中心,形成一个集群,采用异步模式互相复制各自的状态。eureka客户端,主要处理服务的注册与发现,采用注解和参数配置的方式嵌入在客户端应用程序。在应用程...

2019-10-09 20:08:57 204

原创 如何搭建一个简单的eureka集群

spring cloud构建高可用的服务注册中心eureka server一开始设计就考虑到了高可用问题,所以在eureka的服务治理设计中,所有的节点即是服务提供方,又是服务消费方。eureka集群其实就是将自己作为服务向其他注册中心去注册自己,这样就可以形成一组相互注册的服务治理中心,以实现服务清单的互相同步,达到高可用的效果。...

2019-10-09 15:36:27 476

原创 sync内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案?

抛异常锁会释放掉,不会死锁排查死锁的方法,在window打开 JConsole,JConsole是一个图形化的监控工具!上面有死锁排查。防止死锁的方法:1,按顺序持有锁 2,锁超时设置参考链接:https://www.cnblogs.com/aflyun/p/9194104.html...

2019-10-05 22:29:21 338

原创 聊聊java常用的设计模式

单例跟工厂就不聊了,直接聊聊其余的。设计模式分为三种:创建型,结构型,行为型创建型模式:用于描述怎么创建对象,将对象的创建与使用分离,常见的有单例,工厂,原型,创建者等结构型:描述了按照类或者对象组成一个更大的结构,常见的有代理模式,适配器模式,装饰器等行为型模式:行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。常见的有策略模式,责任链模...

2019-10-05 17:04:12 94

原创 软件设计的六大原则

单一职责类的职责要单一,就是一个类只能干它范围内的事情,不要干一些无关的事情开闭原则类的代码对扩展开放,对修改关闭依赖倒置上层模块不应该直接依赖下层模块,而应该依赖它的抽象,抽象可以是接口或者抽象类里式替换原则继承必须确保父类所拥有的性质在子类中仍然成立,意思就是子类可以扩展父类的方法,但是尽量不要重写父类的方法接口隔离不应该在一个接口中定义太多方法,接口之间应该隔离。迪米特原...

2019-10-05 13:56:37 97

原创 java锁体系总结

一张图概括java 的锁体系cas算法cas意思就是比较和替换,有三个变量,主内存中的值,线程工作内存中的值(预期值),要修改的值,比较和替换是一个原子操作,每次在替换前都会比较预期值是不是和主内存中的值一致,如果一致则更新,不一致的话就从主内存中重新同步变量的值到工作内存,自旋。cas算法弊端:1:就是ABA的问题当多个线程把变量的值从A改到B又改回到A,这时候cas不能识别这种状态...

2019-09-30 12:10:02 273

原创 简述java中的可重入锁和不可重入锁

不可重入锁指的是同一个线程已经获取到锁后再次获取锁时获取不到,线程会被挂起,这就叫不可重入锁。代码如下:import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class UnReentLockDemo {private boolean isLocked;...

2019-09-29 13:00:35 355

原创 简要讨论java中的锁,synchronized和lock的区别

简要讨论java中的锁synchronized和lock的区别是什么?synchronized到底锁的是什么?当java代码中存在操作同一个共享资源的时候,共享资源可以是一个变量,一个对象,或者redis缓存中的同一个key对应的值,或者其他缓存数据数据库,关系型数据库中同一条记录,或者消息中间件中同一个消息等等,都可能出现线程安全的问题,为了解决这种问题,java提供了自己的锁机制来确保线程...

2019-09-29 12:31:40 228

空空如也

空空如也

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

TA关注的人

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