自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 记一次排查mysql数据库连接未关闭问题的过程

在一些项目中由于一些特殊原因仍然保留着显示的获取数据库连接(Connection)、提交事务、回滚事务、关闭连接等操作;其中关闭连接是比较容易疏忽又比较难在前期发现的问题。我是如何排查连接未关闭的问题的? 首先还是提出3W:1.What?  数据库连接是应用服务器和数据库之间建立的tcp连接,在获取连接并进行操作后需要手动关闭以释放资源,就像是文件流一样,资源是有限的。2...

2019-09-02 17:56:00 1198

转载 使用Zookeeper实现分布式锁

利用Zookeeper临时节点(客户端异常断开连接后临时节点自动移除)或者Redis SETNX(set if not exists)(设置ttl)可以实现分布式锁,这里先利用zk实现一个1.启动zk2.代码实现  2.1 Maven引入zk & zk client    2.2 代码和注释import org.I0Itec.zkcl...

2019-07-19 09:52:00 123

转载 linux中安装docker

uname -ryum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ ...

2019-04-02 15:08:00 125

转载 Docker Windows

docker windows 操作和linux上稍有些差异,主要是在启动容器时的命令参数 和 端口映射。1.下载docker-toolboxhttp://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/2.安装我本机已有virtual box和git,这里无需勾选安装完成后,会出现...

2019-04-02 15:00:00 98

转载 MongoDB集群-主从复制(副本集)、failover

1.概念  主从复制的目的:数据冗余、备份、读写分离  主从方式:一主一从(不推荐,只能实现复制,主节点挂掉且未重新启动的时候,无法提升从节点为master),一主一从一裁判,一主多从  复制方式:主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。      复制/同步的是操作日志而...

2019-02-27 10:51:00 159

转载 MongoDB概念、安装和配置

1.概念分布式文档存储,高读写吞吐量,自动灾备,可伸缩。不需要遵守严格的数据schema意味着mongodb更灵活、更适合快速开发。2.安装  2.1 yum 安装    配置yum源      =      [mongodb-org-3.4]      name=MongoDB?Repository      bas...

2019-02-26 16:21:00 79

转载 私有框架简介

概述如下面的架构图所示:大额贷款架构主要分为三层,前端展示和后端服务分离,可单独部署;后端开放restful接口,前端通过http方式调用后端接口,同时使用jwt方式实现无状态的鉴权。主要组件  后端    Spring Boot      起步依赖      习惯大于配置    内嵌web容器      Tomcat, Jetty, U...

2018-12-19 16:17:00 102

转载 spring-boot集成8:集成shiro,jwt

Shrio是一个轻量级的,基于AOP 和 Servlet 过滤器的安全框架。它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权。JWT(JSON Web Token)是目前最流行的跨域身份验证解决方案,具有加密和自包含的特性。1.maven配置<!-- shiro --> <dependency>...

2018-12-14 16:27:00 129

转载 spring-boot集成6:集成redis实现字典缓存功能

Why redis?redis是基于内存的key-value系统,可以用作缓存中间件或者消息中间件,spring-boot提供了方便的方式和redis集成。1.maven依赖<!--redis--> <dependency> <groupId>org.springframework.bo...

2018-11-21 16:13:00 634

转载 spring-boot集成5:集成jrebel实现热加载

Why Jrebel?使用jrebel可以方便的实现spring-boot项目的热部署,直接reload更改的class,无需重启,提升开发效率。1.安装jrebel插件在idea中安装jrebel插件,安装完成后按提示重启idea2.激活jrebel激活方式参考 https://www.cnblogs.com/a8457013/p/7866625.h...

2018-11-21 14:21:00 112

转载 spring-boot集成4:集成mybatis,druid和tk.mybatis

Why mybatis?mybatis提供了ORM功能,相比于其他ORM框架,其需要编写更多的sql,也给了我们编写特殊/复杂sql和进行sql优化的机会。Why druid?Druid是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是目前最好的数据库连接池。 在功能、性能、扩展性方面,都超过其他数据库连接池,同时加入了日志监控, 可以很好的监控DB池连接和SQL的...

2018-11-21 13:52:00 203

转载 spring-boot集成2:集成lombok

Why lombok?lombok可以帮我们从实体类的getter、setter、constructor和toString等样板代码中解脱出来,使用lombok可以开发出更优雅的代码1.maven依赖<!--lombok--> <dependency> <groupId>org.proj...

