自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MongoDB分片集群介绍以及安装

文章目录架构概述分片集群原理分片集群搭建环境准备mongs路由安装配置服务器可复制集安装分片集群安装分片1、分片3安装分片2安装初始化两个可复制集分片配置针对集合分片启动和停止命令分片注意点和建议架构概述MongoDB部署架构分为单机、可复制集、分片集群,单机适合学习使用;分片集群比较复杂、运维难度高,在数据量达到一定瓶颈的时候才考虑使用,要慎重选择;可复制集是非常适合用于生产环境的一种架构...

2019-05-02 16:49:15 2518

原创 MongoDB可复制集架构介绍以及安装

文章目录架构概述可复制集原理可复制集环境搭建架构概述MongoDB部署架构分为单机、可复制集、分片集群,单机适合学习使用;分片集群比较复杂、运维难度高,在数据量达到一定瓶颈的时候才考虑使用,要慎重选择;可复制集是非常适合用于生产环境的一种架构本文讲解的是可复制集架构的原理和搭建可复制集原理可复制集是跨多个MongDB服务器(节点)分布和维护数据的方法。mongoDB可以把数据从一个节...

2019-05-02 11:26:01 338

原创 MongoDB在CentOS7下的yum方式和压缩包方式安装

创建镜像源/etc/yum.repos.d/mongodb-enterprise.repo输入如下内容:[mongodb-enterprise]name=MongoDB Enterprise Repositorybaseurl=https://repo.mongodb.com/yum/redhat/$releasever/mongodb-enterprise/3.4/$basear...

2019-05-02 08:53:33 291

原创 MongoDB索引说明及慢查询优化

文章目录索引种类索引语法慢查询优化第一步:找出慢查询语句第二步:分析慢查询第三步:分析explain结果索引优化实战索引建议索引种类索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录,即会进行全集合扫描索引主要用于排序和检索单键索引(常用)在某一个特定的属性上建立索引,例如:db.users.createInde...

2019-05-01 20:42:50 1839

原创 MongoDB存储引擎

文章目录wiredTiger数据写入原理写策略解析配置文件wiredTigerMongoDB从3.0开始引入可插拔存储引擎的概念。目前主要有MMAPV1、WiredTiger存储引擎可供选择。在3.2版本之前MMAPV1是默认的存储引擎,其采用linux操作系统内存映射技术,但一直饱受诟病3.4以上版本默认的存储引擎是wiredTiger,相对于MMAPV1其有如下优势:读写操作性...

2019-05-01 19:00:16 330

原创 MongoDB安全权限设置及密码重置方法

文章目录RBAC(基于角色控制)设置权限忘掉密码怎么办RBAC(基于角色控制)MongoDB中的权限是基于角色控制的(Role-Based Access Control) 角色类型 类型说明 角色名称 说明 数据库一般角色(Database User Roles) ...

2019-05-01 17:44:40 1075

原创 MongoDB的java客户端连接池配置说明

XML配置<!-- spring 1.x版本生成的mongo-client实际上为Mongo,而不是MongoClient --><mongo:mongo-client host="192.168.31.41" port="27017" id="mongo"> <mongo:client-options write-concern="ACKN...

2019-04-27 20:02:28 2021

原创 MongoDB数据类型

