自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (1)
  • 收藏
  • 关注

原创 nginx配置https

阿里云申请免费的证书 然后上传到某个目录。

2023-08-28 15:54:32 2667

原创 nginx安装与配置【非常详细】

4).openssl:一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。注:安装之前需要手动创建上面指定的nginx文件夹,即/var/temp、/var/temp/nginx、/var/run/nginx/文件夹,否则启动时报错。可以进入/usr/local/nginx查看文件是否存在conf、sbin、html文件夹,若存在则安装成功。最后重启/usr/local/nginx/sbin/nginx -s reload。

2023-08-28 09:49:42 1539

原创 消息队列中间件

消息队列中间件介绍与常见问题解决

2022-12-16 10:10:45 1901

原创 Dubbo与SpringCloud的Ribbon、Hystrix、 Feign的优劣势⽐较

正如Dubbo的介绍(如下图),业务发展影响着架构的选型,当服务数量不是很⼤时,使⽤普通的分布式RPC架构即可,当服务数量增⻓到⼀定数据,需要进⾏服务治理时,就需要考虑使⽤流式计算架构。Dubbo可以⽅便的做更精细化的流量调度,服务结构治理的⽅案成熟,适合⽣产上使⽤,虽然Dubbo是尘封后重新开启,但这并不影响其技术价值。Ribbon Hystrix Feign在服务治理中,配合Spring Cloud做微服务,使⽤上有很多优势,社区也⽐较活跃,看将来更新发展。

2022-10-27 09:25:10 615

原创 redis高可用常见问题和解决方案

redis高可用常见问题和解决方案

2022-10-13 10:42:41 634

原创 你了解Java并发之AQS

在构建自定义同步器时,只需要依赖AQS底层再实现共享资源state的获取与释放操作即可。自定义同步器实现时主要实现以下几种方法:isHeldExclusively():该线程是否正在独占资源。只有用到condition才需要去实现它。tryAcquire(int):独占方式。尝试获取资源,成功则返回true,失败则返回false。tryRelease(int):独占方式。尝试释放资源,成功则返回true,失败则返回false。tryAcquireShared(int):共享方式。...

2022-08-18 10:12:50 250

原创 MySQL事务与MVCC如何实现的隔离级别

所谓的MVCC(Multi-VersionConcurrencyControl,多版本并发控制)指的就是在使⽤、这两种隔离级别的事务在执⾏普通的SEELCT操作时访问记录的版本链的过程,这样⼦可以使不同事务的读-写、写-读操作并发执⾏,从⽽提升系统性能。在MySQL中,READCOMMITTED和REPEATABLEREAD隔离级别的的⼀个⾮常⼤的区别就是它们⽣成ReadView的时机不同。在中每次查询中,在当前事务第⼀次查询时⽣成当前的ReadView,并且直沿⽤。...

2022-07-27 09:25:20 392

原创 分布式Session共享的4类技术方案,与优劣势比较

Session一致性解决方案

2022-07-24 16:11:41 310

原创 微服务Dubbo和SpringCloud架构设计、优劣 势⽐较

Dubbo出⽣于阿⾥系,是阿⾥巴巴服务化治理的核⼼框架,并被⼴泛应⽤于中国各互联⽹公司;只需要通过spring配置的⽅式即可完成服务化,对于应⽤⽆⼊侵。设计的⽬的还是服务于⾃身的业务为主。虽然阿⾥内部原因dubbo曾经⼀度暂停维护版本,但是框架本身的成熟度以及⽂档的完善程度,完全能满⾜各⼤互联⽹公司的业务需求。如果我们需要使⽤配置中⼼、分布式跟踪这些内容都需要⾃⼰去集成,这样⽆形中增加了使⽤Dubbo的难度。httpshttpshttpshttpshttpshttps。...

2022-07-24 16:10:36 3099 2

原创 设计高并发系统的时候,数据库层面该如何设计