2018-11-20 21:09:00 59

转载 spring-boot集成3:集成swagger

Why swagger?使用swagger让你从编写接口文档的无聊工作中解脱出来1.Maven依赖<!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId...

2018-11-20 21:09:00 92

转载 spring-boot集成1:起步

Why spring-boot?1. 创建独立的Spring应用程序2. 嵌入的Tomcat,Jetty和Undertow,无需部署WAR文件3. 通过starter依赖,简化Maven配置4. 自动配置Spring,以习惯大于配置的约定,减少样板配置5. 提供生产就绪型功能,如指标,健康检查和外部配置6. 绝对没有代码生成并且对XML也没有配置要求...

2018-11-20 21:08:00 85

转载 策略模式实现多种支付方式

使用策略模式优雅的实现多种支付方式(支付宝、微信),或者多种支付场景(订单、维修金)的业务,且方便扩展。下例是使用注解配合反射方式,扫描到所有的具体的支付策略并放到map集合中,然后根据前端传递来的支付类型参数,选择对应的支付策略,完成支付过程。如上图:PayStrategy是支付策略接口;OrderPay(订单支付),RepairPay(维修金支付)是具体的支...

2018-11-14 14:33:00 1717

转载 自定义切面实现记录系统操作日志

通过自定义spring aspect配合着注解的方式实现记录系统操作日志,代码侵入性低1.定义module注解,代表模块package com.yc.platform.admin.web.common.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Ret...

2018-10-29 14:08:00 411

转载 Spring Kafka

spring和kafka结合使用官方文档https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html#boot-features-amqp全量配置https://docs.spring.io/spring-boot/docs/current/re...

2018-10-29 13:47:00 81

转载 使用Keepalived实现Nginx高可用

Keepalived是一个路由软件,可以提供linux系统和linux系统上的组件的负载均衡和高可用,高可用基于VRRP(Virtual Router Redundancy Protocol,虚ip)实现1.准备两台服务器node1 192.168.0.240node2 192.168.0.2392.安装nginx和keepalived...

2018-10-26 13:17:00 85

转载 Centos7桥接网络、DNS、时间同步配置

Centos配置桥接网络、DNS服务和时间同步1.配置桥接网络2.配置虚拟机网卡,采用的是静态ip方式重启network服务3.配置dns4.关闭防火墙和selinux5.ping外网域名,已经可以了6.配置时间同步安装ntp服务启用ntpd服务启动ntpd服务设置时区为上...

2018-10-26 10:59:00 154

转载 Mysql查询优化

性能涉及的层面很多,但是在操作层面,主要有表结构设计优化、索引优化和查询优化查询的生命周期大致可以分为,从客户端、到服务端、在服务器上解析、生成执行计划、执行、返回结果给客户端sql执行流程 具体优化技巧1.消除外连接2.消除子查询尽量用join代替子查询,虽说mysql查询优化器会进行优化,但是我们...

2018-10-26 09:58:00 97

转载 自定义Spring-Boot @Enable注解

Spring-Boot中有很多Enable开头的注解,通过添加注解来开启一项功能,如其原理是什么?如何开发自己的Enable注解?1.原理以@EnableScheduling为例,查看其源码,发现添加了一个@Import注解继续查看@Import注解源码,发现其是由Spring提供的,用来导入配置类的,在配置类中定义的Bean(@Bean),可通过@Autowir...

2018-10-25 09:50:00 238

转载 Mysql事务特性

事务概念  事务可由一条sql或者一组sql组成。事务是访问并更新数据库中各种数据项的一个程序执行单元。  事务会把数据库从一种一致状态转换为另一种一致状态。在数据提交工作时,可以确保要么所有修改都已经保存了,要么所有修改都不保存。  事务需要满足ACID特性(不同厂商、mysql不同的存储引擎并非严格遵守ACID)。ACID特性  原子性(atomicity) ...

2018-10-23 17:02:00 107

转载 spring cloud依赖服务调用优化

1.请求缓存优点:注解方式实现:设置缓存key:如果可以确认,对要缓存的数据的操作,主要是写操作都只在feign调用中完成且读多写少,则可以使用此方式;如果在其他地方还有对数据的写操作,则可能会导致数据不一致;如果写多读少,则不会提高性能。2.请求合并优点:注解方式:注意:可以设置请求合并的s...

2018-10-23 15:47:00 258

转载 观察者模式