JSON和BSONJSON是一种简单的数据表示方式,它易于理解、易于解析、易于记忆。但从另一方面来说,因为只有null、布尔、数字、字符串、数组和对象这几种数据类型,所以JSON有一定局限性。例如,JSON没有日期类型,JSON只有一种数字类型,无法区分浮点数和整数,更别说区分32为和64位数字了。再者,JSON无法表示其他一些通用类型,如正则表达式或函数。BSON(Binary Serial...

2019-04-27 19:40:41 172

原创 Intellij IDEA连接Hadoop HDFS实现本地调试

首先下载HadoopIntellijPlugin插件,该插件在CSDN上可以下载到现成的(不过需要积分)。其实该插件真正的出处地址是:https://github.com/fangyuzhong2016/HadoopIntellijPlugin大家可以按照github的介绍生成属于自己版本的插件(亲测可行)若是hadoop 2.7.3版本,可以直接下载我生成好的插件,请戳这里:网盘下载,...

2019-04-19 16:20:06 3868 3

原创 深入理解HDFS原理

文章目录HDFS初识HDFS优缺点认识架构关于block数据存储策略数据读写写操作读操作HDFS初识Hadoop生态系统架构图1.0版本:2.0版本:HDFS是Hadoop Distribute File System的简称,位于生态系统图最底层的,是Hadoop的一个分布式文件系统。HDFS优缺点优点:高容错性,数据自动保存多个副本,副本丢失后自动恢复存储超大文件,...

2019-04-15 13:09:41 102

原创 CentOS7安装hadoop2.7.3-单机版

文章目录安装版本OpenJDK安装环境准备hadoop安装安装版本操作系统:CentOS7 64位IP地址:192.168.43.61Hadoop版本:2.7.3JDK版本:OpenJDK 1.8 64位OpenJDK安装使用yum安装OpenJDK1.8,参看博客:Linux下OpenJDK安装安装完毕后要配置好环境变量,这里设置全局的环境变量,即修改 /etc/profile ...

2019-04-11 14:33:11 382

原创 Docker启动报错:SELinux is not supported with the overlay2 graph driver

Docker安装环境CentOS版本:3.10.0-514.el7.x86_64Docker版本:1.13.1启动报错systemctl start docker命令启动报错如下:查找原因第一步,谷歌^^^,结果还真找到答案,歪果仁果然腻害https://stackoverflow.com/questions/45461307/selinux-is-not-supp...

2019-04-03 13:38:02 214

原创 CentOS安装MySQL客户端

很多时候我们只需要安装MySQL客户端,命令如下:yum install -y mariadb.x86_64 mariadb-libs.x86_64

2019-03-28 11:07:01 2643

原创 Ant环境安装(Windows10+CentOS7)

文章目录Windows10安装CentOS7安装Ant下载地址:http://ant.apache.org/安装版本:1.7.0前提:必须先安装JDK并配置好环境变量,这里安装的是JDK1.8,具体安装方式参考:Linux下OpenJDK安装Ant学习资料:https://www.w3cschool.cn/ant/Windows10安装下载zip包:apache-ant-1.7.0-b...

2019-03-28 10:18:52 115

原创 MySQL死锁的案例

文章目录死锁的发生问题分析解决方案总结死锁的发生今天碰到一个MySQL死锁的案例,应用启动时发生了死锁,先看日志吧:2019-03-18 19:40:24 jdbc.sqltiming [ERROR] 45. PreparedStatement.execute() FAILED! DELETE FROM NGB_DNSMAP_CHAIN_INFO WHERE dnsSystemId...

2019-03-19 17:22:38 340

原创 Intellij IDEA中查看System.gc()堆栈日志

Run–&gt;Edit Configuration,在VM Options中设置:-XX:+PrintGCDetails打印结果:

2019-03-14 20:27:18 3097 1

原创 jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap

在centos环境下使用jmap命令查看堆使用的情况,发现如下错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap原因:没有安装对应的openjdk-debuginfo工具解决办法:安装debuginfo,去网站 http://debuginfo.centos.org/7/x86...

2019-02-15 16:54:14 1231

原创 SSO单点登录

SSO主要解决的是大型系统中各子系统如何共享登录状态的问题,如企业应用有很多业务子系统,只需登录一个系统,就可以实现不同子系统间的跳转,而避免了重复的登录操作。通常使用cookie和session技术完成。转载网友的两篇博客来理解单点登录的原理:1.单点登录原理与简单实现2.CAS实现单点登录SSO执行原理探究(终于明白了)...

2019-02-10 09:29:55 121

原创 性能优化之Java程序优化细节(珍藏版)

1. 尽量指定类、方法的final修饰符为类指定final修饰符可以让类不可以被继承,为方法指定final修饰符可以让方法不可以被重写。类似于java.lang.String就是final类,如果指定了一个类为final,则该类所有的方法都是final的。Java编译器会寻找机会内联所有的final方法,内联对于提升Java运行效率作用重大,此举能够使性能平均提高50%。2. 尽量重用对象特...

2019-02-02 22:47:52 119

原创 Java虚拟机之性能监控工具

文章目录jps 虚拟机进程状况工具(常用)jstat 虚拟机统计信息监视工具(常用)jinfo 配置信息工具(常用)jmap 内存映像工具jhat 虚拟机堆转储快照分析工具(一般不用)jstack 堆栈跟踪工具VisualVM 可视化工具MAT 强大的dump分析工具(常用)jps 虚拟机进程状况工具(常用)最常用的工具之一,因为其他命令都需要先使用jps查询出LVMID(本地虚拟机唯一ID)...

2019-02-02 21:12:16 340

原创 Java虚拟机之常见参数配置

-Xmx5g:设置堆最大内存为5G-Xms5g:设置堆最小内存为5G,将最大和最小值设置一样,可以避免堆自动扩展,即垃圾回收后会重新分配堆内存空间,提高性能,一般也推荐这么做-Xmn2g:设置堆中的年轻代大小为2G。整个堆大小=年轻代大小+老年代大小+持久代大小。持久代一般固定位64M,所以增大年轻代后,将会减少老年代大小,当老年代内存用完会引发Full GC,相当严重。此值对系统性能影响较大...

2019-02-02 20:29:32 2823

原创 Java虚拟机之垃圾收集器

文章目录判断对象已死垃圾收集算法垃圾收集器判断对象已死在堆中存放着所有对象实例,那虚拟机是如何判断该对象已死,是需要进行GC回收的呢?这里两种算法:引用计数算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用可达性分析通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜...

2019-02-02 19:53:22 79

原创 Java虚拟机之内存分配详解

文章目录堆永久代虚拟机栈栈帧组成之局部变量表堆java虚拟机所管理的内存中最大的一块。几乎所有的对象都是存储在堆中,并且堆是完全自动化管理的,通过垃圾回收机制,垃圾对象会被自动清理,而不需要显式的释放。因为GC垃圾回收采用分代收集算法,因此堆空间的结构一般也为上述结构(这里只描述常见的情况):分为新生代和老年代两块区域。刚new出来的对象实例是存在新生代中的,当Minor GC回收次数达到...

2019-02-02 16:10:11 870

原创 Java虚拟机之自动内存管理

文章目录JVM内存区域对象的创建对象的访问定位OutOfMemoryError异常Java堆溢出虚拟机栈和本地方法栈溢出方法区和运行时常量池溢出本机直接内存溢出JVM内存区域先来看两张大家都很熟悉的图(JVM整个内存结构):类加载器负责从文件系统或者网络中加载class文件,并将类信息存放在方法区中方法区是各个线程共享的内存区域,主要保存已被虚拟机加载的类信息、常量、静态变...

2019-02-01 23:01:30 63

原创 Java中的NIO基础

文章目录几个概念NIO基础传统BIO模型伪异步IO模型NIO模型Channel(通道)Buffer(缓冲区)Selector(多路复用器)几个概念阻塞和非阻塞阻塞与非阻塞是描述进程在访问某个资源时,数据是否准备就绪的的一种处理方式。当数据没有准备就绪时:阻塞:线程持续等待资源中数据准备完成,直到返回响应结果。非阻塞:线程直接返回结果,不会持续等待资源准备数据结束后才响应结果同步与异...

2019-01-30 23:00:17 80

原创 Java多线程之线程池Executor

文章目录线程池Executor框架成员结构图基本使用FixedThreadPool详解SingleThreadExecutor详解CachedThreadPool详解WorkStealingPool详解ScheduledThreadPoolExecutor详解Callable、Future和FutureTask详解CompletionService详解线程池线程池作用降低资源的消耗提高...

2019-01-28 22:16:08 207

原创 ELK介绍和集群环境安装

文章目录环境准备Elasticsearch集群安装环境准备CentOS 7ELK版本:6.4.3三台机器elk01 10.8.206.46elk02 10.8.206.46elk03 10.8.206.46JDK1.8安装方式请参考另一篇博客:Linux下OpenJDK安装Elasticsearch集群安装每台机器都按照相同步骤安装Elasticsearch,但是先...

2018-12-30 19:16:48 869

原创 Docker安装报错container-selinux >= 2.5-11

报错信息:Error: Package: 2:container-selinux-2.33-1.git86f33cd.el7.noarch (wsupdates)Requires: policycoreutils &gt;= 2.5-11Installed: policycoreutils-2.2.5-20.el7.x86_64 (@anaconda)policycoreutils = 2...

2018-12-17 15:56:17 2809

原创 Java多线程之常用并发容器的使用

文章目录ConcurrentHashMapConcurrentHashMap为什么要使用ConcurrentHashMap在多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,HashMap在并发执行put操作时会引起死循环,是因为多线程会导致HashMap的Entry链表。形成环形数据结构,一旦形成环形数据结构,Entry的next节点永远不为空,就...

2018-12-16 22:08:18 154

原创 Java多线程之AbstractQueuedSynchronizer原理解析

文章目录AQS介绍ReentranLock示例公平锁和非公平锁lock操作unlock操作AQS基本使用LockSupport同步队列独占式同步状态获取与释放共享式同步状态获取与释放AQS介绍AQS队列同步器,java.util.concurrent包中很多类都依赖于这个类所提供的队列式的同步器,比如说常用的ReentranLock,Semaphore和CountDownLatch等Reen...

2018-12-12 17:40:17 914

原创 Java多线程之并发工具类的使用

文章目录ReentrantLockReadWriteLockConditionSemaphoreCountDownLatchCyclicBarrierExchangerReentrantLocksynchonized的增强版,可以完全替换synchonized关键字。在JDK1.5之前synchonized关键字的性能是比较差的,使用ReentrantLock会更好。但是目前最新的JDK版本已...

2018-12-12 14:19:18 457

原创 Java多线程之无锁原子类和CAS算法

CAS概述无锁的原理是使用CAS(Compare And Swap)算法,为什么要用CAS呢?在多线程高并发编程的时候,最关键的问题就是保证临界区的对象的安全访问。通常是用加锁来处理,其实加锁本质上是将并发转变为串行来实现的,势必影响吞吐量。而且线程的数量是有限的,依赖于操作系统,而且线程的创建和销毁带来的性能损耗是不可以忽略掉的,虽然现在基本都是用线程池来尽可能的降低不断创建线程带来的性能损...

2018-12-11 15:12:18 90

原创 Java多线程之ThreadLocal线程局部变量详解

概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)的功能非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一个线程都可以独...

