8 Garry1115

尚未进行身份认证

我要认证

关注微信公众号“虾米聊吧”,获取更多技术知识干货,一起交流,一起学习~

等级
TA的排名 2k+

elasticsearch的分布式架构原理

对于全文检索,lucene是目前最流行的搜索库。以前我们都需要学习使用lucene,基于lucene做相关的开发,学习倒排索引的原理,而现在,我们可以直接使用现成的搜索框架了,因为现在很多这种搜索框架底层都是直接基于lucene的分布式搜索引擎,例如elasticsearch就是其中最典型的代表,我们亲切的简称其为es。现在分布式搜索基本已经成为大部分互联网行业的java体系的标配,其中尤为流行的就是es,记得我2014年的时候还在用用solr,估计那个时候大部分小伙伴也是一样。但是最近几年基本都.

2020-06-28 17:40:00

activemq 延时队列以及不生效问题

最近在做的项目中有一个业务涉及到了订单的有效期的问题(即订单达到一定的时间未支付完成就让该订单失效),于是就想到了延时队列的方式,由于项目采用的是activemq,所以就写了个activemq延时队列代码如下:发送方代码如下: /** * 发送延迟消息 * @param msg * @param delay */ public void send(Queue queue, String msg, long delay) { _l

2020-06-09 11:03:14

分布式事务是啥?常用的解决方案有哪些?

所谓事务就是为了保证数据的完整性和一致性,事务管理是应用开发中必不可少的技术。要明确一点的是在传统单体项目中我们操作的事务都是本地事务。所谓本地事务,是指该事务仅在当前工程内有效。总的来说事务是逻辑上一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败。关于事务的隔离级别(读未提交、读已提交、可重复读)和传播行为(REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW….)此处不做过多的描述。分布式事务:传统的一个工程内为了保证数据的一致性...

2020-06-04 17:20:24

分布式锁是啥?zk还是redis?

关于分布式系统中应该考虑的几个问题包括诸如最基本的分布式锁和分布式事务等。该篇中我们将简单来聊聊分布式锁相关知识,比如常见的分布式锁的实现方式有哪些?redis如何设计分布式锁?zk如何设计分布式锁?以及这两种方式哪种效率更高?1.redis分布式锁最常见的一种方式也被称为“原生方式”,即不采用任何redis相关的第三方框架的方式。采用setnx指令的设置一个key,比如set...

2020-05-07 09:21:36

redis缓存穿透、缓存雪崩、缓存击穿、并发竞争

关注微信公众号“虾米聊吧”,每天更新一篇技术文章,文章内容涵盖架构师成长必经之路应掌握的技术,一起学习,一起交流。缓存穿透、缓存雪崩、缓存击穿、并发竞争是缓存最常见的几个问题,接下来我们简单谈谈关于这他们的出现场景以及可能的解决方案都有哪些?**缓存穿透**概念:是指查询一个不存在的数据,由于缓存无法命中,该请求将去查询数据库,但是数据库也无此记录,并且出于容错考虑,我们没...

2020-04-30 17:22:19

redis过期策略和淘汰机制你知道多少? 

关注微信公众号“虾米聊吧”,每天更新一篇技术文章,文章内容涵盖架构师成长必经之路应掌握的技术,一起学习,一起交流。开篇提问:你是否遇到过生产环境redis丢数据的问题?比如你刚刚写入了一堆数据到redis,然后过了一会就没了,那么这是什么原因造成的呢?接下来我们简单探讨一下这个问题。首先要明确一点,redis是用来做缓存的并不是用来做常规存储的,千万不要什么数据都一股脑往里面丢...

2020-04-28 17:54:48

redis常用数据类型的场景,你真的用对了么?

关注微信公众号“虾米聊吧”,每天更新一篇技术文章,文章内容涵盖架构师成长必经之路应掌握的技术,一起学习,一起交流。redis常用数据类型的场景,你真的用对了么?redis常用数据类型包含string、hashmap、list、set、sorted set。string类型1) 单值缓存set key value这个没啥好说的2) 对...

2020-04-26 16:18:26

如何设计一个高并发系统

人人都开始聊高并发,高并发,那么所谓的高并发到底应该是啥,应该怎么理解这个高并发这个概念呢?这么说来就得要思考为啥会产生高并发?简单来说,因为我们从传统的单体项目开始系统都是需要直接连接数据库的,而数据库支撑到每秒并发两三千的时候,基本就快到极限了。因此,当我们刚开始设计系统的时候,就是一个简单的单体项目直连数据库,并没考虑那么多,结果后期由于业务发展太快,有的时候并发流量过大系统扛不住压力然...

2020-04-20 09:33:34

java个人支付系统(springboot)

个人免签支付,人人都可申请。随着移动支付的普遍发展,目前市场上基本已经形成支付宝和微信两大支付体系称霸的局面,因此各大商家、网站、平台等纷纷接入了支付宝和微信作为支付方式,然而 作为一个开发者我们都知道微信支付接口由始至终从没面向过个人终端用户,只能通过企业账号的方式接入,而支付宝,也在前几年就已经关闭了个人支付接口,其中缘由,想想就知道了。这可就苦恼了我们这些个体户呀,明明想到了一种赚钱方式...

