自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

chenfl的博客

个人学习使用

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis

为什么要用Nosql1、单机MySQL的年代!90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的去使用静态网页Html ~服务器根本没有太大的压力!思考一下,这种情况下:整个网站的瓶颈是什么?1、数据量如果太大、一个机器放不下了!2、数据的索引(B+ Tree),一个机器内存也放不下3、访问量(读写混合),一个服务器承受不了~只要你开始出现以上的三种情况之一,那么你就必须要晋级!2、Memcached(缓存)+ MySQL +垂直拆分(读写分离)网站80%的情况都是在读,每

2022-09-20 14:45:05 294 1

原创 JVM下篇:性能监控与调优篇

1. 概述篇1.1. 大厂面试题支付宝:支付宝三面:JVM 性能调优都做了什么?小米:有做过 JVM 内存优化吗?从 SQL、JVM、架构、数据库四个方面讲讲优化思路蚂蚁金服:JVM 的编译优化jvm 性能调优都做了什么JVM 诊断调优工具用过哪些?二面:jvm 怎样调优,堆内存、栈空间设置多少合适三面:JVM 相关的分析工具使用过的有哪些?具体的性能调优步骤如何阿里:如何进行 JVM 调优?有哪些方法?如何理解内存泄漏问题?有哪些情况会导致内存泄漏?如何解决?字节跳动:

2022-05-31 17:16:36 1091

原创 docker简单部署

一、使用docker部署一个前端项目1.创建一个工作的目录mkdir /mywork2.项目进行打包npm run build会生产一个dist文件夹,如下,将打包好的dist文件上传到/mywork目录下3.准备nginx配置文件为了方便管理,创建的配置文件也放置在/mywork目录下,nginx.conf.template文件内容如下user nginx; #user nobody;worker_processes 1; #error_log logs/error.

2022-05-30 14:33:23 512

原创 linux安装jdk

一、使用yum安装jdk在linux上使用yum安装还是比较方便的1.执行命令yum -y list java*查看可安装java版本。执行成功后可以看见如下的结果有问题的话可以尝试重新建立yumwget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/re

2022-05-28 21:05:13 211

原创 JVM中篇:字节码与类的加载篇

0.概述0.1字节码文件的跨平台性0.1.1.Java语言:跨平台的语言(write once,run anywhere)当]ava源代码成功编译成字节码后,如果想在不同的平台上面运行,则无须再次编译这个优势不再那么吸引人了。Python、PHP、Perl、Ruby、Lisp等有强大的解释器。跨平台似乎已经快成为一门语言必选的特性。0.1.2.Java虚拟机:跨语言的平台Java虚拟机不和包括]ava在内的任何语言绑定,它只与“C1ass文件”这种特定的二进制文件格式所关联。无论使用何种语

2022-05-27 20:40:11 468

原创 JVM上篇:内存与垃圾回收篇

JVM上篇:内存与垃圾回收篇1.JVM 与 Java 体系结构1.1. 前言作为 Java 工程师的你曾被伤害过吗?你是否也遇到过这些问题?运行着的线上系统突然卡死,系统无法访问,甚至直接 OOM想解决线上 JVM GC 问题,但却无从下手新项目上线,对各种 JVM 参数设置一脸茫然,直接默认吧然后就 JJ 了每次面试之前都要重新背一遍 JVM 的一些原理概念性的东西,然而面试官却经常问你在实际项目中如何调优 JVM 参数,如何解决 GC、OOM 等问题,一脸懵逼大部分 Java 开发

2022-05-21 20:11:01 1227

原创 谷粒商城秒杀

秒杀和限流1 基于redis的秒杀方案1 缓存秒杀模型redis是单线程的,所以在redis中所有命令都是原子操作。而当要多条redis命令同时执行而不被打断时,则需要使用redis的事务了。- MULTI- EXEC- DISCARD- WATCHMULTI命令用于开启一个事务,它总是返回OK。MULTI执行之后,客户端可以继续向服务器发送任意多条命令, 这些命令不会立即被执行,而是被放到一个队列中,当 EXEC命令被调用时, 所有队列中的命令才会被执行。EXEC命令

2022-05-21 11:54:14 159

原创 谷粒商城支付

支付一、支付宝支付1、进入“蚂蚁金服开放平台”https://open.alipay.com/platform/home.htm2、下载支付宝官方 demo,进行配置和测试文档地址https://open.alipay.com/platform/home.htm 支付宝&蚂蚁金服开发者平台https://docs.open.alipay.com/catalog 开发者文档https://docs.open.alipay.com/270/106291/ 全部文档=>电脑网站支付文