2018-12-10 22:45:51 301

原创 Java多线程之synchronized详解

synchronized作用关键字synchronized可以修饰方法或者以同步块的形式来进行使用,它主要确保多个线程在同一个时刻,只能有一个线程处于方法或者同步块中,它保证了线程对变量访问的可见性和排他性,又称为内置锁机制。Synchronized的类锁和对象锁,本质上是两把锁,类锁实际锁的是每一个类的class对象。对象锁锁的是当前对象实例。在JDK1.5及之前的版本中,synchron...

2018-12-10 22:30:00 62

原创 Java多线程之volatile详解

volatile作用用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新的值。即每次读取volaile修饰的变量,都会强制性的从公共堆栈中进行取值,而不是从线程私有堆栈中获取。volatile是非线程安全的,最致命的缺点是不支持原子性。针对多线程使用的变量如果不是volatile或者final修饰的,很有可能产生不可预知的结果(另一个线程修改了这个值,但是之后在某线...

2018-12-10 22:19:01 87

原创 Java多线程之基础概念

文章目录线程状态Thread静态API对象API线程状态线程状态的扭转图如下:new:新建状态,创建一个线程对象runnable:就绪状态,线程对象创建后,其他线程调用了该对象的start()方法后会进入该状态。该状态的线程位于可运行线程池中,变得可运行,等待获取CPU的使用权blocked:阻塞状态,线程因为某种原因放弃CPU使用权,暂时停止运行,直到线程进入runnable状态,...

2018-12-10 22:04:22 58

原创 Java多线程之高并发的一些概念

同步和异步同步:A调用B,B处理完毕后响应给A异步:A调用B,B先返回给A,然后在后台启动一个新的线程进行处理并行和并发并行:两个线程同时跑,适合多核CPU,是真正意义上的同时并发:一个线程分批次跑,适合单核CPU临界区临界区用来表示一种公共资源或者说共享数据,可以被多个线程使用。但是每一次,同时只能有一个线程使用它,一旦临界区资源被占用,其他线程要想使用这个资源,必须等待阻塞...

2018-12-10 15:44:30 153

原创 PowerDesigner快捷键

PowerDesign自动排版:Ctrl+A选中所有模型,然后菜单-&amp;gt;Symbol-&amp;gt;Auto-Layout

2018-12-09 20:03:35 278

原创 设计模式-状态模式

文章目录模式介绍实例模式类图代码实例总结模式介绍如果我们在编写代码的时候,遇到大量的条件判断的时候,可能会采用策略模式来优化结构,因为这时涉及到策略的选择,但有时候仔细查看下,就会发现,这些所谓的策略其实是对象的不同状态,更加明显的是,对象的某种状态也成为判断的条件实例一个类对外提供了多个行为,同时该类对象有多种状态,不同状态下对外的行为的表现不同,比如无人自动咖啡售卖机开发一个控制程序。...

2018-12-09 17:32:25 55

原创 设计模式-命令模式

文章目录介绍适用场景模式类图实例代码和策略模式区别介绍先设想一个场景,为系统设计一个命令行界面,用户输入命令来执行某项功能。系统的功能会不断添加,命令也会不断增加,如何将一项一项的功能加入到这个命令行界面?你可能会写出下面一段代码:public class Receiver{ public void receive(String command) { switch (command) ...

2018-12-09 15:45:37 59

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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