2019-08-12 17:41:15

大话“用户注册激活,忘记密码”发送邮件功能

鉴于最近有一部分童鞋留言关于“用户注册发送邮件激活”功能不太懂,在此我将用一片通俗易懂的话术简单说明一下“用户注册发送邮件激活”的大致原理和过程。用户注册发送邮件是每个网站的最基本功能,一般有两种处理方式:第一种为直接发送激活邮件,用户直接点击激活链接就会挑战到相应的激活页面 第二种为发送随机校验码到用户指定的邮箱,然后用户登录邮箱复制校验码下面我简单介绍一下2种方式的大致实现原...

2020-04-13 10:04:07

MQ保证消息的可靠性传输

前景概要:我们在使用mq的时候肯定是希望数据不能多也不能少的,不能多即需要考虑mq的重复消费(幂等性)问题。不能少即不能丢失数据。很明显如果如果你的mq中存放的是非常核心、重要的数据,比如订单数据、积分流水等,这些数据是必须不能丢的,一旦丢失则会造成数据的一致性问题,可能会给公司带来极大损失。丢失数据分析:丢失数据一般来说分为2种情况,一种是数据已经发送到了mq,但是mq...

2020-04-09 09:35:42

MQ如何保证高可用

上一篇我们通过介绍MQ的基本功能简单的分析了项目中MQ的选型,那么当我们项目中真正使用MQ的时候,必然会涉及到如何保证MQ的高可用,毕竟如果MQ宕机,可能会造成整个调用链路的失败,因此接下来我们简单聊聊MQ的高可用问题。那么如何保证消息队列的高可用呢?由于MQ中间件的类型比较多,因此我们依次对常用的RabbitMq和Kafka进行高可用的剖析。(1)RabbitMQ的高可用性...

2020-04-06 10:43:45

MQ消息中间件选型

我们在做架构的时候经常面临各种技术框架的选型,其中消息队列基本上对于一些高并发的互联网项目是必不可少的,那么话说回来我们在做消息队列选型的时候是否问过如下几个问题呢? 为什么使用消息队列啊? 消息队列有什么优点和缺点啊? kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景? 如果你思考过如上几个问题,那么恭喜你,你正在...

2020-04-05 15:18:15

java后台通用权限管理系统(springboot)

推荐:200多套后台管理系统模板打包下载(https://blog.csdn.net/zwx19921215/article/details/102935205)推荐:Java秒杀系统优化(高性能高并发)(https://blog.csdn.net/zwx19921215/article/details/103270209)说明:这是本人正在使用的一款通用权限管理系统。来源...

2019-07-30 18:59:15

java垃圾回收机制算法分析

原文参考:蚂蚁课堂余胜军老师。垃圾回收机制概述 Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用空闲的内存。  ps:内存泄露是指该内存空间...

2019-12-20 11:19:48

JVM参数调优

说明 :原文参考蚂蚁课堂余胜军老师。Java虚拟机原理 所谓虚拟机,就是一台虚拟的机器。他是一款软件,用来执行一系列虚拟计算指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机, 大名鼎鼎的Visual Box、Vmare就属于系统虚拟机,他们完全是对物理计算的仿真,提供了一个可以运行完整操作系统的软件平台。程序虚拟机典型代码就是Java虚拟机,它专门为执行单个计算程序而计算,在J...

2019-12-18 17:12:57

NIO介绍与Netty通信简单入门

NIO同步阻塞与同步非阻塞BIO与NIOIO(BIO)和NIO区别:其本质就是阻塞和非阻塞的区别阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,就会一直等待,直到传输完毕为止。非阻塞概念:应用程序直接可以获取已经准备就绪好的数据,无需等待。IO为同步阻塞形式,NIO为同步非阻塞形式,NIO并没有实现异步,在JDK1.7后升级NIO库包,支持异步非阻塞同学模型N...

2019-12-17 15:39:27

SpringBoot入门详解源码分析

注:文章内容来自于黑马的虎哥,个人感觉写的挺好的,所以只是做了简单整理,我只是文章的搬运工!# 0.学习目标-了解SpringBoot的作用-掌握java配置的方式-了解SpringBoot自动配置原理-掌握SpringBoot的基本使用-了解Thymeleaf的基本使用# 1.了解SpringBoot在这一部分,我们主要了解以下3个问题:-...

2019-12-16 17:18:24

Java秒杀系统优化(高性能高并发)

主题:在大并发,大流量的情况下如何提升吞吐量或者说QPS?而秒杀活动恰恰就是属于大并发的情形,因此下面简单来谈谈大并发下秒杀方案的优化。项目采用技术:SpringBoot + MyBatis + MySql + RabbitMq + RedisRabbitMq安装参考:https://blog.csdn.net/zwx19921215/article/details/10325583...

2019-11-27 10:58:43

JMeter压测入门简单使用

JMeter压测入门简单使用。下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.2.1.zip下载完解压后进入bin目录,双击jmeter.bat打开测试计划右键创建线程组线程组配置参数说明:Number of Threads:线程数Ramp-u...

2019-11-26 17:40:45

查看更多

勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享达人
    分享达人
    成功上传6个资源即可获取