自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot自定义Starter

自定义starterstarter场景启动器,pom.xml中加入直接使用//声明是一个配置类@Configuration//在制定条件下配置生效@ConditionalOnClass//指定自动配置类的顺序@AutoConfigureOrder//容器中增加组件@Bean//结合相关xxxProperties类来绑定相关配置@ConfigurationProperties//让xxxProperties生效加入到容器中@EnableConfigurationProperties

2020-12-01 22:09:05 160

原创 SpringBoot链接RabbitMQ错误 Failed to instantiate [com.rabbitmq.client.Connection]

错误Failed to instantiate [com.rabbitmq.client.Connection]: Factory method ‘mqConnectionSeckill’ threw exception; nested exception is java.io.IOException原因当前用户没有访问权限设置权限rabbitmq配置错误没有配置rabbitmq.virtual-host = / 写成了rabbitmq.virtual-host=#Rabbitmq配置

2020-10-21 21:17:28 1167 1

原创 Java并发编程 死锁的排查

死锁代码两个线程获取锁的顺序不同就会互相等待,形成死锁public class DeadLock { public static void main(String[] args) { String lock1 = "lock1",lock2 = "lock2"; new Thread(new DeadLockDemo(lock1,lock2),"A").start(); new Thread(new DeadLockDemo(lock2,lock1

2020-09-25 20:15:07 226

原创 Java JUC并发编程 (线程状态 / ReentrantLock / CopyOnWriteArrayList / ConcurrentHashMap / 常用集合类)

文章目录java.util.concurrent线程六种状态java.util.concurrent.locksReentrantLockLocks 和 Synchronized区别集合类不安全List集合VectorCollections.synchronizedListCopyOnWriteArrayList性能比较HashMapHashTableCollections.SynchronizedMapConcurrentHashMap常用集合类CountDownLatchCyclicBarrierSem

2020-09-24 16:13:43 250

原创 Kafka Java API使用 / 结合springboot

文章目录Kafka 结合Java APIpom拦截器TimeInterceptorCounterInterceptor生产者消费者Kafka 结合SpringBootpom.xml 和 application.properties生产者消费者SpringBoot启动程序Kafka 结合Java APIpom<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clie

2020-09-21 22:21:40 333

原创 Kafka 生产者 / 消费者

生产者数据可靠性数据同步生产者将数据发送给leader,leader和follower都是副本半数以上完成返回ACK:优点低延迟,缺点,选举新的leader时容忍n个服务器故障,最少需要2n+1个副本(保证半数以上服务器有数据,剩下的n+1台中至少有一台有数据)全部完成返回ACK:优点,容忍n台故障,只需要n+1台,缺点是延迟高为了减少数据冗余,Kafka选择全部信息同步后才发送ACK,使用较少的服务器。ISR(In-sync replica set)防止数据同步时,存在某个服务器

2020-09-21 17:02:15 194

原创 Kafka快速入门(Zookeeper伪集群 / Kafka伪集群搭建 / Kafka基本操作-topic-生产者-消费者)

文章目录Kafka 入门ZooKeeper伪集群配置文件启动集群Kafka伪集群配置文件启动集群Kafka基本操作Topic操作生产者 / 消费者Kafka 入门Kafka 是一个分布式的基于发布/订阅的消息队列,常用于:异步处理:先将任务放入队列,返回消息,之后在慢慢处理流量削峰(秒杀):不用将所有的访问都到达数据库,只需要最前面的几条数据即可解耦:降低耦合度,互不影响两种模式:点对点模式:生产者消费者一一对应发布/订阅模式:一个生产者可以有多个消费者多个Broker组成K

2020-09-20 16:51:43 365

原创 Docker 搭建Redis集群 / SpringBoot 项目打包到Docker

Redis集群创建集群自定义Redis网络docker network create redisNet --subnet 193.168.0.0/16创建配置文件for port in $(seq 1 6);\do \mkdir -p /home/myredis/dataSync/node-${port}/conftouch /home/myredis/dataSync/node-${port}/conf/redis.confcat <<EOF > /home/myre

2020-09-17 15:51:13 279

原创 Docker 容器间通信 / 自定义网络 / 网络连通

Docker 网络进入自己写的tomcat docker exec -it mytomcat /bin/baship addr查看容器网络地址,会发现容器的到一个eth0@if53的ip地址,是docker 分配的linux 虚拟机上ping tomcat容器ping 172.17.0.3linux 可以ping 通容器的ip地址原理:每启动一个docker容器,docker 就会给docker容器分配一个ip,只要安装了docker,就会有一个网卡 docker0 通过桥接模

2020-09-16 22:23:01 708

原创 Redis 集群 / 主从复制 / 哨兵模式

文章目录Redis 集群Redis主从复制环境搭建主从设置哨兵模式测试哨兵哨兵模式全部配置Redis 集群Redis主从复制一台服务器master,多台服务器slave。只能从主节点复制到从节点。百分之八十都是读操作,因此从机读,主机写。最少三台主机,一主二从,保证集群搭建成功环境搭建只需要配置从库不需要配置主库,因为默认都是主库,需要三个配置文件搭建伪集群。端口port 6379pid名字pidfile /var/run/redis_6379.pidlog文件logfile "6

2020-09-16 22:10:23 229

原创 Redis 事务 / 乐观锁 / 持久化

Redis事务开启事务之后,进行命令入队,但是命令没有执行,只是等待,直到执行exec时才会执行开启事务multi命令入队执行事务execdiscard 清空队列,放弃事务Redis单条指令保证原子性,但是事务不保证原子性执行时错误:语法没有问题,但是不能对字符串执行➕1操作,只有这一句出错,其他语句正常执行。127.0.0.1:6379> flushdbOK127.0.0.1:6379> set k1 "v1"OK127.0.0.1:6379> mu

2020-09-16 19:29:14 106

原创 Swagger 简单入门 SpringBoot集成 / 接口测试

文章目录SwaggerSpringBoot 集成Swagger配置Swagger配置API文档的分组Swagger测试SwaggerAPI框架RestFul API文档在线自动生成工具,API文档与API定义同步更新直接运行,可以在线调试API接口支持多种语言(Java,PHP)SpringBoot 集成Swagger注入依赖<!--swagger依赖,界面--><dependency> <groupId>io.springfox</grou

2020-09-14 22:29:11 214

原创 MyBatisPlus 快速入门

文章目录快速入门配置日志CURD扩展Insert 分布式系统唯一ID生成自动填充乐观锁分页查询快速入门MyBatisPlus可以节省大量工作时间,所有CRUD操作可以自动完成1、创建数据库mybatis_plus2、创建user表真实开发中,还需要version(乐观锁)、deleted(逻辑删除)、gmt_create(创建时间) gmt_modified(修改时间)DROP TABLE IF EXISTS user;CREATE TABLE user( id BIGINT(20) N

2020-09-14 19:35:24 292

原创 Docker精髓 容器数据卷 / DockerFile

文章目录容器数据卷数据卷命令MySQL开启同步匿名/具名挂载数据卷容器DockerfileDockerFile步骤指令介绍构建自己的Centos容器数据卷容器中的数据会跟随容器的删除而删除,为了保证容器中的数据持久化,需要数据可以存储到本地,例如MySQL。容器数据卷就是容器之间的数据共享技术,Docker容器中产生的数据同步到本地。卷技术就是将容器内的目录挂载到Linux上。数据卷命令docker run -it -v 主机目录,容器内目录同步centos中的 /home 到主机的 /hom

2020-09-11 12:18:24 152

原创 Docker 安装Tomcat / ElasticSearch 镜像分层原理

Tomcat一般用--rm进行测试,用完就会删除docker run -it --rm tomcat:9.0docker pull tomcat:9.0docker run -d -p 8080:8080 --name mytomcat tomcat测试访问hadoop101:8080出现404进入容器docker exec -it mytomcat /bin/bashwebapps下目录为空,将webapps.dist中文件复制到webapps中cp -r webapps.d

2020-09-09 20:06:36 109

原创 Docker入门概述/安装和删除/工作流程/常用命令

文章目录Docker 概述架构Docker安装/删除Docker工作流程底层原理Docker为什么比VM快?HelloWorld流程Docker常用命令帮助命令镜像命令容器命令新建容器并启动其他常用命令Docker 概述目的:开发项目,服务器配置应用环境例如Redis,jdk,MySQL,jdk,ES,Hadoop等,但是配置比较麻烦,不能够跨平台使用,通过docker直接搞定所有的配置和环境。通过下载Docker仓库中的镜像,可以直接运行。Docker对应用打包装箱,相互隔离没有避免产生冲突。作用

2020-09-09 13:54:09 150

原创 Curator Java API创建/删除/修改/查看节点 监听器 分布式锁机制

创建对象//创建链接对象CuratorFramework curatorFramework = CuratorFrameworkFactory.builder() //IP地址端口号 .connectString("hadoop102:2181") //会话超时事件 .sessionTimeoutMs(5000) //重连机制(3s重连一次) .retryPolicy(new RetryOneTime(300

2020-09-07 22:10:07 646

原创 ZooKeeper 案例(配置中心/分布式锁/分布式唯一ID)

配置中心案例场景: 数据库用户信息密码放在一个配置文件中,应该读取配置文件信息,放入缓存。信息改变时需要重新加载,通过ZooKeeper 自动完成缓存同步。连接zookeeper服务器读取zookeeper中的配置信息,注册watcher监听器,存入本地变量当zookeeper中的配置信息发生变化时,通过watcher的回调方法捕获变化事件重新获取配置信息public class AutoSyncConfigInfo { private String username; p

2020-09-05 20:58:30 204

原创 ZooKeeper Watcher事件监听机制

文章目录watcher架构注册watcher客户端与服务器的连接状态检查节点exists方法getData方法getChildren方法watcher架构watcher实现由三个部分组成zookeeper服务端zookeeper客户端客户端的ZKWatchManager对象客户端首先将 Watcher注册到服务端,同时将 Watcher对象保存到客户端的watch管理器中。当Zookeeper服务端监听的数据状态发生变化时,服务端会主动通知客户端,接着客户端的 Watch管理器会**触发相关

2020-09-04 19:21:27 433

原创 ZooKeeper Java API 使用(连接/创建/删除/修改/查看子节点)

文章目录Java 连接 zookeeper1.pom.xml2 操作连接zookeeper创建节点同步异步更新节点删除节点查看节点/判断是否存在Java 连接 zookeeper1.pom.xml加入zookeeper和zkClient依赖,zookeeper本身自带问题:ZooKeeper的Watcher是一次性的,用过了需要再注册;session的超时后没有自动重连,生产环境中如果网络出现不稳定情况,那么这种情况出现的更加明显;没有领导选举机制,集群情况下可能需要实现stand by,一个

2020-09-04 15:45:24 1414

原创 ZooKeeper分布式系统 && 客户端命令

1. 分布式安装部署分发安装包xsync zookeeper-3.4.14配置服务器编号创建zkDatamkidr -p zkData创建一个myid文件,并写入服务器号2touch myidvi myid---2分发到其他服务器,修改其他服务器的编号xsync myid配置zoo.cfg文件在配置中增加服务器信息vi zoo.cfg---#######################cluster########################## server

2020-09-03 14:47:11 127

原创 Zookeeper入门 Centos系统中安装启动 && 内部原理

ZookeeperZooKeeper是一个集中的服务,用于维护配置信息、命名、提供分布式同步和提供组服务。zookeepepr是一个经典的分布式数据一致性解决方案,致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调存储服务。应用场景维护配置信息:上千台服务器的配置信息维护,来保证配置信息的一致性。分布式锁:多台服务器运行同一个任务时,高并发和可靠性需要通过分布式锁来保证。集群管理:将服务器集群的信息通知给客户端,告知服务器情况生成唯一分布式ID:数据库分库分表后a

2020-09-02 17:12:32 93 1

原创 Hadoop完全分布式 运行MapReduce

文章目录Hadoop完全分布式1.虚拟机集群准备2.集群分发脚本3. 集群配置3.1集群部署规划3.2配置集群核心文件core-site.xmlHDFS配置YARN配置MapReduce配置4.集群单点启动5. ssh免密登陆6. 群起集群配置slaves6.集群启动/停止方式逐一启动分模块启动Hadoop完全分布式1.虚拟机集群准备修改主机名vi /etc/sysconfig/network 物理地址和ipvi /etc/sysconfig/network-scripts/ifcfg-eth0

2020-09-01 21:59:10 304

原创 Hadoop伪分布式 启动HDFS&YARN运行MapReduce

文章目录伪分布式1 启动HDFS并运行MapReduce1.1 配置配置hadoop-env.shcore-site.xmlhdfs-site.xml1.2 启动集群传输文件格式化流程NameNode问题logs日志信息2 启动YARN运行MapReduce配置yarn-env.shyarn-site.xml配置mapred-env.shmapred-site.xml启动集群集群操作3 配置历史服务器mapred-site.xml配置日志集群配置yarn-site.xml伪分布式服务器配置按照完全分布式

2020-08-15 21:58:06 2085

原创 Hadoop本地模式

文章目录本地模式Grep官方案例WordCount案例本地模式Grep官方案例hadoop-2.7.2中新建文件mkdir input将/etc/hadoop目录下所有*.xml拷贝到input文件中cp etc/hadoop/*.xml input/运行grep命令筛选出复合规则的结果,将input文件夹内容作为输入,根据exanples里的程序将结果复合正则表达式‘dfs[a-z.]+’的.output文件夹在运行前如果存在会报错,目标文件已存在错误hadoop jar sha

2020-08-15 15:23:01 156

原创 CentOS 配置 Hadoop

安装华中科技大学开源镜像站下载linux软件包hadoop镜像资源通过SFTP从MacOS拷贝到CentOS上将opt文件改为777权限否则从mac向linux传输会失败,但是可以从linux 向mac上传输chmod -R 777 opt安装JDK和HadoopJDK解压 tar -C选择目标目录解压tar -zxvf jdk-8u191-linux-x64.tar.gz -C /opt/module/sudo vi /etc/profile------最后一行加

2020-08-14 10:34:45 97

原创 SpringBoot整合RabbitMQ(AmqpAdmin)

文章目录SpringBoot中使用RabbitMQ1 环境2 hello world 模型3 WorkQueues4 Publish/Subscribe5. Routing模式6 Topic动态路由(通配符)AmqpAdmin-RabbitMQ组件管理SpringBoot中使用RabbitMQRabbitMQ总共6种模型“Hello World!”、Work Queues、Publish/Subscribe、Routing、Topics、RPC通过@RabbitListener来对队列进行监听,@En

2020-08-06 00:50:24 1125

原创 SpringBoot Cache学习

文章目录Cache1.创建SpringBoot项目配置文件对象数据库BooksMapperBooksController2. 使用缓存使用缓存中的注解@Cacheable@Cacheable不起作用原因原理-运行流程@CachePut@CacheEvict@CacheConfig3. Redis配置Redis操作自己写RedisConfig缓存管理CacheManagerCache1.创建SpringBoot项目配置文件spring: datasource: password: roo

2020-08-04 21:22:36 158

原创 SpringBoot配置原理(源码流程)

SpringBoot启动配置原理几个重要的事件回调机制配置在META-INF/spring.factoriesApplicationContextInitializerSpringApplicationRunListener只需要放在ioc容器中ApplicationRunnerCommandLineRunner启动流程创建SpringApplication对象运行run方法...

2020-08-02 14:49:41 100

原创 SQL 锁机制

文章目录SQL 锁机制表锁读锁写锁分析表锁定行锁行锁分析SQL 锁机制表锁读锁(共享锁):对同一个数据,多个读操作可以同时进行,互不干扰写锁(互斥锁):如果当前写操作没有完毕,则无法进行其他操作操作范围:表锁:一次对整个表加锁,MyISAM存储引擎使用表锁。开销小、加锁块、无死锁。容易发生锁冲突,并发度低。行锁:一次对一条数据加锁,InnoDB使用行锁,开销大、加锁慢、容易出现死锁。锁范围小,并发度高,不易发生锁冲突。读锁会话:每一个访问数据的dos命令行、数据库客户端工具,都是一

2020-07-16 10:41:55 1082

原创 SQL优化--索引优化/日志查询

文章目录SQL优化1 SQL语句2 索引2.1 索引弊端2.2 索引分类2.3 索引操作2.4 EXPLAIN解读select_type查询类型type索引类型possible_keys & key & key_lenref栏rowExtra额外信息3 优化语句3.1 单表优化3.2 多表优化3.3 原则总结3.4 其他优化方法4 SQL排查4.1 慢查询日志4.2 profiles查询海量日志SQL优化原因:性能低、执行时间长、等待时间长、SQL语句较差(连接查询)、索引失效、服务器参

2020-07-15 12:13:45 291

原创 MySQL索引 (Hash表和B-Tree比较)(MyISAM和InnoDB比较)

索引数据结构索引是帮助MySQL高效获取数据的排好序的数据结构Hash表 和 B-Tree 比较Hash通过对索引的hash快速获取地址值直接获取数据,在对索引的查询效率上高于B-TreeHash表通过List和红黑树对数据进行查询IO查询次数上方面:红黑树是二叉树,数据量大的情况下,树的层数高于B-Tree。使用Hash存取结构,会导致IO次数过高,而B-Tree只需要很少的查询次数。数据量很少的时候:Hash查找只是查找单个值,但是数据库查找离不开范围查找,例如select * from

2020-07-12 16:58:55 228

原创 SpringBoot数据库链接(Druid&Mybatis)

SpringBoot数据库链接Druid连接池直接在yml中配置相关内容即可spring: datasource: username: root password: root.123 url: jdbc:mysql://localhost:3306/library?useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver #直接指定DataSource type: com.alibab

2020-07-06 17:34:17 218

原创 SpringBoot-Web项目实例

文章目录SpringBoot-Web项目实例1 项目结构2 [国际化]语言切换配置通过按钮切换信息3 登陆&拦截器登陆重定向&拦截器4 CRUD-员工列表4.1 RestfulCRUD4.2 访问员工列表thymeleaf公共页面抽取链接高亮修改表格内容,增加按钮4.3 添加员工页面页面表单4.4 员工修改4.5 员工删除5 错误处理5.1 错误处理原理5.2 自定义错误页面SpringBoot-Web项目实例1 项目结构加入Dao层,和实体对象加入静态资源css、img、js进

2020-07-05 16:46:03 1080

原创 SpringBoot与Web开发(thymeleaf&servlet)

文章目录SpringBoot与Web开发1 SpringBoot对静态资源的映射规则SpringBoot与Web开发1 SpringBoot对静态资源的映射规则该类对web项目进行自动配置public class WebMvcAutoConfiguration {}其中的方法addResourceHandlers对资源进行获取@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) { if (!t

2020-07-02 14:34:36 354 1

原创 SpringBoot日志slf4j和log4j原理

文章目录SpringBoot日志日志介绍SLF4j使用SpringBoot日志SpringBoot日志日志介绍日志抽象层日志实现JCL(Jakarta Commons Logging), SLF4j(Simple Logging Facade for Java ), jboss-loggingLog4j JUL Log4j2 Logback使用日志时,选用日志抽象层slf4j,实现选用logback。SLF4j使用开发使用日志记录方法的调用,不应该直接调用日志的实现类,

2020-07-01 15:54:43 882

原创 SpringBoot配置文件properties&yml

文章目录SpringBoot配置文件1 YAMLYAML语法配置文件注入2 注解讲解@Value@ConfigurationProperties和@Value比较@PropertySource,@ImportResource和@Configuration3 Profile文件多Profile文件yml支持使用多文档块方式4 配置文件加载位置5 自动加载顺序6 使用精髓SpringBoot配置文件SpringBoot使用一个全局配置文件,文件名固定:application.propertiesapp

2020-07-01 11:12:05 483

原创 SpringBoot入门

Spring Boot入门SpringBoot优点:快速独立运行Spring项目,以及主流框架集成使用嵌入式Servlet,无需打成war包starters自动依赖和版本控制大量自动配置,简化开发,可以修改默认值无需配置XML,无代码生成,开箱即用云计算天然集成准生产环境的运行时应用监控HelloWorld测试springboot结构static存放静态资源如:js,css,imagestemplates:保存所有模板页面application.properties: 配置

2020-06-29 22:02:16 87

原创 RabbitMQ+Spring配置

pom.xml<dependencies> <!--rabbitmq--> <dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>2.2.7.RELEASE</version>

2020-06-29 18:47:14 191

原创 RabbitMQ 消息确认机制(事务&confirm)

消息确认机制生产者将消息发送出去后,是否到达rabbitmq服务器默认不知道,通过两种方式,AMQP实现了事务机制和Confirm模式。事务机制使用协议,但是降低了rabbitmq的消息吞吐量txSelect:当亲啊channel设置成transaction模式txCommit:提交事务txRollback:回滚事务public class TxProduct { private static final String QUEUE_NAME = "test_queue_tx";

2020-06-28 21:40:03 249

空空如也

空空如也

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

TA关注的人

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