2022-05-21 11:53:53 349

原创 谷粒商城购物车

购物车一、购物车需求1、需求描述用户可以在登录状态下将商品添加到购物车**【用户购物车/在线购物车】**放入数据库mongodb放入 redis(采用)登录以后, 会将临时购物车的数据全部合并过来, 并清空临时购物车;用户可以在未登录状态下将商品添加到购物车**【游客购物车/离线购物车/临时购物车】**放入 localstorage(客户端存储, 后台不存)cookieWebSQL放入 redis(采用)浏览器即使关闭, 下次进入, 临时购物车数据都在用户可以使用购

2022-05-21 11:53:40 200

原创 谷粒商城订单

订单1、 订单中心电商系统涉及到 3 流, 分别时信息流, 资金流, 物流, 而订单系统作为中枢将三者有机的集合起来。订单模块是电商系统的枢纽, 在订单这个环节上需求获取多个模块的数据和信息, 同时对这些信息进行加工处理后流向下个环节, 这一系列就构成了订单的信息流通。1、 订单构成1、用户信息用户信息包括用户账号、用户等级、用户的收货地址、收货人、收货人电话等组成,用户账 户需要绑定手机号码,但是用户绑定的手机号码不一定是收货信息上的电话。用户可以添加 多个收货信息,用户等级信息可以用来和促

2022-05-21 11:53:20 698

原创 typora、picgo配置图床

gitee+typora+picgogitee1. 登录码云账号建立仓库gitee官网:https://gitee.com没有自行注册一个,然后新建仓库2.设置私人令牌复制生产后的tokenpicgoPicGo下载地址:https://github.com/Molunerfinn/picgo/releases1.安装后打开,安装gitee插件2.设置gitee图床repo:码云上面我们的仓库路径一般是这样的格式:用户名/仓库名path:这是之后我们的图片生成之后的HTTP链接

2022-05-21 11:53:09 236

原创 配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境

确认版本首先确认已安装Git,可以通过 git –version 命令可以查看当前安装的版本。可以通过命令 git clone https://github.com/git/git 进行更新Git共有三个级别的config文件,分别是system、global和local。在当前环境中,分别对应%GitPath%\mingw64\etc\gitconfig文件$home.gitconfig文件%RepoPath%.git\config文件其中%GitPath%为Git的安装路径,%RepoP

2022-05-21 11:52:55 621

原创 异步和线程池

一、线程回顾初始化线程的 4 种方式继承 Threadpublic class test { public static void main(String[] args) { System.out.println("main方法。。。。。。开始"); Thread01 thread01 = new Thread01(); thread01.start();//启动线程 System.out.println("main方法

2022-05-21 11:52:35 298

原创 性能与压力测试

性能与压力测试一、性能监控1 、jvm内存模型程序计数器ProgramCounterRegister:记录的是正在执行的虚拟机字节码指令的地址,此内存区域是唯一一个在JAVA虚拟机规范中没有规定任何OutOfMemoryError的区域虚拟机:VMStack描述的是JAVA方法执行的内存模型,每个方法在执行的时候都会创建一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法接口等信息局部变量表存储了编译期可知的各种基本数据类型、对象引用线程请求的栈深度不够会报StackOv

2022-05-20 11:19:34 1392

原创 社交登陆,分布式session,单点登陆,jwt

社交登陆,分布式session,单点登陆,jwt一、社交登录QQ、 微博、 github 等网站的用户量非常大, 别的网站为了简化自我网站的登陆与注册逻辑, 引入社交登陆功能;步骤:1) 、 用户点击 QQ 按钮2) 、 引导跳转到 QQ 授权页3) 、 用户主动点击授权, 跳回之前网页。OAuth2.0OAuth: OAuth(开放授权) 是一个开放标准, 允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息, 而不需要将用户名和密码提供给第三方网站或分享他们数据的所有

2022-05-20 11:18:30 710

原创 认证服务示例

创建认证模块pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.or

2022-05-20 11:10:15 279

原创 缓存与分布式锁

缓存与分布式锁一、缓存1、缓存使用为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db 承担数据落盘工作。哪些数据适合放入缓存?即时性、数据一致性要求不高的访问量大且更新频率不高的数据(读多,写少)举例:电商类应用,商品分类,商品列表等适合缓存并加一个失效时间(根据数据更新频率来定),后台如果发布一个商品,买家需要 5 分钟才能看到新的商品一般还是可以接受的。**注意:**在开发中,凡是放入缓存中的数据我们都应该指定过期时间,使其可以在系统即使没有主动更新数据也能

