自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ANGEL CITY

No accumulation of steps,can't lead to thousand miles. No integration of streams,can't result in seas and oceans.

  • 博客(186)
  • 资源 (3)
  • 收藏
  • 关注

原创 数据库分库分表

Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数据库的性能问题。对于海量数据的数据库,如果是因为表多而数据多,这时候适合使用垂直切分,即把关系紧密(比如同一模块)的表切分出来放在一个服务器上。如果表并不多,但每张表的数据非常多,这时候适合水平切分,即把表的数据按某种规则(比如按ID散列)切分到多个数据库(server)上。根据实际情况做出选择,也可能会综合使用垂直与水平切分。

2023-03-09 15:36:40 5874 1

原创 Mybatis工作原理及流程

MyBatis介绍MyBatis是一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。MyBatis免除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis可以通过简单的XML或注解来配置和映射原始类型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java对象)为数据库中的记录。2、MyBatis架构图Application是程序员开发的Java代码,蓝色为MyBatis框架.API是MyBatis提供的增删改查等功能接口.

2023-03-03 09:14:06 7482

原创 Springcloud五大组件

springcloud是一系列框架的有序集合。它利用springboot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用springboot的开发风格做到一键启动和部署。springcloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经过实践检验的框架组合起来,通过springboot风格再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留下了简单易懂、容易部署和维护的分布式开发工具包。

2023-03-02 09:18:02 13101

原创 Redis实现高可用

Redis 实现高可用有三种部署模式:主从模式,哨兵模式,集群模式

2023-03-01 09:59:26 7777

原创 Redis实现分布式锁

而基于 Redis 多机实现的分布式锁Redlock,是Redis 的作者 antirez 为了规范 Redis 分布式锁的实现,提出的一个更安全有效的实现机制。以上几种基于 Redis 单机实现的分布式锁其实都存在一个问题,就是加锁时只作用在一个 Redis 节点上,即使 Redis 通过 Sentinel 保证了高可用,但由于 Redis 的复制是异步的,Master 节点获取到锁后在未完成数据同步的情况下发生故障转移,此时其他客户端上的线程依然可以获取到锁,因此会丧失锁的安全性。

2023-02-27 15:32:11 14573

原创 做好需求分析很关键

项目开始前,首先要了解客户的需求,知道客户想要做什么,但对于客户来说,最初他对自己的需求认识也只是个模糊的概念,只是在脑海里有个大致的想法,并不清楚自己真正的想要什么样的产品。用户场景需求主要是追问这个需求的来源是什么,要解决什么人在什么场景下的什么问题,有哪几个人物角色,对应问题的流程是什么,在这个过程中用户的心理变化是怎样的?先说目标用户,有的需求可能有价值,但未必是我们目前的主要用户群体,有的需求可能对A类用户有价值,但对我们的B类用户可能会构成伤害,这个时候需要权衡取舍。这个需求发生的频次是多少?

2023-02-21 10:25:45 13405

原创 Java实现邮件发送功能

SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, 需要改为对应邮箱的 SMTP 服务器的端口, 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587,4.6、 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人,抄送人, 密送人;// 发件人的邮箱的 SMTP。对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)

2023-02-16 09:17:19 3098

原创 413 Request Entity Too Large问题解决方法

413 Request Entity Too Large问题解决方法

2023-02-08 10:23:32 8409

原创 产品研发流程

流程的下一个工作是谁,重点交付物说明

2023-02-08 09:04:08 4492

原创 教你写出高质量SQL(实践必备)

1、查询SQL尽量不要使用select * ,而是select具体字段。//反例子select * from sys_user;//正例子select id,name from sys_user;理由:只取需要的字段,节省资源、减少网络开销;select * 进行查询时,很可能就不会使用到覆盖索引,就会造成回表查询;覆盖索引:只需要在一棵索引树上就能获取SQL所需的所有列数据,无需回表,速度更快。例如:回表查询:先通过普通索引的值定位聚簇索引值,再通过聚簇索引的值定位行记..

2022-05-10 16:10:43 9531

原创 Web Socket简介

