自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(237)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 java互联网架构师入门进阶之路

作为一个工作了将近6年的后端工程师,深知后端知识领域的范围之广,深度之深,而经过了几年的打磨之后,我们仍然只是那浩瀚知识海洋中非常渺小,微不足道的一粒尘埃。总之一句支撑我们砥砺前行:路漫漫其修远兮,吾将上下而求索!愿你我共勉。话不多说,关于我自身的修炼之路,后续我会通过一篇博文的形式自我总结!今天我们谈的重点是作为一个架构师、或者说一个准?架构师亦或想成为一位后端架构师的童鞋那么应该怎么做呢?...

2019-08-10 12:15:53 785

原创 java web简单权限管理设计

推荐最新技术springboot版权限管理(java后台通用权限管理系统(springboot)),采用最新技术架构,功能强大!注:由于该项目比较老,所以没有采用maven管理,建议下载springboot权限管理系统,对学习和使用会更有帮助。springboot权限管理系统介绍地址:https://blog.csdn.net/zwx19921215/article/details/978...............

2015-03-19 23:23:05 204497 428

原创 springboot oa 办公系统,springboot权限系统

后续考虑改造成springcloud + springcloud alibaba 分布式架构的saas系统,引进技术gateway 网关,mq消息中间件、elasticsearch搜索引擎、oss分布式文件存储等!办公自动化(OA)是面向组织的日常运作和管理,员工及管理者使用频率最高的应用系统,极大提高公司的办公效率,该系统来源第三方开源系统,做了部分更新,适合学习和二开!springboot oa 自动化办公系统+ springboot 完整权限管理系统合二为一!springboot oa 办公系统。

2022-09-24 17:35:53 712 1

原创 elasticsearch的分布式架构原理

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

2020-06-28 17:40:00 636

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

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

2020-06-09 11:03:14 2302

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

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

2020-06-04 17:20:24 387

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

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

2020-05-07 09:21:36 556

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

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

2020-04-30 17:22:19 332

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

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

2020-04-28 17:54:48 301

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

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

2020-04-26 16:18:26 329

原创 如何设计一个高并发系统

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

2020-04-20 09:33:34 429

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

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

2020-04-13 10:04:07 640 1

原创 MQ保证消息的可靠性传输

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

2020-04-09 09:35:42 409

原创 MQ如何保证高可用

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

2020-04-06 10:43:45 633

原创 MQ消息中间件选型

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

2020-04-05 15:18:15 368

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

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

2020-03-16 16:42:28 14274 12

原创 java垃圾回收机制算法分析

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

2019-12-20 11:19:48 335

原创 JVM参数调优

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

2019-12-18 17:12:57 317

原创 NIO介绍与Netty通信简单入门

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

2019-12-17 15:39:27 370

原创 SpringBoot入门详解源码分析

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

2019-12-16 17:18:24 524

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

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

2019-11-27 10:58:43 2104

原创 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 449

原创 rabbitmq安装

今天在做秒杀项目时用到了rabbitmq,参考网上相关资料后完成了安装,在此简单记录一下安装过程。1.安装erlang官网下载地址:https://www.erlang.org/downloads安装依赖:yum install ncurses-devel解压缩:tar -xvf otp_src_20.1.tar.gz编译安装三部曲:./confi...

2019-11-26 14:44:17 322

原创 elasticsearch索引结构和配置优化

