自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

抛弃幻想,准备斗争

博客打算做调整,主攻技术总结,不发牢骚。

  • 博客(852)
  • 收藏
  • 关注

原创 论VO属性值如何注入PO属性(VO转PO)

方法一:PO.set(VO.get());方法二:调用spring beans中的工具类BeanUtilsBeanUtils.copyProperties(VO,PO);

2020-02-10 21:31:59 1435

转载 给加密算法加点佐料:salt值(盐值)

SALT值属于随机值。用户注册时,系统用来和用户密码进行组合而生成的随机数值,称作salt值,通称为加盐值。1、背景:系统通常把用户的密码如MD5加密后,以密文形式保存在数据库中,来防止黑客偷窥。2、产生:随着对MD5密文查询工具的出现,而很多用户的密码又设置简单,单纯的对用户密码进行MD5加密后保存,用密文很容易就能反查询得到某用户的密码。3、原理:为用户密码添加Salt值,使...

2020-02-10 21:10:14 2260

转载 JVM的垃圾回收机制 总结(垃圾收集、回收算法、垃圾回收器)

如果想了解Java内存模型参考:jvm内存模型-和内存分配以及jdk、jre、jvm是什么关系(阿里,美团,京东)相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。一、 技术背景你要了解吧  按照套路是要先装装X,谈谈JVM垃圾回收的前世今生的。说起垃...

2020-02-10 18:38:26 511

转载 es 的分布式架构原理能说一下么(es 是如何实现分布式的啊)?

面试官心理分析在搜索这块,lucene 是最流行的搜索库。几年前业内一般都问,你了解 lucene 吗?你知道倒排索引的原理吗?现在早已经 out 了,因为现在很多项目都是直接用基于 lucene 的分布式搜索引擎—— ElasticSearch,简称为 es。而现在分布式搜索基本已经成为大部分互联网行业的 Java 系统的标配,其中尤为流行的就是 es,前几年 es 没火的时候,大家一般...

2020-02-10 18:32:13 391

转载 10分钟看懂Docker和K8S

2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司。 这家公司主要提供基于PaaS的云计算技术服务。具体来说,是和LXC有关的容器技术。 LXC,就是Linux容器虚拟技术(Linux container) 后来,dotCloud公司将自己的容器技术进行了简化和标准化,并命名为——Docker。 Docker技术诞生之后,并没有引起行业的关注...

2020-02-10 18:29:10 422

转载 浅谈ActiveMQ的使用

如何使用ActiveMQ1.AcitveMQ的数据传送流程2.ActiveMQ的两种消息传递类型(1)点对点传输,即一个生产者对应一个消费者,生产者向broke推送数据,数据存储在broke的一个队列中,当消费者接受该条队列里的数据。(2)基于发布/订阅模式的传输,即根据订阅话题来接收相应数据,一个生产者可向多个消费者推送数据,与MQTT协议的实现是类似的,对MQTT协议有兴趣...

2020-02-10 18:24:10 206

转载 一分钟了解ActiveMQ

是什么消息中间件。可以在分布式系统的不同服务之间进行消息的发送和接收它的出现解决了什么问题可以让系统解耦 比如:使用消息中间件,某一个服务,可能依赖了其他好几个服务。比如课程里面的运营商后台依赖了4个服务,那不用mq就和4个服务耦合,用了mq,就只和1个mq耦合。参考下图:实际项目应用场景监听商品添加消息,接收消息,将对应的商品信息同步到索引库 每次添加完商品并将同...

2020-02-10 17:44:21 339

转载 Java线程池详解

构造一个线程池为什么需要几个参数?如果避免线程池出现OOM?Runnable和Callable的区别是什么?本文将对这些问题一一解答,同时还将给出使用线程池的常见场景和代码片段。基础知识Executors创建线程池Java中创建线程池很简单,只需要调用Executors中相应的便捷方法即可,比如Executors.newFixedThreadPool(int nThreads),但...

2020-02-10 12:15:04 123

转载 常见的分布式事务解决方案

目录 一、分布式事务前奏 二、柔性事务解决方案架构 (一)、基于可靠消息的最终一致性方案概述 (二)、TCC事务补偿型方案 (三)、最大努力通知型 三、基于可靠消息的最终一致性方案详解 (一)、消息发送一致性 ...

2020-02-09 21:43:48 489

转载 cas原理解析