1. Web Socket 是 HTML5 的新协议,允许服务器端向客户端发送数据,是一种全双工、双向的通信方式,并且它可以保持长时间通信.概念理解:【1】全双工:意思就是服务器向浏览器发送数据的同时,浏览器也可以向服务器传递数据,即同时进行信息的双向传递.  扩展:(1)半双工:允许通信双方互相传递数据,但是在一方 A 向另一方 B 传递数据时,B 不能向 A 传,类比独木桥.  (2)单工:即只允许一方 A 向另一方 B 传递数据,B 永远都不能向 A 传递数据,类比单行道.【2】长

2022-05-07 13:59:12 11497

原创 20道经典Redis面试题

前言整理了20道经典Redis面试题,希望对大家有帮助。1. 什么是Redis?它主要用来什么的?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁

2022-05-06 17:20:54 200438 36

原创 java英文面试常见问题归纳

1、Tell me a little about yourself?I hava been working as a computer programmger over fives years. I have the ability to develop good programming, familiar with Spring, MyBatis, SpringMVC and other open source frameworks;familiar with tomcat;familiar with

2022-05-06 16:46:38 1899

原创 spring cloud搭建教程

Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务的微服务:就是把一个单体项目,拆分为多个微服务,每个微服务可以独立技术选型,独立开发,独立部署,独立运维.并且多个服务相互协调,相互配合,最终完成用户的价值. Spring Cloud是一系列框架的有序集合。其主要的设施有,服务发现与注册,配置中心,消息总线,负载均衡,断路器,数据监控等,通过Spring Boot的方式,可以实现一键启动,和部署。

2022-04-26 17:05:05 47873 7

原创 什么是分布式架构

原本代码之间都是直接基于Spring框架走JVM内存调用,现在拆分后,将20个小系统部署在不同的机器上,然后基于分布式服务框架(比如dubbo)搞一个rpc调用,接口与接口之间通过网络通信进行请求和响应

2022-04-25 16:22:50 35784 3

原创 java实现发送邮件

最近有个小项目,客户希望整个审批流中通过j邮件实现提醒功能,下去调研了一下,简单实现过程如下;1.首先我们需要申请一个邮件,作为发送邮件的载体;一般我们使用的都是网易邮箱,例如163.com,申请邮箱后需要开启收发邮件的服务器,这样才能在本地客户端上收发邮件;2、代码实现package com.bootdo.common.utils;import java.util.Calendar;import java.util.Date;import java.util.Proper

2022-04-14 15:55:01 414

原创 Redis系列2-单节点安装

Redis系列2 单节点安装

2022-04-14 15:33:59 302

原创 Redis系列1-背景

任何技术都不会平白无故产生,I/O问题是Redis产生的主要原因

2022-03-23 17:08:34 4002

原创 Nginx/ZooKeeper 负载均衡的区别

Nginx/ZooKeeper 负载均衡的区别 Nginx是反向代理服务器,被广泛用于负载均衡服务器 Zookeeper是分布式协调服务框架,也会用于负载均衡 Nginx配置负载均衡非常简单,将多个web service配置到Nginx中,用户访问Nginx时会自动分配一个web service Zookeeper负载均衡实现思路:把Zookeeper作为一个服务注册中心,在其中登记每个服务,每台服务器知道自己属于哪个服务,在服务器启动时,自己向所属服务进行登记(呈现出一个树形结构).

2021-03-05 17:12:45 5327 1

原创 产品研发过程浅谈

1.浅谈瀑布式与敏捷 对比维度 瀑布式开发 敏捷开发 假设条件 有明确的需求 需求是变化的,逐步清晰的 工作方式 1、重视和强调过程文档,以文档驱动项目,将软件开发周期严格分为几个固定阶段(规划、需求分析,设计,编码,测试,交付),每个阶段结束都有相应的详细文档作为输出;2、上一个阶段的输出就是下一个阶段的输入,直至完成整个开发过程;

2021-02-03 17:04:42 1425

原创 阿里云同域名下使用Nginx反向代理IIS和Tomcat共用443端口

