自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 API 接口应该如何设计?如何保证安全?如何签名?如何防重?

说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢? 下面我们就来讨论下常用的一些API设计的安全方法,可能不一定是最好的,有更牛逼的实现方式,但是这篇是我自...

2020-06-16 17:17:39 77 0

转载 Spring常用注解(收藏大全)

Spring部分 1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller 在展现层使用,控制器的声明(C) 2.注入bean的注解 @Au...

2020-06-13 21:10:28 59 0

原创 高并发的核心技术-幂等的实现方案

一、背景 我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。 例如: 1. 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 2. 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 3. 发送消息,也...

2020-06-13 21:03:50 44 0

转载 可视化界面在线生成JVM参数

在线生成JVM参数配置 网址:http://jvmmemory.com 堆参数设置 -XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志。 -XX:+PrintGCDetails 可以查看详细信息,包括各个区的情况 -XX:+PrintHe...

2020-06-13 20:15:14 33 0

转载 SpringBoot整合redisson实现分布式锁

通过 SpringBoot 整合 redisson 来实现分布式锁,并结合 demo 测试结果。 首先看下大佬总结的图 来源:https://www.cnblogs.com/qdhxhz/p/11046905.html 正文 增加依赖 <!--redis-->...

2020-06-13 20:00:00 123 0

转载 如何选择分布式事务解决方案?

概述 事务是一组不可分组的操作集合,这些操作要么都成功执行,要么都取消执行。最典型的需要事务的场景是银行账户间的转账:假如 A 账户要给 B 账户转账 100 元,那么 A 账户要扣减 100 元,B 账户要增加 100 元,这两个账户的数据变更都成功才可算作转账成功。更严格来说,可以用 A...

2020-06-10 11:23:49 72 0

原创 开源项目

1.pig 开源地址:https://gitee.com/log4j/pig 基于Spring Cloud、OAuth2.0、Vue的前后端分离的系统。 通用RBAC权限设计及其数据权限和分库分表 支持服务限流、动态路由、灰度发布、 支持常见登录方式, 多系统SSO登录, 提供配套视频开发教程...

2020-06-07 10:52:18 191 0

转载 简单谈谈什么是Hystrix,以及SpringCloud的各种超时时间配置效果,和简单谈谈微服务优化

1. 前言(以下的springcloud版本是Dalston.RC1) 以下的springcloud版本是Dalston.RC1 Springcloud框架中,超时时间的设置通常有三个层面: zuul网关 #默认1000 zuul.host.socket-timeout-millis=20...

2020-05-19 15:04:42 140 0

转载 SpringCloud | FeignClient和Ribbon重试机制区别与联系

目录 1.FeignClient 重试机制分析 2.Ribbon重试机制分析 3.FeignClient 和 Ribbon重试区别与联系 3.1 一个http请求,如果feign和ribbon都配置了重试机制,异常情况下一共会请求多少次? 在spring cloud体系项目中,引入的...

2020-05-19 14:39:43 94 0

原创 linux jar 启动shell 脚本

linux jar 启动shell 脚本 run.sh #! /usr/bin/bash usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" exit 1 } is_exist(){ ...

2020-05-07 10:30:56 49 0

转载 Eureka工作原理

Eureka 工作原理 上节内容为大家介绍了,注册中心 Eureka 产品的使用,以及如何利用 Eureka 搭建单台和集群的注册中心。这节课我们来继续学习 Eureka,了解它的相关概念、工作流程机制等。 Eureka 作为 Spring Cloud 体系中最核心、默认的注册中心组件,研究它...

2020-05-06 21:30:55 157 0

转载 Spring注解@Resource和@Autowired区别对比

https://www.cnblogs.com/think-in-java/p/5474740.html @Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是...

2020-05-05 20:47:34 31 0

原创 Redis集群方式

Redis集群方式共有三种:主从模式,哨兵模式,cluster(集群)模式 1.主从模式 主从模式:是三种集群方式里最简单的。它主要是基于Redis的主从复制特性架构的。通常我们会设置一个主节点,N个从节点;默认情况下,主节点负责处理使用者的IO操作,而从节点则会对主节点的数据进行备份,并且也...

2020-05-05 20:22:04 64 0

转载 JAVA序列化和反序列化的底层实现原理

