自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 论坛 (1)
  • 收藏
  • 关注

原创 ZooKeeper系列教学

    本专题是ZooKeeper的一些列教学文章,本来博主打算自己写,但是写了两篇之后,查资料过程中发现了Sunddenly(⊙_⊙) 的博客,他的这个系列写的非常专业,而且图文并茂,就转载了过来;我在文章首行挂了原文链接,文章末尾保留了博主的版权声明,文章类型都已经设置为转载,如果有读者想要转载,请遵守原文作者版权声明要求,原创不易,请大家尊重创作者,感谢Sunddenly(⊙_⊙) 下面是此...

2018-02-11 18:06:37 3191

原创 缓存穿透、缓存雪崩、缓存热点

摘要:本文主要讲解在使用缓存的过程中,经常出现的三个问题:缓存穿透、缓存雪崩、缓存热点。1.概念缓存穿透:大多数缓存系统,都是以key-value的格式去存储数据的,当有个请求去查询某个key,但是这个key对应的value不存在,则这个请求就会到后端DB中查询;如果有人恶意去查询缓存中不存在的key,那大量的请求就会涌向DB端,如果DB端不具备高并发的能力,那DB端可能就挂掉了;此时,用缓存来减...

2018-02-28 19:20:13 401

原创 Spring Boot---(22)SpringBoot使用Actuator监控

摘要:SpringBoot内有一个spring-boot-starter-actuator模块,这个模块是对服务自身进行状态监控和信息采集的;使用起来非常简单,但对开发者来讲作用是很大的,很多信息不用再自己写代码来获取;但是对于大型团队有特殊监控和采集需求的,还是要靠自己进行二次完善的。具体使用方式如下:1.pom.xml引入actuator依赖 <dependency> &l...

2018-02-28 10:27:46 1394

原创 测试

SpringBoot核心原理:自动配置2018-02-25 java4all java4all摘要:本文通过断点追溯源码的方式,来逐步展示SpringBoot的核心功能实现原理:自动化配置;由于是分析源码,贴出了一些源码,所以文章较长,但关键都是在文字上,可以跳着看;本文较长,分为两篇,但主要内容如下:分析@SpringBootApplication源码;分析@EnableAutoConfigur...

2018-02-25 22:42:13 153

原创 SpringBoot---(21)核心原理:自动化配置2

接上一篇,继续分析SpringBoot自动配置原理接下来的方法是:List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);追个方法---> protected List<String> getCandidateConfigurati...

2018-02-25 21:17:08 806 1

原创 SpringBoot---(20)核心原理:自动化配置1

摘要:本文通过断点追溯源码的方式,来逐步展示SpringBoot的核心功能实现原理:自动化配置;由于是分析源码,贴出了一些源码,所以文章较长,但关键都是在文字上,可以跳着看;本文较长,分为两篇,但主要内容如下:分析@SpringBootApplication源码;分析@EnableAutoConfiguration源码;分析AutoConfigurationImportSelector类中的部分方...

2018-02-24 09:45:39 2738 1

原创 Docker---(9)Docker中容器无法停止无法删除

问题:mysql容器如法停止,无法删除,也无法连接。docker stop,docker kill等命令都无效。处理办法:1.停止所有的容器docker stop $(docker ps -q)2.强制移除此容器docker rm -f mysql13.清理此容器的网络占用格式:docker network disconnect --force 网络模式 容器名称示例:docker network...

2018-02-23 11:22:48 37480 6

原创 service endpoint with name xxx already exists.

使用Docker时,在启动一个容器时,有时会遇到如下问题:docker: Error response from daemon: service endpoint with name xxx already exists.说明此端口已经被名为xxx的容器占用了。我这里遇到的是问题是,在启动mysql时出现问题:root@iZuf6axmuekh1n14dwcufmZ:~# docker resta...

2018-02-23 11:18:46 7938

原创 zkServer.sh: command not found

1.zkServer.sh: command not found此错误详细情况如下:root@iZuf6axmuekh1n14dwcufmZ:/usr/java/zookeeper/bin# lsREADME.txt zkCleanup.sh zkCli.cmd zkCli.sh zkEnv.cmd zkEnv.sh zkServer.cmd zkServer.sh zookee...

2018-02-12 17:04:27 4758

转载 两阶段提交协议(two phase commit protocol,2PC)