背景:最近在做小程序的开发遇到一个问题,在同一个域名下需要ISS和Tomcat服务器共存,IIS下部署由C#编写的A小程序接口,Tomcat下部署着由Java实现的B小程序接口,因为微信小程序要求必须通过HTTPS请求完成与服务端通信,所以都需要访问443端口;环境:windowsserver2019IIS6服务器Tomcat8服务器Nginx1.10.3步骤:首先确保tomcat和IIS两个服务器可单独运行。1、修改IIS的所有网站项目的端口,设为80(端口号可自行..

2020-07-28 15:36:03 3829

原创 Swagger测试中遇到AbstractSerializableParameter问题解决方法

在使用swagger进行接口测试的过程中遇到以下问题10:00:49 [http-nio-8082-exec-10] WARN i.s.m.p.AbstractSerializableParameter - Illegal DefaultValue for parameter type integerjava.lang.NumberFormatException: For input string: "" at java.lang.NumberFormatException.forInputS

2020-07-22 10:10:45 2041 2

原创 Java 实例 - 死锁及解决方法

死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。java 死锁产生的四个必要条件:1、互斥使用,即当资源被一个线程使用(占有)时,别的线程不能使用 2、不可抢占,资源请求者不能强制从资源占有者手中夺取资源,资源只能由资源占有者主动释放。 3、请求和保持,即当资源请求者在请求其他的资源的同时保持对原有资源...

2020-04-22 11:43:26 340

原创 MySQL error code 145 :Table"XXX" was marked as crashed and should be repaired"快速修复

1、该错误产生原因: 第一、A程序执行了对 tableA 的 insert ,并还未 commite时,B程序也对tableA 进行insert 则此时会发生资源正忙的异常 就是锁表; 第二、锁表常发生于并发而不是并行(并行时,一个线程操作数据库时,另一个线程是不能操作数据库的,cpu 和i/o 分配原则)2、解决办法:然后在客户端的目标表上鼠标右键->维护->修复表...

2020-04-10 13:27:37 1803

原创 mysql锁表原因及解决方案

一、导致锁表的原因1、锁表发生在insert update 、delete 中 2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户3、锁表的原因 第一、 A程序执行了对 tableA 的 insert ,并还未 commite时,B程序也对tableA 进行insert 则此时会发生资源正忙的异...

2020-04-10 11:02:33 37983 1

原创 502 Bad Gateway nginx/xxx

我们访问网站时,偶尔可能会遇到这样的错误:502 Bad Gateway nginx/xxx刷新一次或多次就好了。这是什么原因呢?最近使用nginx的代理、负载均衡功能发现了这问题的根本原因。什么原因?就是后端的服务挂了!示例配置一:#user nobody;worker_processes 1;#error_log logs/error.log;#error...

2020-01-02 14:23:33 598 1

原创 mysql数据库查询如何添加排名序号

