自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(248)
  • 收藏
  • 关注

原创 22-09-20 西安 谷粒商城(04)Redisson做分布式锁、布隆过滤器、AOP赋能、自定义注解做缓存管理、秒杀测试

/ 自定义注解需要管理的参数:缓存的key、锁的名称(击穿)、缓存过期时间、随机过期时间(雪崩)//单位秒//单位秒}此时我们就可以这么使用了,把我们上面那个那么长的方法简化到极致@Override//远程服务调用查询2/3级分类}缓存管理就被我们抽取了,真牛逼啊!但是我们还得通过aop赋能,通过切面给注解添加功能。

2022-09-20 21:30:02 1122

原创 22-09-19 西安 谷粒商城(03)使用redis实现分布式锁、ab并发测试、LUA脚本、看门狗自动续期

分布式锁key需要设置过期时间 解决死锁问题;uuid作为值,解决误删除;LUA脚本将多个redis的操作+逻辑判断写成一个脚本交给redis一次性执行看门狗机制:通过额外的线程在过期时间的2/3时重新设置键的过期时间

2022-09-19 20:07:23 1003

原创 22-09-06 西安 谷粒商城(02)浏览器跨域问题、阿里云oss图片上传、SEO搜索引擎优化、Mybatis分步查询

跨域是浏览器的同源策略,浏览器为了保证页面中发起的异步请求安全;文件上传最佳实践:oss参数保存在后端服务器前端js上传文件之前先访问后端接口获取临时授权

2022-09-18 19:09:57 929

原创 22-09-04 西安 谷粒商城(01)MySQL主从复制、MyCat读写分离、MyCat分库分表

通过MyCat和MySQL的主从复制配合搭建数据库的读写分离,实现MySQL的高可用性。数据分片是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。

2022-09-05 18:30:22 968

原创 22-09-02 西安 栈、GC垃圾判定、垃圾回收算法、对象的finalize机制

方法区:存储已被虚拟机加载的类元数据信息(元空间)堆:存放对象实例,几乎所有的对象实例都在这里分配内存虚拟机栈(java栈):虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息

2022-09-02 21:31:21 394

原创 22-09-01 西安 JUC(04)java内存模型JMM、volatile关键字、原子性类、CAS比较并交换、AQS锁原理

volatile 保证此变量对所有的线程的可见性和禁止指令重排序优化CAS是解决多线程并发安全问题的一种乐观锁算法ABA问题: 数据修改后又被改回来 无法判断数据之前是否被修改过juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的

2022-09-01 20:34:13 272

原创 22-08-30 西安JUC(03) Callable接口、BlockingQueue阻塞队列、ThreadPool线程池

使用Callable创建的子线程需要借助FutureTask对象来执行它的call方法阻塞队列:添加元素 获取元素 移除元素的方法有4套

2022-08-30 23:09:07 391 1

原创 22-08-29 西安 JUC(02)线程安全集合类、 juc强大的辅助类

线程不安全使用ArrayList,线程安全使用synchronizedList线程不安全使用HashMap,线程安全 使用ConcurrentHashMap

2022-08-29 19:57:02 243

原创 22-08-27 西安 JUC(01)synchronized、Lock锁、ThreadLocal、LockSupport、死锁问题排查

同步成员方法,锁的是调用方法的对象。同步静态方法,锁的是类模板对象,即当前类的Class对象。同步方法块,锁的是小括号里的对象ReentrantLock特点:可重入的、可公平可不公平,可响应中断的,悲观的排他的锁,需要手动控制锁的添加、释放。使用灵活 代码层面的锁..............................

2022-08-28 10:31:48 415

原创 22-08-26 西安 MySQL高级(04)索引失效、关联查询优化、排序分组优化、千万级数据分页的优化、Innodb的行锁

最佳左前缀法则:指的是查询从索引的最左前列开始并且不跳过索引中的列。永远是选择小表驱动大表(小表作为驱动表)InnoDB的行锁,是通过锁住索引来实现的,如果加锁查询的时候没有使用到索引,会将整个聚簇索引都锁住,相当于锁表了。.........

2022-08-27 14:01:38 1015

原创 22-08-25 MySQL高级(03)MySQL索引、索引演绎、适合加索引的情况、执行计划Explain各字段解释

虽然索引大大提高了查询速度,同时却会降低更新表的速度,因为需要维护索引

2022-08-25 21:31:02 392

原创 22-08-23 西安 MySQL高级(02)SQL查询模板与机读顺序、SQL7式、函数与存储过程

