自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoDB使用

本文使用Docker安装MongoDB,首先安装Dokcer适合操作系统: ubuntu18Docker安装# 卸载旧版本sudo apt-get purge docker-cesudo apt-get remove docker docker-engine docker.io containerd runcsudo rm -rf /var/lib/docker# 安装curl工具sudo apt-get install curl -y# 使用官方安装脚本curl -fsSL https

2020-07-31 17:41:04 188 1

原创 RabbitMQ部署

文章目录RabbitMQ部署1 安装RabbitMQ1.1 apt自动安装1.1.1 一键安装1.1.2 添加仓库签名key1.1.3 启用https1.1.4 添加source list1.1.5 更新apt1.1.6 安装rabbitmq与erlang1.1.7 指定仓库和版本号1.2 ubuntu标准库apt安装1.3 dpkg手动安装2 配置RabbitMQ2.1 创建用户2.2 集群配置RabbitMQ部署参考文献文档来源《RabbitMQ官方参考文档》https://

2020-07-31 17:34:15 431

原创 springcloud

Spring Cloud RibbonRibbon负责客户端的负载均衡,可以帮助服务进行横向扩展,使调用链具备良好的伸缩性。使用Spring Cloud Ribbon由于客户端负载均衡需要从注册中心获取服务列表,所以需要集成Eureka,在本案例中,eureka-server运行在localhost:8888。pom文件,添加ribbon、eureka-client依赖,ribbon将会从注册中心eureka-server中查找所需要调用的client-a的地址列表,然后进行负载均衡。 &lt

2020-07-15 18:01:02 217

原创 知识点