一、基本概念 1、什么是序列化和反序列化 (1)Java序列化是指把Java对象转换为字节序列的过程,而Java反序列化是指把字节序列恢复为Java对象的过程; (2)**序列化:**对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节...

2020-05-05 17:38:23 73 0

转载 TCP的三次握手与四次挥手详解

CP的传输如图: TCP三次握手的过程如下: 建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发。 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连...

2020-05-05 17:03:26 59 0

转载 Zookeeper——一致性协议:Zab协议

1.什么是Zab协议 1.1什么是Zab协议? Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播)。Zookeeper 是通过 Zab 协议来保证分布式事务的最终一致性。 Zab协议是为分布式协调服务Zookeeper专门设计的一种...

2020-05-05 17:02:11 85 0

转载 zookeeper和kafka的Leader Election算法

一、zookepper Leader Election 主要有两种方法: (1)抢注Leader节点-----非公平模式 (2)先到先得,后者监听前者-----公平模式 (1)抢注Leader节点-----非公平模式 1.创建Leader父节点,如/chroot,并将其设置为persist...

2020-05-05 16:57:02 54 0

转载 Redis数据过期策略详解

本文对Redis的过期机制简单的讲解一下   讲解之前我们先抛出一个问题,我们知道很多时候服务器经常会用到redis作为缓存,有很多数据都是临时缓存一下,可能用过之后很久都不会再用到了(比如暂存session,又或者只存放日行情股票数据)那么就会出现一下几个问题了 Redis会自己回收清理不用的...

2020-05-05 16:54:47 35 0

转载 spring boot应用另一个jar包中的mybatis的mapper文件遇到的坑

被引用的包,因为的mapper.xml不在resources下面,需要把它打进jar包 在pom.xml中加如下代码(https://blog.csdn.net/u011781521/article/details/79052725) <build> <plugins...

2020-05-03 17:09:20 242 0

原创 git 如何恢复到指定版本

查看git的提交版本和id 拿到需要恢复的版本号    命令:git log  git log退出方法 英文状态下按Q   2. 恢复到指定版本    命令:git reset --hard44f994dd8fc1e10c9ed557824cae50d1586d0cb3 //后面这一大串44...

2020-05-03 17:03:08 50 0

转载 LINUX修改DNS方法

搭建环境的时候,有时候会遇到服务器之间ping不通,有可能是DNS地址的问题,导致不在统一网段。此时就要把测试服务器改成统一的DNS服务器地址了 一、DNS的临是修改。(重启后失效) vim /etc/resolv.conf //打开resolv.conf 文件 改为如下内容: namese...

2020-04-30 20:47:16 116 0

转载 Linux DNS客户端解析域名慢的问题

Linux DNS客户端解析域名慢的问题 DNS客户端解析域名慢的问题 Linux系统下域名解析的配置文件是/etc/resolv.conf ]#cat /etc/resolv.conf # Generated by NetworkManager options single-req...

2020-04-30 20:45:32 271 0

转载 深究Spring中Bean的生命周期

https://www.cnblogs.com/javazhiyin/p/10905294.html

2020-03-23 22:15:18 39 0

原创 quartz 数据库表含义解释

一、表信息解析: 1.1.qrtz_blob_triggers : 以Blob 类型存储的触发器。 1.2.qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。 1.3.qrtz_cron_triggers:存放cron类型的触发器。 1.4.qrtz_f...

2020-03-04 17:46:50 92 0

转载 线程池源码解析之FutureTask

一、简介 1. 类继承关系 FutureTask类图 2. 状态 private volatile int state; private static final int NEW = 0; private static final int COMPLETING ...

2020-02-24 11:48:47 36 0

原创 idea设置统一编码风格

1、代码模板:Code Templates设置 现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范。俗话说约定优于配置,但是在执行过程中往往发现效果不是很好(主要是指编码规范这一方面)。所以我们不得不采取一些措施来协助我们统一项...

2019-11-21 17:35:49 414 0

原创 网站跨域解决方案

目录 1. 网站跨域解决方案 1.1 什么是网站跨域 1.2 五种网站跨域解决方案 1.2.1 使用JSONP解决网站跨域 1.2.2 使用设置响应头允许跨域 1.2.3 使用HttpClient进行内部转发 1.2.4 搭建企业级API接口网关 1.2.5 使用SpringClo...