有返回值 的mysql方法,就是函数;无返回值 的mysql方法,就是存储过程;索引是“排好序的快速查找B+树数据结构”

2022-08-23 20:38:30 472 4

原创 22-08-22 西安 MySQL高级(01)MySQL逻辑架构、InnoDB存储引擎、SQL执行流程、javaSE面试题

mysql插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。让我们可以根据业务的需求和实际需要选择合适的存储引擎。

2022-08-22 21:57:24 337

原创 22-08-18 西安 尚医通(07)挂号流程、就医提醒,预约统计、rabbitmq的使用、定时任务、Echarts

mq在这里充当了异步调用的作用,可以提高下单的响应速度

2022-08-19 23:15:51 1701

原创 22-08-13 西安 尚医通(06)生成微信二维码、java实现微信扫码登录、阿里云存储图片

和微信端对接,忙完后微信端会给你3个参数微信端扫描二维码,点击允许,就会调用redirect_uri接口,并且会返回code临时票据

2022-08-14 21:23:15 347

原创 22-08-08 西安 尚医通(04)MongoDB命令、MongoTemplate、MongoRepository

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。索引通常能够极大的提高查询的效率,索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值进行排序的一种结构。接口,非常方便的实现了增删改查。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和。........

2022-08-08 21:14:55 1090

原创 22-08-06 西安 尚医通(03)EasyExcel; Spring Cache 、Redis做缓存

EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。...........................

2022-08-07 10:41:00 607

原创 22-08-02 西安 尚医通(02)Vscode、ES6、nodejs、npm、Bable转码器、js模块化、webpack

11、let声明变量 作用域+重复定义2、const常量 只读+初始化3、解构赋值 数组或对象中的值拆出来,赋值给变量4、模板字符串1、可以当做普通字符串来用2、多行字符串3、在字符串中嵌入变量和表达式。以前是用+拼接4、调用函数5、声明对象简写6、定义方法简写7、对象扩展运算符8、箭头函数。.............................................

2022-08-02 19:58:15 499 2

原创 22-08-01 西安 尚医通(01)跨域配置、Swagger2、R类、统一异常处理和自定义异常、Logback日志

让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要统一异常处理器1.不使用统一的异常处理器之前,看看效果2.使用统一的异常处理器之后的返回值如下全局的异常处理器定义如下@Slf4j和log.error不是必须得,可以没有,这俩货就是为了记录日志的。@Slf4j//ex表示当前请求处理中出现的异常对象}}自定义异常YyghException@Data}在GlobalExceptionHandler中加入以下特定的自定义的异常自定义异常的使用try{...............

2022-08-01 18:53:03 404

原创 22-07-30 西安 MybatisPlus

让自己变得稀缺的最好的办法就是让自己拥有的能力,这种把多种能力结合在一起,并且为同一个目标服务,就会发挥巨大的价值。--------《认知红利》

2022-07-31 09:51:46 802

原创 22-07-29 西安 分布式事务、2PC、TCC、事务消息、Seata

Seata全称SimpleExtensibleAutonomousTArchitecture,简单可扩展自治事务框架。Seata是阿里开源的一个分布式事务框架,能够让大家在操作分布式事务时,像操作本地事务一样简单。一个注解搞定分布式事务。Seata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式,为用户打造一站式的分布式解决方案。Seata中有两种分布式事务实现方案,AT及TCCAT模式。............

2022-07-29 19:29:39 359

原创 22-07-27 西安 Elasticsearch(02)Spring Data Elasticsearch

SpringData的另一个强大功能,是根据方法名称自动实现功能。比如你的方法名叫做findByTitle,那么它就知道你是根据title查询,然后自动帮你完成,无需写实现类测试类中测试方法@Test//查询全部,并按照价格降序排序Iterableitems=itemDao.findByTitle("手机");}首先,要知道索引库中所有的文档如下运行后控制台打印如下效果他不就有了吗但是方法名称要符合一定的约定KeywordSample(方法命名。...

2022-07-28 11:11:29 593

原创 22-07-26 西安 ElasticSearch(01)

Elaticsearch,简称为es,可以看成一个数据库,可以存储数据搜索数据es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据,1PB=1024TBes也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能但是它的目的是通过简单的RESTfulAPI来隐藏Lucene的复杂性,从而让全文搜索变得简单。............

2022-07-26 21:00:36 683

原创 22-07-25 西安 Docker 镜像命令、容器命令、Dockerfile、私有仓库、阿里云镜像仓库