1 java基础1.1 基础为什么String定义为final。答:字符串常量池的要求,创建字符串时,如果该字符串已经存在于池中,则将返回现有字符串的引用,而不是创建新对象。多个String变量引用指向同一个内地地址,如果字符串是可变的,用一个引用更改字符串将导致其他引用的值错误。这是很危险的。说下枚举类型,底层实现原理,项目中是如何使用的。详细描述Error和Exception(运行期和编译期)的区别。深拷贝和浅拷贝区别序列化和反序列化java内部类的区别(成员内部类、静态嵌套类、方法内

2020-06-14 23:44:58 444

原创 JVM问题整理

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2.Java内存结构?方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Java堆(H

2020-05-24 19:16:28 109

原创 MQ的一些问题

1 消息幂等性消息的幂等性:同一条消息重复消费,不会影响业务处理结果,如数据库记录不会因为消息重复消费受影响消息的幂等性不是由mq server负责,主要靠消费者来保证。生产者发送消息时,添加一个全局唯一标识id,如msgId消费者消费消息时,尝试将msgId放置在redis set中(SADD命令),如果返回1表示插入成功,该消息未被消费过,消费者处理该消息,如果返回0表示插入失败,消费者丢弃该消息。2 消息高可用RabbitMQ的镜像集群模式、Kafka的HA副本集模式。2.1 R

2020-05-24 13:00:59 172

转载 JVM调优与故障排查

本文转自:https://zhuanlan.zhihu.com/p/137502691线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。同时例如jstack、jmap 等工具也是不囿于一个方面的问题的,基本上出问题就是 df、free、top 三连,然后依次 jstack、jmap伺候,具体问题具体分析即可。文章目录CPU业务逻辑问题GC上下文切换次数磁盘内存OutOfMemory&StackOverFlow

2020-05-20 11:11:51 457

原创 springboot整理

1 spring的启动过程Springboot的启动,主要创建了配置环境(environment)、事件监听(listeners)、应用上下文(applicationContext),并基于以上条件,在容器中开始实例化我们需要的Bean。(1)创建一个SpringApplication对象实例,然后调用这个实例的run方法(2)创建了应用的监听器SpringApplicationRunListeners,启动监听器(3)创建并配置environment,environment主要负责读取spring

2020-05-18 09:46:02 133

原创 MongoDB存储引擎

MMAP(Memory mapping,内存映射引擎)与WiredTiger引擎

2020-01-15 14:26:43 662

原创 MongoDB索引

索引是特殊的数据结构,它以易于遍历的形式存储部分集合数据集。索引存储特定字段或字段集的值,按字段值排序。MongoDB的索引几乎与传统的关系型数据库索引一模一样,它的主键_id也是一个索引,MongoDB的数据按照_id的顺序存储在内存页与磁盘块上。但是,_id与业务毫无关联,在业务相关的条件查询时,还是需要进行全表扫描才能找到对应页,效率并不高。为了避免性能瓶颈,可以根据常用的查询建立索引...

2020-01-14 17:48:24 688

原创 docker-compose部署MongoDB&MySQL&RabbitMQ集群

在三台主机使用docker-compose部署MongoDB 1主2从副本集、RabbitMQ主-主、MySQL主-从复制。

2019-12-29 17:07:43 656

原创 JAVA并发(六)对象的安全发布

对象的不安全发布主要有:this逸出,在对象还未实例化完成时,就能被其他对象锁获取(发布)this逸出什么是this逸出对于一个类C来说,“外部方法”指的是行为不完全由类C规定的方法,包括其他类定义的方法,以及类C中可以被改写的方法。当把类C的对象传递给某个外部方法时,相当于发布了该对象,此时如果C的实例未完成实例化,就称为类C的实例的this逸出。最常见的“外部方法”使用场景是在构造器中生...

2019-12-24 20:09:40 191 1

原创 JAVA并发(五)ReentrantLock&Condition

ReentrantLock是JAVA中除synchronized外,另一种简便的管理资源锁的工具类,它还提供了Condition对象的创建,供调用者添加不同的条件队列,实现更灵活多样化的等待机制,ReentrantLock是基于AQS实现的,所以在阅读本文前需要掌握AQS[JAVA并发(二)AQS](https://blog.csdn.net/weixin_44922510/article/details/103614234)。

2019-12-24 19:22:52 248

原创 JAVA并发(四)JMM、CAS、原子性、可见性、有序性、synchronized对象锁、JVM锁优化

本文将从缓存与内存之间数据安全传递的问题入手,介绍现代处理器的缓存一致性协议,然后介绍JMM工作内存、主内存、以及二者之间数据的安全传递是如何保证的,进而详细介绍原子性、可见性、有序性;最后单独一章介绍JAVA对象锁-----synchronized关键字的原理、使用、以及JVM的锁优化。

2019-12-23 17:00:30 1064

转载 转载

转发一篇文章,关于Redis的Redis总结

2019-12-20 16:03:32 116

原创 JAVA并发(三)ThreadLocal与JAVA的四种引用

ThreadLocal用来在多线程环境中安全的保存某一个变量或对象,用以在当前线程的上下文传递。本文将介绍ThreadLoal的实现原理以及它的内存泄露问题,所以,首先会介绍JAVA中四种引用:强引用、软引用、弱引用、虚引用。

2019-12-19 15:20:56 701 1

原创 JAVA并发(二)AQS与同步工具类

构造线程安全类时常用的一个策略是将线程安全委托给现有的线程安全类,Java平台类库包含了丰富的线程安全类,包含同步容器类、同步工具类。这些同步容器类、同步工具类中,很多底层实现都是AQS,所以,本文将先介绍AQS,再分别介绍各种工具类。

2019-12-19 14:54:11 327

原创 JAVA并发(一)任务执行框架Executor

Executor框架是JAVA并发包中的重要框架,负责线程池的创建与任务的执行,本文将从Executor框架出发,逐步介绍任务的分类,以及线程池的创建,包含了BlockingQueue、任务拒绝策略、线程池大小、线程池选择等,最后,介绍了ThreadPoolExecutor的扩展方法,对线程池的任务进行统计。

2019-12-13 15:44:25 512

原创 MySQL事务与锁

MySQL事务与锁是紧密相连的整体,需要互相配合使用,本文介绍了事务的隔离级别、共享锁、独占锁、间隙锁、记录锁、next-key锁,索引与锁的关系、以及MySQL默认隔离级别选择可重复读的原因、纠正多数博客对“幻读”的错误理解。

2019-12-10 11:23:41 314

空空如也

空空如也

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

TA关注的人

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