概述CAS(Compare-and-Swap),即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术。CAS也是现在面试经常问的问题,本文将深入的介绍CAS的原理。 案例介绍CAS之前,我们先来看一个例子。/** * @author joonwhee...

2020-02-07 20:19:42 284

转载 SpringBoot启动原理解析

我们开发任何一个Spring Boot项目,都会用到如下的启动类1 @SpringBootApplication2 public class Application {3 public static void main(String[] args) {4 SpringApplication.run(Application.class, args);5 ...

2020-02-07 19:35:45 308

原创 SpringBoot加载静态资源内部流程

1、问题描述利用springboot构建分布式项目时,webapp模块中需要定义配置文件application.yml来指定服务端口号。在springboot的内部是如何去starter的呢?如何去加载静态资源的呢?2、springboot内部从org.springframework.boot.autoconfigure.web.ServerProperties类开始看起。...

2020-02-07 14:03:37 392

转载 Redis数据结构以及使用场景

在没有redis之前,客户端访问后端应用时,当并发大的时候,存储层如mysql是支撑不了的,可能会将存储层mysql压死,存储层一旦宕机,整个应用就完了。为了很高效的加速应用的读写速度,同时也可以降低后端负载在一定程度上可以通过AOF和RDB机制保证在一定的情况下(如缓存层宕机)快速恢复数据为应用提供服务。缓存层可以通过主从复制+哨兵或集群实现高可用。Redis(REmote DIctionary...

2020-02-07 07:33:46 254

转载 【由浅至深】redis 实现发布订阅的几种方式

【由浅至深】redis 实现发布订阅的几种方式非常感谢依乐祝发表文章《.NET Core开发者的福音之玩转Redis的又一傻瓜式神器推荐》,对csredis作了一次完整的诠释。前言提到消息队列,最熟悉无疑是 rabbitmq,它基本是业界标准的解决方案。本文详细介绍 redis 多种实现轻订阅方法,作者认为非常有趣并加以总结,希望对有需要的朋友学习 redis 功能有一定的带入作用。...

2020-02-06 21:22:46 1664

转载 基于Redis消息的订阅发布应用场景

目录 基于Redis消息的订阅发布应用场景 1.应用背景 2.困境 2.1 锁表风险 2.2 实时性差 2.3 增加编程复杂性 2.4 实时效果 3.解决方案 3.1 前端传值给服务端 ...

2020-02-06 21:18:53 718

转载 Redis哨兵(Sentinel)模式

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。一、哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实...

2020-02-06 21:06:40 189

转载 通过三张图直观理解Redis集群设计原理

Redis集群设计包括2部分:哈希Slot和节点主从,本篇博文通过3张图来搞明白Redis的集群设计。 节点主从:主从设计不算什么新鲜玩意,在数据库中我们也经常用主从来做读写分离,直接上图:图上能看得到的信息:1, 只有1个Master,可以有N个slaver,而且Slaver也可以有自己的Slaver,由于这种主从的关系决定他们是在配置阶段就要指定他们的上下...

2020-02-06 19:48:55 193

转载 Redis主从复制原理以及应用

目录 主从复制概述如何使用主从复制开启主从复制断开主从复制主从复制的实现原理连接建立阶段数据同步阶段 命令传播阶段【数据同步阶段】全量复制和部分复制全量复制部分复制psync命令的执行【命令传播阶段】心跳机制主->从:PING从->主:REPLCONF ACK应用中的问题读写分离及其中的问题 复制超时问题各场景下复制的选择及优化技巧复制相关的配置单机内存大...

2020-02-06 19:44:04 641

转载 Redis分布式锁实现秒杀业务(乐观锁、悲观锁)

一、业务场景  所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作,所以实现秒杀,就必须控制线程对资源的争抢,既要保证高效并发,也要保证操作的正确。二、一些可能的实现  刚才提到过,实现秒杀的关键点是控制线程对资源的争抢,根据基本的线程知识,可以不加思索的想到下面的一些方法:1)、秒...

2020-02-06 16:16:10 693

转载 用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景?

首先,我们一起来看看这个问题的背景?前段时间有个朋友在外面面试,然后有一天找我聊说:有一个国内不错的电商公司,面试官给他出了一个场景题:假如下单时,用分布式锁来防止库存超卖,但是是每秒上千订单的高并发场景,如何对分布式锁进行高并发优化来应对这个场景?他说他当时没答上来,因为没做过没什么思路。其实我当时听到这个面试题心里也觉得有点意思,因为如果是我来面试候选人的话,应该会给的范围更大一些比...

2020-02-06 16:03:02 2065 3

转载 利用redis实现分布式事务锁,解决高并发环境下库存扣减

问题描述:某电商平台,首发一款新品手机,每人限购2台,预计会有10W的并发,在该情况下,如果扣减库存,保证不会超卖解决方案一利用数据库锁机制,对记录进行锁定,再进行操作SELECT * from goods where ID =1 for update;UPDATE goods set stock = stock - 1;利用排它锁将并行转化为串行操作,但该方案的性能和用户体验较差...

2020-02-06 16:00:06 1171

转载 Redis事务机制和分布式锁

Redis事务机制严格意义来讲,Redis的事务和我们理解的传统数据库(如mysql)的事务是不一样的;Redis的事务实质上是命令的集合,在一个事务中要么所有命令都被执行,要么所有事物都不执行。 一个事务从开始到执行会经历以下三个阶段:开始事务。命令入队。执行事务。在MySQL中我们使用START TRANSACTION 或 BEGIN开启一个事务,使用COMMIT提交一个事务;...

2020-02-06 15:39:02 192

转载 Redis持久化RDB/AOF详解与实践

Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持的数据类型很丰富,如字符串、链表、集 合、以及散列等,并且还支持多种排序功能。什么叫持久化?用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。...

2020-02-06 11:11:29 148

原创 开源项目OCP中monitor-center、new-api-gateway、oauth-center、register-center、web-portal模块注解分析

2020-02-02 18:32:24 442

原创 开源项目OCP中job-center模块注解分析

2020-02-02 17:59:55 573

原创 开源项目OCP中business-center模块注解分析

2020-02-02 17:16:20 524

原创 开源项目OCP中api-gateway模块注解分析

2020-02-02 14:43:36 395

原创 开源项目OCP中rabbitmq-spring-boot-starter模块注解分析

2020-02-02 14:22:29 197

原创 开源项目OCP中uaa-server-spring-boot-starter模块注解分析

2020-02-02 14:13:28 571

原创 开源项目OCP中uaa-client-spring-boot-starter模块注解分析

2020-02-02 13:42:41 437

原创 开源项目OCP中common-spring-boot-starter模块注解分析

2020-02-02 11:49:20 464

原创 开源项目OCP中log-spring-boot-starter模块注解分析

2020-02-02 10:46:12 531

原创 开源项目OCP中db-spring-boot-starter模块注解分析

2020-02-01 20:46:53 279

原创 在centos7使用yum安装redis4.0.2

1、安装wget http://download.redis.io/releases/redis-4.0.2.tar.gztar -zxvfredis-4.0.2.tar.gzyum install gcccd redis-4.0.2make MALLOC=libccd src && make install2、启动cd src./redis-...

2020-01-31 20:32:04 1321

原创 在CentOS7.6下使用yum安装MySQL5.7

一、安装mysql5.71、下载mysql源安装包:[root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm提示:如果用不了wget命令,需要:yum install wget2、安装mysql源:[root@localhost ~]# yum l...

2020-01-31 19:58:17 633

原创 在Centos7使用yum安装mongodb3.4

1.配置MongoDB的yum源:vi/etc/yum.repos.d/mongodb-org-3.4.repo#添加以下内容:[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ g...

2020-01-31 18:47:04 414

转载 在虚拟机CentOS7中无图形界面安装Oracle11G R2版本

Oracle11G R2下载链接 ① 系统要求以及准备1. 物理内存不小于1G: 查看方式:# grep MemTotal /proc/meminfo2. 可用硬盘不小于8G: 查看方式:# df3.Swap分区空间不小于2G: 查看方式:# grep SwapTotal /proc/meminfo4. 关闭firewalld防火墙#...

2020-01-31 18:36:24 360

原创 开源项目open-capacity-platform(layui版本)技术架构

博主2019年11-12月曾在某餐饮行业兼职过,呆过前后堂,熟悉的了解了店内的明确分工安排,看了开源项目open-capacity-platform对微服务的介绍,感觉真是和我理解一样,下面分享下文档对微服务的介绍:通过餐饮行业来理解微服务。open-capacity-platform技术选型:前端:模块化UI框架:layui.js纯js轻量级单页路由框架:q.js基于...

2020-01-29 20:57:58 3357

原创 Crowdfunding:Project permissions

一、思路二、加入SpringSecurity环境web.xml:创建配置类:spring-web.mvc.xml:考虑到权限控制系统更多的需要控制Web请求,而且有些请求没有经过Service方法,所以在SpringMVC的IOC容器中扫描SecurityConfig,但是SpringSecurity是有管理Service、Dao方法的能力的。三、IOC...

2020-01-24 14:21:20 389

转载 Docker容器部署技术 & 持续交付流水线

随着微服务的流行,容器技术也相应的被大家重视起来。容器技术主要解决了以下两个问题:一、环境一致性问题:例如java的jar/war包部署会依赖于环境的问题(操着系统的版本,jdk版本问题)。二、镜像部署问题:例如java,rubby,nodejs等等的发布系统是不一样的,每个环境都得很麻烦的部署一遍,采用docker镜像,就屏蔽了这类问题。下图是Docker容器部署的一个完...

2020-01-24 10:38:41 560

空空如也

空空如也

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

TA关注的人

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