mysql中排序后根据排序的内容显示序号,需要在子查询中select @rownum:=0,只有外层的@rownum并不会起作用。SELECT a.num, a.content, t.tagname, @rownum := @rownum + 1 AS sortorder FROM ( SELECT count( * ) AS num, content, @rownum := 0...

2019-12-30 09:56:01 1890 1

原创 一文读懂消息队列

消息队列消息队列是在消息的传输过程中保存消息的容器,消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以成功地传递它。 一、 产生背景:现今,越来越多的企业面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用R...

2019-12-27 17:04:34 1852

原创 CSDN-正则表达式应用

正则表达式 图形化形式( https://regexper.com )1、什么是正则表达式 正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。在很多文本编辑器里,正则表达...

2019-12-23 13:57:09 1362

原创 Jacob技术应用

1、定义官方解释为JAVA-COM Bridge,即java和com组件之间的桥梁。2、原理通过一个接口来操作word的activeX对象版本 Jacob1.14.3 Jacob1.6 Jacob1.7 Jacob1.9 ......下载地址 http://danadler.com/jacob/3、配置将服务的JDK配置服务器的环境变量; 将jacob.jar 部署在...

2019-12-20 15:15:17 2684

原创 CSDN-快速排序基本思想

快速排序基本思想输入代排数组——>选取基准元——>执行划分操作——>递归对两个数组进行快速排序1、比如这里输入序列{72,6,57,88,60,42,83,73,48}2、下面选取基准元,这里选取72选取基准元选取基准元后,会用另一个空间存放基准元的数据,用两个指针分别指向数组最前端与最后端,从最后端开始比较,如果比基准元72小,则放在基准元前面,...

2019-12-11 10:19:30 547

原创 CSDN-Nginx代理功能与负载均衡详解

序言Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细。Nginx代理服务的配置说明1、上一篇中我们在http模块中有下面的配置,当代理遇到状态码为404时,我们把404页面导向百度。error_page 404 https://www.baidu.com; #...

2019-11-28 13:31:00 493

原创 CSDN-Nginx配置详解

序言Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。Nginx的稳定性、功能集、示例配...

2019-11-28 11:48:43 717

原创 CSDN-nginx在windows系统中如何启动、重启、停止

查看nginx的版本号:nginx -v启动nginx:start nginx快速停止或关闭nginx:nginx -s stop正常停止或关闭nginx:nginx -s quit配置文件nginx.conf修改重装载命令:nginx -s reload...

2019-11-27 15:27:42 908

转载 ehcache缓存

一,ehcache缓存在这里,我们首先讨论一个问题,什么是缓存,我们为什么要使用缓存?缓存实际上是为了减轻数据库服务器的负载,使用缓存,我们可以将一些常用的数据放入缓存,因为这些数据经常性的使用,大大增加了服务器的负载,但是当放入缓存后,在使用这些数据的时候,首先会从缓存中查找,如果缓存中有就读取,不会再到数据库中查找,如果缓存中没有,才会到数据库中查询,在这里,需要注意的是,ehcache的是...

2019-11-25 16:50:22 341

原创 mysql 缓存是如何使用内存的

首先提一下查询缓存 在解析一个查询语句前,如果查询缓存是打开的,而且查询语句是命中查询缓存中的数据。在检查一次用户权限后直接返回缓存中的结果。这种情况下,查询不会被解析,也不会生成执行计划,更不会执行。开启缓存也会带来开销,主要表现在以下几个方面: 任何的查询语句在开始之前都必须经过检查,即使这条SQL语句永远不会命中缓存 如果查询结果可以被缓存,那么执行完成后...

2019-11-25 14:29:12 437

转载 什么是Java内存模型

在知识星球中,有个小伙伴提了一个问题:有一个关于JVM名词定义的问题,说”JVM内存模型“,有人会说是关于JVM内存分布(堆栈,方法区等)这些介绍,也有地方说(深入理解JVM虚拟机)上说Java内存模型是JVM的抽象模型(主内存,本地内存)。这两个到底怎么区分啊?有必然关系吗?比如主内存就是堆,本地内存就是栈,这种说法对吗?时间久了,我也把内存模型和内存结构给搞混了,所以抽了时间把JSR13...

2019-11-21 10:48:47 300 1

转载 什么是JIT

1、动态编译(dynamic compilation)指的是“在运行时进行编译”;与之相对的是事前编译(ahead-of-time compilation,简称AOT),也叫静态编译(static compilation)。2、JIT编译(just-in-timecompilation)狭义来说是当某段代码即将第一次被执行时进行编译,因而叫“即时编译”。JIT编译是动态编译的一种特例。JIT...

2019-11-21 10:46:08 576 1

转载 消息队列使用场景介绍

一、简介消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能、高可用、可伸缩和最终一致性架构。使用较多的消息队列有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、MetaMQ、RocketMQ。二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景:异步处理,应用解耦,流量削锋和消息通讯四个场景。1、异步处理场景说...

2019-11-21 09:53:24 825

原创 spring boot 集成Redis方法

pom文件依赖:<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>...

2019-11-20 14:56:50 997

java开发面试知识汇总

java基础、springboot、mybatis、Redis等技术面试总结

2023-02-27

TrainingSystemNew.pdm

在线培训平台是一款集培训、学习、考试、积分兑换等于一体的企业级应用,这是数据库设计模型,请大家参考学习。

2019-12-20

wechat.rar

微信企业号消息推送,包含具体实现和工具类,通过企业号推送,用户在微信端接收消息,进入相关页面

2019-08-19

阿里巴巴java开发手册

阿里巴巴java开发手册,包括最新的java编码规范级优化方案

2019-01-31

空空如也

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

TA关注的人

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