elasticsearch索引结构和配置简单调优.1.搜索时对特定字段设置更高权值,以弱化相关性低的字段例如:我们在搜索时认为标题对我们更重要就可以对标题提高匹配权重boolQuery.must( QueryBuilders.matchQuery(HouseIndexKey.TITLE, rentSearch.getKeywords()) ...

2019-11-15 15:57:43 608

原创 elasticsearch搜素关键字自动补全(suggest)

elasticsearch搜素关键字自动补全顾名思义 在搜索框搜索时能有提示列表可供选择。最终效果如下:该搜索优化功能是elasticsearch自带的即suggest,suggest即存储一个词库,每次搜索发送请求去词库中检索,匹配到即返回。接下来我们一步一步实现上述功能。1.建立索引我这预先准备了一个房屋信息的索引house{ "settings": { ...

2019-11-15 10:53:08 3529 2

原创 elasticsearch 5.6.x单机环境构建(集成head插件和IK中文分词)

elasticsearch近几年版本更新迭代的速度之已经超出了我的想象,想着我2016,2017年还在用着2.4.x版本,最近几年直接5.x,6.x,7.x版本了,看了一下下更新迭代的小版本时间几乎几个月一个小版本,简直不要太迅速了,不过也能理解,毕竟最近几年elasticsearch火热程度大幅上升,所谓是需求所致。此处我并没有直接跳转到最新版本,因为我看了一下说明,2.x版本是不能直接升级...

2019-11-13 15:59:39 1357

原创 HBuilderX H5 app打包以及加入个推

推荐:采用H5 + Springboot + netty开发的java聊天程序(https://blog.csdn.net/zwx19921215/article/details/102893689)首先来说下app加入个推(www.getui.com)。个推即消息推送,将消息推送至客户端app,要加入个推首先要在个推开发者中心注册账号,进入应用管理创建一个应用。创建应用的步骤如下:...

2019-11-05 16:37:24 7309 1

原创 java 简单仿微信聊天(springboot)

采用springboot netty 简单模仿微信聊天界面和功能。系统模块:包括手机app端,后台服务端技术架构:手机app:Html5+,开发工具HBuilderX后台服务:springboot + netty + mybatis ,开发工具IDEA实现功能:用户注册、登录、用户主页(头像展示上传下载、昵称、账号、个人二维码生成展现、退出登录)、发现页面(朋友圈、添加好友、扫......

2019-11-04 15:43:46 10123 8

原创 HBuilder、HBuilderX连接夜神模拟器

1.下载安装完夜神模拟器后,找到其安装路径进入bin目录:E:\Program Files\Nox\bin,2.找到debugReport.bat,双击启动,复制端口号:620013.打开HBuilderX点击运行->运行到手机或模拟器->ADB路径设置,在Android模拟器端口栏目中填入端口:62001连接使用:理论上操作完以上几步就可以直接连接...

2019-11-04 14:31:25 3305

原创 java 个人博客系统高级版(springboot)

写博客已有好几年,由于商业博客的限制,越来越感觉到拥有一套不受约束的个人博客系统的重要性,于是在参考了网上大量优秀开源博客系统后,不断打磨改造合并最终形成了当前这一款个人博客系统(目前是初版,后期会不定期维护更新)。技术架构:Springboot2.x + Shiro + Mybatis Plus,网站前端采用模板zbolg。后台功能模块:一个完整的shiro权限系统(用户管理、角色管理、......

2019-10-21 16:57:48 2368 1

原创 mybatis-generator 逆向生成工具(实体、dao、sql)

介绍:mybatis-generator是一个逆向生成工具,用于将数据库表逆向生成实体对象(entity),持久层Dao接口以及用于操作数据库的sql语句xml文件。对于简单的单表操作,增删改查几乎不用动手写任额外的代码。因为这些都已经通过逆向工程自动生成了,所以帮我们省了一大摊子事儿。项目结构如下:下面简单介绍其使用和配置方式:数据库连接配置:jdbc.driverLoc...

2019-09-11 18:39:41 702

原创 springboot动态数据源切换(多数据源配置)

动态数据源切换即多数据源切换,由于业务的需要或者历史的遗留等原因,一个项目中配置了多个数据库,用于查询不同类型的数据,因此我们就需要经常在各个库中切换数据源,接下来我们将进行具体的说明:项目结构如下:相关类说明:DynamicDataSource:动态获取数据源的实现,继承AbstractRoutingDataSource(每执行一次数据库,动态获取DataSource)Dyn...

2019-09-03 17:10:44 1854

原创 mysql添加外键约束失败cannot add foreign key constraint

一般来说出现此种错误的要注意是否有如下情况发生:1.外键字段不能为该表的主键2.外键字段参考字段必须为参考表的主键3.字段数据类型必须一致4.数据库表引擎必须一致5.字符集和排序规则必须一致如果仍然无法解决,那就备份一下数据,然后重建表...

2019-08-30 14:40:59 2024

原创 Linux调用外部服务出现java.net.UnknownHostException

windows下调用某外部服务的接口正常,发布到测试环境中的linux下,短信服务接口、验证码接口齐刷刷的出现了UnknownHostException,java.net.UnknownHostException: www.kexuntong.cnjava.net.UnknownHostException: ssl.captcha.qq.com莫名其妙。经过一番折腾发现是linux下...

2019-08-25 11:55:01 1853

原创 linux安装nginx并配置域名映射和图片服务器

环境:阿里云轻量级云服务器操作系统:centos7背景:在上一篇博客阿里云服务器部署SpringBoot项目(mysql安装、服务部署)(https://blog.csdn.net/zwx19921215/article/details/97558985)中已成功发布了springboot 项目,但是只能通过ip地址和端口访问,不太友好,于是乎我又从阿里云购买了一个域名,通过nginx...

2019-07-29 14:46:36 3858

原创 阿里云服务器部署SpringBoot项目(mysql安装、服务部署)

最近在阿里云购买了一台轻量级云服务器,开始了自主服务之旅,下面记录步骤以及采坑过程。首先拿到服务器的第一步我进入了控制台-远程连接中设置了连接密码,然后通过securt客户端工具连接。1.jdk1.8安装自行下载jdk1.8然后cd到/usr/local目录下创建java目录,将jdk解压(解压命令tar -xvf 文件);最后进入/etc/profile中设置环境变量#set ...

2019-07-27 21:30:32 2183

转载 Nginx出现403 forbidden

nginx访问时报403,于是查看nginx日志,路径为/var/log/nginx/error.log。打开日志发现报错Permission denied,详细报错如下:1.open()"/data/www/1.txt"failed(13:Permissiondenied),client:192.168.1.194,server:www.web1.com,re...

2019-07-15 16:58:26 293

原创 The alias 'Criterion' is already mapped to the value

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested except...

2019-07-10 11:13:06 2194

原创 springboot quartz动态任务处理

现实中的很多定时任务并不像网上的那种写法那么简单都是直接通过注解的形式实现(@Scheduled(fixedRate = 10000))。我就遇到了从数据库读取相关的数据(可能有n条)然后根据数据的触发时间生成多个动态任务添加到Scheduler中,当到达触发点时自动触发该任务。废话不多说,直接上代码:核心调度类:package com.xx.task;import org.ap...

2019-04-19 15:56:32 472

原创 python 爬虫爬取小说信息

1.进入小说主页(以下示例是我在网上随便找的一片小说),获取该小说的名称、作者以及相关描述信息2.获取该小说的所有章节列表信息(最重要的是每个章节的链接地址href)3.根据每个章节的地址信息下载每个章节的内容并解析4.将解析后的内容打印并写入文件或者数据库 示例代码v1版如下(仅供学习交流):# !/usr/bin/env python# -*-coding:utf-...

2018-12-26 15:35:54 2747

Java通过IText导出word和pdf所有jar

Java通过IText导出word和pdf所有jar(包括spring相关jar,是我工程中所有的jar包)

2015-01-16

MLDN——Java Web 开发实战经典源码笔记(基础篇)|

MLDN——Java Web 开发实战经典 源码笔记 (基础篇)

2012-08-06

MLDN魔乐科技JAVA培训_Oracle课堂笔记1-4

MLDN魔乐科技JAVA培训_Oracle课堂笔记1-4

2012-07-14

Java API5.0 中文版 (全)

熟练的运用Java API5.0 中文版 (全) 是每个开发者开发的必选....

2012-07-07

Java中四种XML解析技术详解

Java中四种XML解析技术详解 更好的更快速的了解xml中的四种解析技术

2012-07-04

精通MFC程序

精通MFC程序 详细的介绍了MFC第一部分的各种技术

2012-07-04

JAVA_精通swing程序设计

JAVA_精通swing程序设计 更好的掌握java 图形界面的开发

2012-07-02

李兴华javase全部笔记

李兴华javase全部笔记 更好的更容易的掌握java基础的核心技术

2012-07-02

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

TA关注的人

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