Docker是一个开源的应用容器引擎,基于Go语言开发Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app),更重要的是容器性能开销极低Docker的主要目标是“”,“一次封装,到处运行”即只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。Docker的好处一致的运行环境Docker镜像。........................

2022-07-25 18:58:26 725 1

原创 22-07-24 SpringCloud(04) Sentinel、流控模式与流控效果、降级熔断策略、热点key限流

也被称为分布式系统的随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel以流量为切入点,熊流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性【流量就是客户端请求】不依赖任何框架/库,能够运行于所有Java运行时环境,同时对Dubbo/SpringCloud等框架也有较好的支持。基于SpringBoot开发,打包后可以直接运行,不需要额外的Tomcat等应用容器。........................

2022-07-24 18:22:21 316

原创 22-07-24 西安 SpringCloud(03) Nacos注册中心和配置中心、CAP和Base

一站式解决方案把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partitiontolerance)。CAP原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。一致性(C)在分布式系统中的所有数据备份,在同一时刻是否同样的值。】创建工程2、写配置文件3、主启动。..................

2022-07-24 12:07:47 573

原创 22-07-22 西安 SpringCloud(02) Hystrix断路器、zipkin+sleuth 分布式链路请求跟踪

因为我们在服务端的方法做了手脚,所以消费者访问的时候是要等5秒的,又因为在消费者里配置了feign等待6s,所以此时是能在5秒后看到页面效果的。通常当你发现一个模块下的某个实例失败后,这时候这个模块依然还会接收流量,然后这个有问题的模块还调用了其他的模块,这样就会发生级联故障,或者叫。多个微服务之间调用的时候,假如微服务A调用微服务B和微服务C,微服务B和微服务C又调用其他的微服务,这就是所谓的。提供端设置自身调用超时时间的峰值,峰值内可以正常运行,超过了需要有兜底的方法处理,作服务降级。.........

2022-07-22 20:51:10 835

原创 22-07-20 西安 SpringCloud(01)分布式微服务、Eureka、RestTemplate+Ribbon、OpenFeign

新建一个配置类,要特别注意该配置类不能放在@ComponentScan所扫描的当前包下以及子包下,否则我们自定义的这个配置类就会被所有的Ribbon客户端所共享,达不到特殊化订制的目的了。让我想起了傲娇的央视六公主,在b站的简介,就一个字。主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby状态)。Ribbon其实就是一个软负载均衡的客户端组件,他可以和其他所需请求的客户端结合使用,和eureka结合只是其中的一个实例。........

2022-07-20 21:32:07 549 2

原创 22-07-19 西安 RabbitMQ(03) 消息可靠投递、消费端限流、死信队列、延迟队列、集群搭建

SpringBoot提供了快速整合RabbitMQ的方式基本信息在yml中配置,队列交互机以及绑定关系在配置类中使用Bean的方式配置生产端直接注入RabbitTemplate完成消息发送消费端直接使用@RabbitListener完成消息接收生产者启动,投递消息。........................

2022-07-19 21:28:46 618

原创 22-07-18 西安 RabbitMQ(02)spring整合RabbitMQ、SpringBoot整合RabbitMQ

由于这个方法需要的参数,我们可以推论出在,这三种模式下都是需要指定交换机的名字,类型。并且队列和交换机之间是有不同的绑定关系的。spring-rabbitmq.xml中配置监听器和队列名的绑定关系。/***参数1交换机名称*参数2路由键名(广播设置为空)*参数3发送的消息内容*/干什么作用的呢,就是在消费端在消费某一个队列的消息时会和一个监听器匹配,消息的内容可由该监听器拿到。指定要连接的MQ服务器,因为是简单模式,就只是创建队列(指定队列名)就好了。*参数3发送的消息内容。................

2022-07-18 22:17:24 594 1

原创 22-07-18 西安 RabbitMQ (01) RabbitMQ安装、控制控制台界面、RabbitMQ五种模式

Channel是在connection内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的channel进行通讯,AMQPmethod包含了channelid帮助客户端和messagebroker识别channel,所以channel之间是完全隔离的。message到达broker的第一站,根据分发规则,匹配查询表中的routingkey,分发消息到queue中去。看的出来,在生产端代码我们是通过信道创建了队列,并把消息发布到了队列里。.........................

2022-07-18 19:23:56 1764

原创 22-07-17 西安 springboot(02)自定义启动器、常用启动器、项目打包部署

需求定义一个连接池启动器,当用户引入了连接池启动依赖之后,项目中就已经自动配置了连接池自定义启动器创建工程spring-boot-jdbc-starter,父工程不选引入依赖springboot没有配置文件,要准备配置类在自定义启动器中创建属性配置类,读取工程springboot_01的application.yml配置文件。...............................................................