2022-05-20 11:06:51 262

原创 接口幂等性

接口幂等性一、什么是幂等性接口幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用;比如说支付场景,用户购买了商品支付扣款成功,但是返回结 果的时候网络异常,此时钱已经扣了,用户再次点击按钮,此时会进行第二次扣款,返回结果成功,用户查询余额返发现多扣钱了,流水记录也变成了两条,这就没有保证接口的幂等性。二、哪些情况需要防止用户多次点击按钮用户页面回退再次提交微服务互相调用,由于网络问题,导致请求失败。feign 触发重试机制其他业务情况

2022-05-20 11:00:50 85

原创 定时任务与分布式调度

一、定时任务1、cron 表达式语法:秒 分 时 日 月 周 年(年Spring 不支持)http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html特殊字符:​ ,:枚举;​ (cron=“7,9,23 * * * * ?”):任意时刻的 7,9,23 秒启动这个任务;​ -:范围:​ (cron=“7-20 * * * * ?”):任意时刻的 7-20 秒之间,每秒启动

2022-05-20 10:53:03 269

原创 本地事务与分布式事务

本地事务与分布式事务一、本地事务1、事务的基本性质数据库事务的几个特性:原子性(Atomicity )、一致性( Consistency )、隔离性或独立性( Isolation)和持久性(Durabilily),简称就是 ACID;原子性:一系列的操作整体不可拆分,要么同时成功,要么同时失败一致性:数据在事务的前后,业务整体一致。转账 A:1000 B:1000 转 200 事务成功 A:800 B:1200隔离性:事务之间互相隔离。持久性:一旦事务成功,数

2022-05-20 10:51:59 416

原创 VirtualBox和Docker安装

1、安装Linux虚拟机下载&安装VirtualBoxhttps://www.virtualbox.org/,要开启CPU虚拟化下载&安装Vagranthttps://app.vagrantup.com/boxes/search Vagrant官方镜像仓库https://www.vagrantup.com/downloads.html Vagrant下载打开window cmd窗口,运行Vagrant init centos/7即可初始化一个centos7

2022-05-20 10:50:17 1234 1

原创 SpringCloud组件

SpringCloud 组件一、SpringCloud Alibaba1、SpringCloud Alibaba 简介1)、简介Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用 微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布 式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用 接入阿里微服务解决方案,通过阿里中间件

2022-05-20 10:44:22 699

原创 RabbitMQ

RabbitMQ 消息中间件异步处理应用解耦流量控制一、概述1.大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力2.消息服务中两个重要概念:**消息代理(message broker)**和 目的地(destination),当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。3.消息队列主要有两种形式的目的地1.队列(queue):点对点消息通信(point-to-point)2.主题(topic):发布(publ

2022-05-20 10:41:12 266

原创 nginx

Nginx的安装版本区别常用版本分为四大阵营Nginx开源版http://nginx.org/Nginx plus商业版https://www.nginx.comopenrestyhttp://openresty.org/cn/Tenginehttp://tengine.taobao.org/编译安装./configure --prefix=/usr/local/nginx如果出现警告或报错提示checking for OS + Linux 3.10.0

2022-05-19 18:36:16 368

原创 K8S部署&DevOps

k8s+kubesphere+devops一、k8s 集群部署1、k8s 快速入门1)、简介Kubernetes 简称 k8s。是用于自动部署,扩展和管理容器化应用程序的开源系统。中文官网:https://kubernetes.io/zh/中文社区:https://www.kubernetes.org.cn/官方文档:https://kubernetes.io/zh/docs/home/ 社区文档:http://docs.kubernetes.org.cn/部署方式的进化https

2022-05-19 18:33:53 4403 1

原创 了解JUC

高级技术之 JUC 高并发编程内容概览1 、什么是JUC2 、Lock接口3 、线程间通信4 、集合的线程安全5 、多线程锁6 、Callable接口7 、JUC三大辅助类: CountDownLatch CyclicBarrier Semaphore8 、读写锁: ReentrantReadWriteLock9 、阻塞队列10 、ThreadPool线程池11 、Fork/Join框架12 、CompletableFuture1 什么是 JUC1.1 JUC简介在Jav

2022-05-19 18:30:03 324

Demo字节码的解析示例

Demo字节码的解析

2022-05-22

空空如也

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

TA关注的人

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