为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点 ?你们具体是如何对数据库如何进行垂直拆分或水平拆分的 ?分表:比如你单表都几千万数据了,你确定你能扛住么?绝对不行,单表数据量太大,会极大影响你的 sql 执行的性能,到了后面你的 sql 可能就跑的很慢了。一般来说,就以我的经验来看,单表到几百万的时候,性能就会相对差一些了,你就得分表了。...

2022-07-09 22:12:17 245

原创 HashMap常见面试题分析

该题是一个数据结构问题,可以从HashMap的底层数据结构进行分析;建议从多个不同jdk版本进行分析JDK1.8版本的,内部使用数组 + 链表红黑树一般如果 new HashMap() 不传值,默认大小是16,负载因子是0.75, 如果自己传入初始大小k,初始化大小为 大于k的 2的整数次方,例如如果传10,大小为16。(补充说明:实现代码如下)HashMap的哈希函数设计hash函数是先拿到 key 的hashcode,是一个32位的int值,然后让hashcode的高16位和低......

2022-07-06 10:52:44 292

原创 面试题(CAS)

题目难度: 中等题目描述: 提问线路CAS—> Unsafe—> CAS底层原理 —> 原子引用更新 —> 如何规避ABA问题compareAndSet怎么用?(比较并交换)CAS底层原理简述?1.Compare-And-Swap。是一条CPU并发原语。(原语:操作系统范畴,依赖硬件,不被中断。)2.功能是判断内存某个位置的值是否为预期值(Compare),是就更新(Swap),这个过程是原子的。3.功能描述a:功能是判断内存某个位置的值是否为预期值(Compare),是就更新(Swap),这个

2022-07-04 16:52:12 1357

原创 Docker整理篇(docker-compose与私服搭建)

在实际生产环境中,一个应用往往由许多服务构成,而 docker 的最佳实践是一个容器只运行一个进程,因此运行多个微服务就要运行多个容器。多个容器协同工作需要一个有效的工具来管理他们,定义这些容器如何相互关联。compose 应运而生。

2022-03-23 14:46:53 1575 2

原创 Docker整理篇(网络与数据卷)

docker网络与数据卷操作和基础命令

2022-02-23 15:44:47 1458

原创 Docker整理篇(安装与常用命令操作)

基本介绍与常用命令docker核心原理docker虚拟化技术

2022-02-21 09:53:27 263

原创 前后端工程自动化部署

1.前端VUE工程2.后端java工程

2022-01-21 11:07:47 1224

原创 前后端统一加密ATOB

前后端统一加密算法1.前端JS代码 //加密字符串,可以先将中文加密,然后再用btoa加密 encryption(str) { var encStr = encodeURIComponent(str); encStr = btoa(encStr); return encStr; }, //解密,可以先将ascii解密,然后再将非ascii解密 decrypt(str) { var dec

2022-01-06 09:55:26 1269

原创 Spring Boot配置SSL证书(开启https)

https会使我们的网站更加安全,起码看起来似乎好一些。这里分享Spring Boot配置https的步骤。

2021-12-30 09:03:12 4687

原创 uniapp设置跨域代理