概述如果一个对象A的行为依赖另一个对象B的状态,我们可以有两种实现方式:一种是对象A轮询对象B的状态,根据轮询结果决定自己的行为;另一种是对象B在自身状态发生改变时,主动通知对象A。不难看出,第二种凡是会比第一种方式效率高,观察者模式即采用第二种方式,观察者模式可以用于事件监听、通知发布等场合。可以确保观察者在不使用轮询监控的情况下,及时收到相关消息和事件。类图...

2018-09-14 13:28:00 132

转载 Netty入门实例

通过代码和代码中的详细注释,可以对Netty有个入门的了解TimeServer(初始化服务,绑定端口,指定IO handler) 1 import io.netty.bootstrap.ServerBootstrap; 2 import io.netty.channel.ChannelFuture; 3 import io.netty.channel.ChannelI...

2018-09-14 12:31:00 130

转载 FileChannel原理

官方对Channel的解释(一个用于输入/输出操作的连接。通道表示对实体的开放连接,如硬件设备、文件、网络套接字或能够执行一个或多个不同的输入/输出操作的程序组件,例如读取或写入。)Thanking In Java中的描述Channel是对I/O操作的封装。FileChannel配合着ByteBuffer,将读写的数据缓存到内存中,然后以批量/缓存...

2018-09-13 16:48:00 170

转载 Flume HA

flume提供fail over和load balance功能1.添加collector配置(配置两个collector)# Name the components on this agents1.sources = r1s1.sinks = k1s1.channels = c1# Describe/configure the sources1.sources.r1.type...

2018-09-13 12:16:00 132

转载 Flume采集日志

角色Source 数据来源 (exec, kafka, http…)Channel 数据通道 (memory,file,jdbc)Sink 数据目的地 (kafka,hdfs,es…) Agent 代理,负责从source中采集数据,发送给collectorCollector 收集者,收集agent发来的数据上传到outer storage,可以设置load balanc...

2018-09-13 12:15:00 145

转载 Scrapy入门

转载于:https://www.cnblogs.com/zhya/p/9639823.html

2018-09-13 12:13:00 41

转载 Kafka集群搭建和配置

Kafka配置优化https://www.jianshu.com/p/f62099d174d91.安装&配置下载tar包解压后即可使用修改配置文件将server.properties复制和修改为三个配置文件(为启动3个kafka服务做准备)设置broker.id,集群中各节点的标识,要求不重复绑定端口和...

2018-09-13 12:11:00 103

转载 Redis哨兵配置

转载于:https://www.cnblogs.com/zhya/p/9639811.html

2018-09-13 12:10:00 72

转载 Centos7安装kubernetes

Kubernetes官网提供的安装指引使用的google的yum源,正常情况下无法使用,这里使用阿里的yum源来安装。参考这2篇博客https://blog.myzony.com/centos-7-4-an-zhuang-k8s-v1-11-0-ji-qun-suo-yu-dao-de-wen-ti/https://www.cnblogs.com/Leo_wl/p/85119...

2018-09-13 12:07:00 56

转载 Java8新特性

准备先看2个例子1.筛选集合中年龄大于20的用户的用户名列表,并输出1 // 初始化集合2 List<User> users = Arrays.asList(3 new User("周一", 20),4 new User("吴二", 25),5 ...

2018-09-12 16:24:00 104

转载 Java代码优化

用到的时候再定义(懒加载)如上图中,获取(定义)isEnable的值的代码应该紧跟着放在判断(使用)isEnable的代码块的上面。一者如果smsRecordList为空,则程序直接返回,isEnable不会被使用,白白的浪费了部分栈空间(内存);二者避免提前占用栈空间,内存占用过高会影响性能。延迟操作数据库如上图中,第二块标记的代码应该放在第一块标...

2018-09-12 10:47:00 100

转载 Java线程安全

Java线程安全使用多线程可以在一定程度上提高程序性能(并非绝对),但随之而来的线程安全问题却无法忽略,了解线程安全的基本概念和常用解决方式,以及jdk提供的并发包,会帮助日常工作中更好的发现和处理线程安全问题。并发和并行并行指的是多个线程或者进程在同一时刻同时执行;并发则是由cpu调度,交替执行。单核cpu一个时刻只能执行一条指令,在单核cpu上的多线程是由cpu调...

2018-09-11 16:04:00 82

空空如也

空空如也

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

TA关注的人

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