一、协议概述 两阶段提交协议(two phase commit protocol,2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。该算法能够解决很多的临时性系统故障(包括进程、网络节点、通信等故障),被广泛地使用。但是,它并不能够通过配置来解决所有的故...

2018-02-12 14:43:52 584

转载 ZooKeeper---(13)ZooKeeper和Zab协议

本文转载自:Sunddenly(⊙_⊙)一、ZooKeeper概述  ZooKeeper内部有一个in-memory DB,表示为一个树形结构。每个树节点称为Znode(代码在DataTree.java和DataNode.java中)。    客户端可以连接到zookeeper集群中的任意一台。  对于读请求,直接返回本地znode数据。写操作则转换为一个事务,并转发到集群的Leader处理。Zo...

2018-02-12 14:39:13 356

转载 ZooKeeper---(12)ZooKeeper和CAP理论及一致性原则

本文转载自:Sunddenly(⊙_⊙)一、CAP理论概述分布式领域中存在CAP理论,且该理论已被证明:任何分布式系统只可同时满足两点,无法三者兼顾。  ①C:Consistency,一致性,数据一致更新,所有数据变动都是同步的。  ②A:Availability,可用性,系统具有好的响应性能。  ③P:Partition tolerance,分区容错性。因此,将精力浪费在思考如何设计能满足三者的...

2018-02-12 14:31:14 646

转载 ZooKeeper---(11)ZooKeeper与Paxos算法分析

本文转载自:Sunddenly(⊙_⊙)一、Paxos算法1.1 基本定义(1) 算法中的参与者主要分为三个角色,同时每个参与者又可兼领多个角色:① proposer 提出提案,提案信息包括提案编号和提议的value;② acceptor 收到提案后可以接受(accept)提案;③ learner 只能"学习"被批准的提案;(2) 算法保证一致性的基本语义:① 决议(value)只有在被propo...

2018-02-12 14:22:30 378

转载 ZooKeeper---(10)ZooKeeper权限管理机制

本文转载自:Sunddenly(⊙_⊙)一、ZooKeeper权限管理机制介绍  本节将简要介绍ZooKeeper ACL 权限管理的几种方式。ZooKeeper 的权限管理亦即ACL 控制功能,通过Server、Client 两端协调完成:1.1 Server端  一个ZooKeeper 的节点(znode)存储两部分内容:数据和状态,状态中包含ACL信息。创建一个znode 会产生一个ACL ...

2018-02-12 14:18:26 1682

转载 ZooKeeper---(9)ZooKeeper配置参数说明

本文转载自:Sunddenly(⊙_⊙)(1)dataDir  用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里。(2)dataLogDir  用于单独设置transaction log的目录,transaction log分离可以避免和普通log还有快照的竞争。(3)tickTime  心跳时间,为了确保client-server连接存在的,以毫秒为单位,最小超时时间...

2018-02-12 14:13:43 343

转载 ZooKeeper---(8)ZooKeeper伸缩性

本文转载自:Sunddenly(⊙_⊙)一、ZooKeeper中Observer1.1 ZooKeeper角色经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower。Leader可以接受client请求,也接收其他Server转发的写请求,负责更新系统状态。 Follower也可以接收client请求,如果是写请求将转发给Leader来更新系统状态...

2018-02-12 11:07:00 242

转载 ZooKeeper---(7)ZooKeeper一致性原理

本文转载自:Sunddenly(⊙_⊙)一、ZooKeeper 的实现1.1 ZooKeeper处理单点故障我们知道可以通过ZooKeeper对分布式系统进行Master选举,来解决分布式系统的单点故障,如图所示。图 1.1 ZooKeeper解决单点故障那么我们继续分析一下,ZooKeeper通过Master选举来帮助分布式系统解决单点故障,保证该系统中每时每刻只有一个Master为分布式系统提...

2018-02-12 10:16:09 467

转载 ZooKeeper---(6)ZooKeeper机制架构

本文转载自:Sunddenly(⊙_⊙)一、ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制。ACL的实现和Unix文件访问许可非常相似:它使用许可位来对一个节点的不同操作进行允许或禁止的权限控制。但是和标准的Unix许可不同的是,Zookeeper对于用户类别...

2018-02-12 10:11:07 447

转载 ZooKeeper---(5)ZooKeeper管理分布式环境中的数据

本文转载自:Sunddenly(⊙_⊙)引言本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法、Zab协议、通信协议等相关知识,理解起来比较抽象所以还需要借助一些应用场景,来帮我们理解。由于内容比较多,一口气吃不成胖子,得慢慢来一步一个脚印,因此我对后期ZooKeeper的学习规划如下:第一阶段:|---理解ZooKeeper的应用    ...

2018-02-12 09:21:52 511

转载 ZooKeeper---(4)ZooKeeper应用构建

本文转载自:Sunddenly(⊙_⊙)一、配置服务配置服务是分布式应用所需要的基本服务之一,它使集群中的机器可以共享配置信息中那些公共的部分。简单地说,ZooKeeper可以作为一个具有高可用性的配置存储器,允许分布式应用的参与者检索和更新配置文件。使用ZooKeeper中的观察机制,可以建立一个活跃的配置服务,使那些感兴趣的客户端能够获得配置信息修改的通知。下面来编写一个这样的服务。我们通过两...

2018-02-12 09:14:37 607

转载 ZooKeeper---(3)ZooKeeper的操作命令详解

本文转载自:Sunddenly(⊙_⊙)一、Zookeeper的四字命令Zookeeper支持某些特定的四字命令字母与其的交互。他们大多数是查询命令,用来获取Zookeeper服务的当前状态及相关信息。用户在客户端可以通过telnet或nc向Zookeeper提交相应的命令。Zookeeper常用的四字命令见下图所示。上图,是Zookeeper四字命令的一个简单用例。[root@hadoop ~]...

2018-02-11 17:51:50 1240

转载 ZooKeeper---(2)ZooKeeper安装配置

本文转载自:Sunddenly(⊙_⊙)一、Zookeeper的搭建方式Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境;■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例;■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble)Zoo...