Uniapp H5设置跨域代理记录遇到的问题,uni.request 不支持 jsonp在uni-app 的项目中 manifest.json文件中配置跨域代理编辑manifest.json在manifest.json中编辑h5节点(没有可以手动添加)"h5" : { "devServer" : { "port" : 80, "disableHostCheck" : true, "proxy" : {

2021-12-28 17:46:37 3899

原创 SonarQube部署及代码质量扫描入门教程

一、前言1、本文主要内容CentOS7下SonarQube部署Maven扫描Java项目并将扫描结果提交到SonarQube ServerSonarQube扫描报表介绍2、环境信息工具/环境版本CentOSCentOS 7.6(IP:192.168.88.45)SonarQube7.5JDK1.8.0MySQL5.73、准备工作安装JDK1.8安装MySQL二、部署SonarQube1、基础准备安装必要的软件包yum i

2021-12-01 09:24:43 1172

原创 分布式集群架构场景化解决⽅案(集群时钟同步)

什么是分布式和集群以及实现二、集群时钟同步问题1、时钟不同步导致的问题时钟此处指服务器时间,如果集群中各个服务器时钟不⼀致势必导致⼀系列问题,试想 “集群是各个服务器⼀起团队化作战,⼤家⼯作都不在⼀个点上,岂不乱了套!”举⼀个例⼦,电商⽹站业务中,新增⼀条订单,那么势必会在订单表中增加了⼀条记录,该条记录中应该会有“下单时间”这样的字段,往往我们会在程序中获取当前系统时间插⼊到数据库或者直接从数据库服务器获取时间。那我们的订单⼦系统是集群化部署,或者我们的数据库也是分库分表的集群化部署,然⽽他们的系

2021-11-24 09:28:25 233

原创 分布式集群架构场景化解决⽅案(⼀致性Hash算法)

一、什么是分布式和集群分布式和集群是不⼀样的,分布式⼀定是集群,但是集群不⼀定是分布式(因为集群就是多个实例⼀起⼯作,分布式将⼀个系统拆分之后那就是多个实例;集群并不⼀定是分布式,因为复制型的集群不是拆分⽽是复制)二、⼀致性Hash算法Hash算法,⽐如说在安全加密领域MD5、SHA等加密算法,在数据存储和查找⽅⾯有Hash表等, 以上都应⽤到了Hash算法。为什么需要使⽤Hash?Hash算法较多的应⽤在数据存储和查找领域,最经典的就是Hash表,它的查询效率⾮常之⾼,其中的哈希算法如果设

2021-11-23 08:41:46 163

原创 解决高并发网站/服务常规应对方案和思路

一、并发量预估作为后端的程序开发人员,经常听到高并发,但是高并发到底有多高?其实是没有数值定义的但是如果在面试的过程中,或者跟别人沟通的过程中,有人提到百万级并发那么可能三种情况他在吹牛皮他没有用对并发这个词他真的很NB(例如:天猫双11关联项目组的)截至2019/11/11,支付宝双11订单峰值是 54.4W笔/秒,单个服务的集群的QPS破百万的应该也很少要应对多少并发,我们要看一天有多少访问量/请求量,假如是一个每天有1亿请求的网站/服务那么:平均QPS=100000000

2021-11-15 09:12:39 1434

原创 Springboot项目下载模板(同生成数据报告文件)

一、前言1、本教程主要内容一般情况下项目在docke环境上部署会出现路径找不到的情况,解决项目打包后模板文件路径丢失找不到,通过结合FreeMarker进行模板文件下载。主要解决过于复杂的模板文件通过动态生成较难实现可用于模板文件下载通过一个报告模板转成模板文件对数据进行填充转换下载2、需要用到的包环境信息软件版本freemarker2.3.26-incubating适用范围二、操作流程1、准备模板文件可以是word,excel等可以转换为xm

2021-11-04 10:56:04 1416

原创 Spring Security

一、Spring Security介绍1、框架介绍Spring 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括**用户认证****(Authentication)和用户授权(Authorization)**两个部分。(1)用户认证指的是:验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来

2021-11-01 09:16:02 652

原创 Canal数据同步

一、Canal介绍1、应用场景在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录人数,我们只需把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低,Canal就是一个很好的数据库同步工具。canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL。Canal环境搭建canal的原理是

2021-10-25 09:04:12 1601 8

原创 SpringBoot整合阿里云短信服务

一、新建短信微服务1、在service模块下创建子模块service-msm2.创建controller和service代码3.配置application.properties# 服务端口server.port=8006# 服务名spring.application.name=service-msm# mysql数据库连接spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=j

2021-10-22 08:53:03 297

原创 SpringBoot整合JWT

一、使用JWT进行跨域身份验证1、传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。服务器向用户返回session_id,session信息都会写入到用户的Cookie。用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。服务器收到session_id并对比之前保存的数据,确认用户的身份。这种模式最大的问题是,没有分布式架构,无法支持横向扩

2021-10-15 16:59:05 211

原创 SpringBoot集成Redis

一、Redis介绍Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更

2021-10-11 09:13:15 5314 1

原创 Nacos服务管理

一、Nacos1、基本概念**(1)**Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。**(2)**常见的注册中心:Eureka

2021-10-08 08:38:23 1430

原创 阿里云视频点播服务

一、创建视频点播微服务1、创建微服务模块Artifact:service-vodpom(1)service-vod中引入依赖<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> </dependency>

2021-10-05 12:44:53 406

原创 SpringBoot集成OSS

一、新建云存储微服务1、在service模块下创建子模块service-oss2、配置pom.xmlservice-oss上级模块service已经引入service的公共依赖,所以service-oss模块只需引入阿里云oss相关依赖即可,service父模块已经引入了service-base模块,所以Swagger相关默认已经引入<dependencies> <!-- 阿里云oss依赖 --> <dependency> &lt

2021-09-26 22:33:17 1744

原创 EasyExcel读写Excel

一、创建项目,实现EasyExcel对Excel写操作1、创建一个普通的maven项目项目名:excel-easydemo2、pom中引入xml相关依赖<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId>

2021-09-24 08:45:54 376

原创 Mybatis架构原理

架构设计我们把Mybatis的功能架构分为三层:(1) API接口层:提供给外部使用的接口 API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种方式:a. 使用传统的MyBati s提供的API ;b. 使用Mapper代理的方式(2) 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。(3) 基础支撑层:负责最基础的功

2021-09-18 08:28:08 263

原创 SpringBoot统一返回结果对象

一、统一返回数据格式项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容例如,我们的系统要求返回的基本数据格式如下:列表:{ "success": true, "code": 20000, "message": "成功", "data": {

2021-09-15 16:35:43 2282

原创 SSM 整合

一:SSM整合1.整合策略SSM = Spring + SpringMVC + Mybatis = (Spring + Mybatis)+ SpringMVC先整合 Spring + Mybatis然后再整合 SpringMVC基于的需求:查询 Account 表的全部数据显示到⻚⾯2.Mybatis整合Springjdbc.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:330

2021-09-14 09:27:47 395

原创 Spring概述(APO与IOC介绍与使用)

一,Spring介绍1.1,Spring 简介Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 Spring MVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架。Spring 官⽅⽹址:http://spring.io/我们经常说的 Spring 其实指的是Spring Framework(spring 框架)。1.2,Spring 发

2021-09-10 09:19:01 1084

原创 阿里云存储OSS

一、对象存储OSS为了解决海量数据存储与弹性扩容,项目中我们采用云存储的解决方案- 阿里云OSS。1、开通“对象存储OSS”服务(1)申请阿里云账号(2)实名认证(3)开通“对象存储OSS”服务(4)进入管理控制台2、创建Bucket选择:标准存储、公共读、不开通3、上传默认头像创建文件夹avatar,上传默认的用户头像4、创建RAM子用户二、使用SDK1、创建Mavaen项目com.southaliyun-oss2、pom<dependencies>

2021-09-09 10:02:37 825

原创 Mybatis-Plus介绍与使用

一,介绍信息官网地址https://mybatis.plus/框架结构1.1,安装使用地址:安装 | MyBatis-Plus1.2,初始化工程1.导入依赖1.3,原生Mybatis实现查询User创建子ModuleMybatis实现查询User第二步编写User实体对象:(这里使用lombok进行简化bean操作)第三步编写UserMapper接口:第四步编写UserMapper.xml文件:第五步编写测试用列:1.4,Mybatis+M

2021-09-06 14:20:26 783

原创 Netty对websocket的支持

Netty和WebStocket介绍1.什么是WebSocket?WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。2.什么是Netty?Netty由JBOSS提供的一个开源框架,是一个异步的、基于事件驱动的网络框架应用,用于快速开发高性能、高可靠性的网络IO程序。具体应用Maven依赖<dependency> <groupId>i

2021-09-06 14:15:43 182

学生管理系统

本文件是一个学生管理系统,集成与c#与sql开发,方便于教室对学生的管理。符合现代社会潮流。

2018-09-02

空空如也

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

TA关注的人

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