2022-07-17 13:14:14 596

原创 22-07-16 西安 springboot(01)入门使用、配置文件、springboot很多注解、自动配置原理、配置文件查找顺序

springboot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,springboot整合了所有的框架。SpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework同属于spring的产品(Spring家族中的一员)我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引入坐标(不需要添加版本)即可!,我们必须引入SpringBoot提供的自动配置依赖,我们称为。..............

2022-07-16 20:18:09 997

原创 22-07-15 西安 nginx

下,其默认的配置文件都放在这个目录的conf目录下,而主配置文件nginx.conf也在其中,后续对nginx的使用基本上都是对此配置文件进行相应的修改。访问http//nginx的ip9000/edu/直接跳转到127.0.0.18080。访问http//nginx的ip9000/vod/直接跳转到127.0.0.18081。在/usr/local/nginx/sbin目录下执行./nginx-sstop。重命名为tomcat8080。...................................

2022-07-15 14:11:23 1575

原创 22-07-14 西安 Git 分布式版本控制系统 、代码管理

git是目前世界上最先进的分布式版本控制系统,git可以做源代码管理Linus(LinusTorvalds林纳斯.托瓦斯)是在BitKeeper停止向开源社区提供免费版本后开发了Git,BitKeeper在免费使用的许可证中加入很多限制条件,惹恼了内核开发者,最终促使Linus开发出了毁灭BitMover的Git。集中式版本控制工具SVN分布式版本控制工具Git分为本地仓库和远程仓库,每个人都要维护好自己的本地库我们老师这么说的,Git操作clone克隆,就是将远程仓库复制到本地。.............

2022-07-14 19:53:15 781 1

原创 22-07-12 西安 尚好房项目(03)Spring Security

认证:登录的过程就是认证授权:户认证成功后,需要为用户授权对后台系统进行权限控制,其本质就是对用户进行认证和授权,使用Spring Security可以帮助我们来简化认证和授权的过程。web-admin中引入依赖,因为在父工程shf-parent已经有了其依赖管理,所以这里引入的依赖就只有groupId和artifactId,省略了版本号和依赖范围认证和授权是发生在处理器处理请求之前,所以引入过滤器“SpringSecurity Filter”web.xml中配置Spring Security

2022-07-12 17:07:36 829

原创 22-07-11 尚好房项目(02) --权限管理(给用户分配角色、给角色分配权限、菜单管理)

权限管理这一块知识点看起来还真的是高大上呢、所以必须拿下这个纸老虎。

2022-07-11 16:34:54 1476 3

原创 22-07-05 七牛云存储图片、用户头像上传

使用七牛云提供的对象存储服务来存储图片注册并登录成功以后:第一步:创建对象存储空间在资源管理里点击新建存储空间 此时弹出页面:填好信息 可以创建多个存储空间,各个存储空间是相互独立的 第二步:查看存储空间信息存储空间创建后,会在左侧的存储空间列表菜单中展示创建的存储空间名称,点击存储空间名称可以查看当前存储空间的相关信息切换tab页到-文件管理 七牛云开发者中心可以通过七牛云提供的开发者中心学习如何操作七牛云服务,地址:七牛开发者中心对象存储 - 七牛开发者中心 点击对象存储,跳转到对象存储开发页面写

2022-07-05 18:07:23 796

原创 22-07-04 西安 尚好房(01)项目经验总结

尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供优质房产服务资源。根据演示了解项目业务BaseController,里面真的很简单,但是考虑到以后每一个Controller都要用到封装的那俩行代码,在新增,修改添加成功会用得到。是用来给消费者的Controller继承的。 BaseService是用来给中间商“service-api”来继承的, 它里面的内容是下面这样子的,继承了它就相当于Service里写了五个通用的增删

2022-07-04 17:00:34 948

原创 2022-07-01 西安 RPC、Dubbo

软件架构的发展经历了单体架构、垂直架构、SOA架构、微服务架构的演进过程。1、单体架构:单体架构中,所有功能代码全部都在同一个部署包中。2、垂直架构按照业务进行切割,形成小的单体项目。 3、SOA架构SOA全称为 "Service-Oriented Architecture",即面向服务的架构。4、微服务架构微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”。Apache Dubbo是一款高性能的Java RPC框架。其前身是阿里巴巴公司开源的一个高性能、轻量级的

2022-07-01 21:11:11 503

空空如也

空空如也

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

TA关注的人

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