2019-11-07 15:06:10 194 0

转载 并发编程之AQS,CountDownLatch、CyclicBarrier和Semaphore(九)

目录 1.AQS(AbstractQueuedSynchronizer)抽象队列同步器 2. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore CountDownLatch(计数器)-人全走了再吃饭 CyclicBarrier(屏障)-人都到了...

2019-11-03 11:06:35 72 0

原创 JDK提供的原子类原理及使用(十一)

1.为什么会有原子类 CAS:Compare and Swap,即比较再交换。 jdk5增加了并发包java.util.concurrent.*,其下面的类使用CAS算法实现了区别于synchronouse同步锁的一种乐观锁。JDK 5之前Java语言是靠synchronized关键字保证同步...

2019-11-02 12:26:48 131 0

原创 并发编程之锁(十)

目录 1.锁信息 1.锁信息存在对象的什么地方 2.synchronized保证线程安全的原理 2.Java中的锁分类 1.公平锁/非公平锁 2.可重入锁 3.偏向锁/轻量级锁/重量级锁 4.自旋锁 5.独享锁/共享锁 6.互斥锁/读写锁 7.乐观锁/悲观锁 8.分段锁 ...

2019-11-02 11:58:23 42 0

转载 windows下安装logstash-input-jdbc

1.打开logstash文件夹下该目录,如下所示路径: 2.更改其sources路径: 3.将其路径更改如下所示,改成https://gems.ruby-china.org. 此前安装步骤请看之前的博文。 该目录里面有该logstash里面的input和output输入输出目录如下图所示:...

2019-10-11 13:47:43 50 0

转载 elasticsearch集群搭建-windows

1、下载elasticsearch到本地并解压 下载地址: https://www.elastic.co/cn/downloads/elasticsearch 解压之后复制两份,node1当作主节点,node2、node3当作从节点 2、修改主节点配置文件 而我们只需要修改 /co...

2019-10-11 13:46:48 22 0

转载 Kafka Stream(五)

本文转发自技术世界,原文链接 http://www.jasongj.com/kafka/kafka_stream/ Kafka Stream背景 Kafka Stream是什么 Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature。它是提供了对存储于Ka...

2019-09-02 15:59:04 100 0

原创 kafka之消费者(四)

Pull vs. Push Producer Producer通过主动Push的方式将消息发布到Broker Consumer Consumer通过Pull从Broker消费数据 Push 优势:延时低 劣势:可能造成Consumer来不及处理消息;网络拥塞 Pull 优...

2019-08-29 20:43:54 53 0

原创 Kafka如何使用Zookeeper(三)

Zookeeper是一个高性能分布式应用协调服务 Zookeeper工作方式 1. Zookeeper集群包含1个Leader,多个Follower。 2. 所有的Follower都可提供读服务 3. 所有的写操作都会被forward到Leader 4. Client与...

2019-08-29 15:42:46 263 0

转载 kafka的高可用(二)

摘要   Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢失。而Kafka的设计目标之一即是提供数据持久化,同时对于分...

2019-08-25 18:46:40 76 0

原创 Kafka简介(一)

Kafka简介 Kafka是一种分布式流平台(a distributed streaming platform),基于发布/订阅的消息系统。主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率。即使在非常廉价的商用机器上...

2019-08-25 18:07:50 184 0

原创 源码解析(3)之SpringMVC

SpringMVC原理 SpringMVC的运行流程 ⑴ 用户发送请求至前端控制器DispatcherServlet ⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。 ⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器...

2019-08-22 21:06:12 60 0

原创 源码解析(2)之SpringIOC

什么是SpringIOC spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring来管理这些,实现解耦 SpringIOC原理 使用反射机制+XML技术 手写SpringIOC 手写SpringIOC之XML版本 /...

2019-08-22 20:49:33 35 0

原创 源码解析(1)-手写Spring事务框架

编程式事务控制 自己手动控制事务,就叫做编程式事务控制。 Jdbc代码: Conn.setAutoCommite(false); // 设置手动控制事务 Hibernate代码: Session.beginTransaction(); // 开启一个事务 【细粒度的事务控制: 可以对指...

2019-08-22 20:25:28 55 0

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