2018-02-11 17:39:45 1005

转载 ZooKeeper---(1)ZooKeeper原理介绍

本文转载自:Sunddenly(⊙_⊙)一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解...

2018-02-11 17:33:13 1527 3

原创 Dubbo架构设计详解

摘要:这篇文章,详细的介绍了Dubbo的架构设计。Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注...

2018-02-08 16:15:39 150

原创 Java 使用阿里云OSS服务

在OSS中,用户可以通过一系列的接口管理存储空间(Bucket)中的文件(Object),比如SetObjectAcl,GetObjectAcl,ListObjects,DeleteObject,CopyObject,DoesObjectExist等。Object的名字又称为key或object key。下文详细的介绍了使用java如何操作阿里云的OSS服务。原文地址:https://help.a...

2018-02-08 15:06:04 1811

原创 Spring Boot---(19)SpringBoot整合阿里云OSS存储服务2

初次使用请参考:Spring Boot---(18)SpringBoot整合阿里云OSS存储服务本文介绍,如何获取某个bucket下某个目录中所有的文件名列表,如何删除某个文件。1.工具类package com.java4all.utils;import com.aliyun.oss.ClientException;import com.aliyun.oss.OSSClient;impor...

2018-02-08 14:59:24 1660 1

转载 Spring Boot---(17)SpringBoot常用配置项

声明:此文转载自click,这里列举了我们在springBoot项目常用的配置项,很全面,在application.properties中修改即可,配置项后用等号直接连接配置的值即可,如:spring.thymeleaf.prefix=classpath:/templates/mvcspring.mvc.async.request-timeout设定async请求的超时时间,以毫秒为单位,如果没有...

2018-02-08 11:54:28 2831

原创 Spring Boot---(18)SpringBoot整合阿里云OSS存储服务1

摘要:OSS可用于图片、音视频、日志等海量文件的存储。各种终端设备、Web网站程序、移动应用可以直接向OSS写入或读取数据,非常方便。本篇文章介绍如何在java的SpringBoot项目中,整个使用OSS服务,spring 项目也可以参考。主要步骤如下:前提是开通了阿里云OSS服务,然后;1.引入依赖2.获取关键参数,如endpoint,accessKeyId等,这个进入阿里云OSS控制台即可获取...

2018-02-08 11:43:12 14704 21

原创 Spring Boot---(16)Spring Boot使用Thymeleaf开发web页面

摘要:Spring官方不推荐使用JSP来开发WEB,而是推荐使用如下几种模板引擎来开发:Thymeleaf(Spring官方推荐)FreeMarkerVelocityGroovyMustache这里以Thymeleaf为例,介绍如何和Spring Boot集成,开发web项目;由于我不是做前端的,所以这里只是介绍个入门,让你写个页面可以访问到,我这里以表单上传为例。1.pom.xml先引入thym...

2018-02-08 09:13:01 1649

原创 SpringBoot---(15)Spring Boot创建定时任务

摘要:项目中经常会需要做一些定时的跑的事情,比如每间隔多久做个统计,发个邮件,清理个数据。这时候就要用到定时任务,SpringBoot中,创建定时任务非常简单,具体步骤如下:1.开启定时任务在程序的入口类中添加@EnableScheduling注解package com.alibaba;import org.mybatis.spring.annotation.MapperScan;impor...

2018-02-06 14:23:55 7941 2

原创 Spring Boot---(14)Spring Boot 整合EhCache做缓存

摘要:本文介绍在SpringBoot项目中,如何使用EhCache做缓存。EHCache是来自sourceforge(http://ehcache.sourceforge.net/) 的开源项目,也是纯Java实现的简单、快速的Cache组件。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为Hibernate的缓存插件。同时它也能提

2018-02-05 18:44:36 1071

原创 @Enable***注解的原理与使用

摘要:我们在开发中,会经常用到@Enable***开头的这种注解,来自动导入一些框架配置的默认的bean,进入注解源码,会发现这些注解类上都会有一个@Import(****.class)注解,这些注解是怎么实现的呢?Import导入,又分为三种方式,分别为:1.直接导入配置类2.根据条件选择配置类3.动态注册Bean下面,通过示例,进入源码,分析一下这三种导入方式:

2018-02-05 17:47:16 1609

原创 jdbcTemplate 插入中文乱码

场景:SpringBoot 使用jdbcTemplate插入数据,插入中文时,数据库为乱码。检测:断点发现,浏览器提交到后台为中文,并未乱码; mysql字段编码格式为utf8;原因:由于mysql装在阿里云服务器中,远程连接时,配置如下:spring.datasource.url=jdbc:mysql://47.100.54.6/sz?useSSL=false&autoRec

2018-02-05 14:44:30 2801

原创 Spring Boot---(13)Spring Boot 使用JPA访问数据库

摘要:Spring-data-jpa的强大和方便之处在于:可以仅仅用一层接口,就可以实现对数据库的访问和操作。本文详细介绍了,Spring Boot环境下如何使用Spring-data-jpa 来访问和操作数据库。开发环境:SpringBoot Spring-data-jpa开发工具:IntelliJ IDEAmysq 5.71.pom.xml<dependency> <gr...

2018-02-03 15:46:34 607

原创 Spring Boot---(12)Spring Boot使用JdbcTemplate访问数据库

摘要:SpringBoot使用JdbcTemplate的方式很简单:引入依赖,配置数据源,导入模板类,调用方法即可。1.pom.xml org.springframework.boot spring-boot-starter-jdbc 2.配置数据源# mysqlspring.datasource.url=jdbc:mysql://22.22.22

2018-02-03 10:35:32 1019

原创 Spring Boot---(11)SpringBoot使用Junit单元测试

欢迎关注公众号:java4all摘要:本文详细的记录了SpringBoot如何结合Junit写测试用例,如何执行,打包执行,忽略执行等操作,SpringBoot内置了Junit测试组件,使用很方便,不用再单独引入其他测试组件。演示环境:SpringBoot + mybatis开发工具:IntelliJ IDEA1.pom.xml一般使用idea新建一个Sp...

2018-02-02 17:51:18 163700 38

原创 Docker---(0)Docker 安装

本文介绍了:Ubuntu Docker 安装;CentOS Docker 安装;Windows Docker 安装;MacOS Docker 安装文章来源:点击这里,由于原文比较分散,这里整合到一篇文章了。-----------------------------------------------------------------------------------------

2018-02-02 12:01:29 2633

原创 Docker---(8)Docker启动Redis后访问不了

Docker启动Redis容器,步骤很简单,和启动mysql容器是一样的:Docker启动mysql。不过有个点需要注意,这里提醒一下:当Redis启动后发现连接不上,是因为Redis默认是不支持远程连接的,需要修改配置文件。执行如下命令,会发现只能本地连接,127.0.0.1连接root@iZuf6axmuekh1n14dwcufmZ:~# ps -ef |grep redis

2018-02-02 09:57:17 22268

原创 Docker---(7)Docker安装启动RabbitMQ

没接触过docker的可以参考这里:零基础学习Docker1.下载,安装,和启动RabbitMQ查找镜像docker search rabbitmq拉取镜像docker pull rabbitmq启动镜像docker run -d -p 15672:15672  -p  5672:5672  -e RABBITMQ_DEFAULT_USER=admin -e

2018-02-01 17:55:13 7066 1

原创 Docker---(6)问题:bash: vi: command not found

在使用docker时,有时候我们需要编辑配置文件,需要使用vim或者vi命令,但是会发现:root@76eb8d6dea73:/etc/rabbitmq# vi rabbitmq.confbash: vi: command not found这是因为vim没有安装,使用如下命令安装:apt-get install vim一般而言,又会出现如下问题:Reading

2018-02-01 17:17:34 30742 8

空空如也

IT云清的留言板

发表于 2020-01-02 最后回复 2020-01-17

空空如也

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

TA关注的人 TA的粉丝

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