自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(177)
  • 问答 (5)
  • 收藏
  • 关注

原创 springboot之mybaitsPlus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2024-03-06 16:34:53 835

原创 springboot之异步任务、邮件任务、定时任务

世界是复杂的,但又不是随机的,知识也应当如此。求知的道路,意味着永恒的疲倦以及偶尔的惊喜。可能性的艺术:比较政治学30讲。

2024-03-05 15:15:02 401

原创 springSecurity

在web开发中,安全第一位。我们在servlet中使用过滤器、拦截器也可以做到安全的功能,框架会更方便简单一点。做网站:安全应该在设计之初就考虑!shiro、springSecurity:两者很像。他们都可以做认证和授权的功能。

2024-03-03 11:05:32 963

原创 springboot之jdbc、druid、mybatis、redis

父母和外婆都不再是能够更改心中珍视之物先后顺序的年纪。

2024-02-27 20:11:52 447

原创 山西的方言

日渐长大的女儿与妻子越来越像,对他来说既是祝福,亦是诅咒。

2024-02-02 15:28:45 366

原创 各种包的地址

一年级学生半斤八两,只是在乱射,让她们用脑子去射好像还很难。

2024-02-02 15:13:16 319

转载 linux命令之make

make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make.可见,makefile都成为了一种在工程方面的编译方法。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。如果死的是我,她们会怎么议论呢?

2024-01-31 17:01:14 27

原创 pandas

小炮子,人有一口饭吃,还怕什么,到哪里没有一口饭吃。

2023-11-09 12:52:32 131

原创 redis进阶

启动的时候就通过配置文件来启动的!

2023-10-05 11:32:22 253

原创 mysql优化之索引

索引官方定义:索引是帮助mysql高效获取数据的数据结构。索引的目的在于提高查询效率,可以类比字典。在数据之外,,这种数据结构以某种方式(引用)指向数据。这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。例如将id加索引,在mysql数据库里开辟一块存储空间来存放索引数据,查询的时候如果根据id去查询,就要走这个索引库,在索引库找到之后,就能定位这条数据,因为索引库的每一项和数据库的物理地址是绑定的,你能找到这条索引,就能找到这条数据所对应的物理地址,就可以直接获取这条数据。

2023-09-23 20:09:58 191

原创 java之juc二

因为在不同的硬件生产商和不同的操作系统下,内存的访问逻辑有一定的差异,结果就是当你的代码在某个系统环境下运行良好,并且线程安全,但是换了个系统就出现各种问题。内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类型的变量来说,load、store、read和write操作在某些平台上允许例外)如果对一个变量进行lock操作,会清空所有工作内存中此变量的值,在执行引擎使用这个变量前,必须重新load或assign操作初始化变量的值。线程、工作内存、主内存。

2023-08-16 18:56:36 147

原创 java之juc

juc是java.util.current的简写,意思是并发编程。

2023-07-30 21:41:26 317

原创 谷粒商城二十五springCloud之Sleuth+Zipkin 服务链路追踪

微服务架构是一个分布式架构,它按业务划分服务单元,一个分布式系统往往有很多个服务单元。由于服务单元数量众多,业务的复杂性,如果出现了错误和异常,很难去定位。主要体现在,一个请求可能需要调用很多个服务,而内部服务的调用复杂性,决定了问题难以定位。所以微服务架构中,必须实现分布式链路追踪,去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而达到每个请求的步骤清晰可见,出了问题,很快定位。

2023-05-08 17:52:00 1444 1

原创 谷粒商城二十四Sentinel限流&熔断&降级

我们即使再快也会有一个极限值,现在假设单机下每秒处理一万个单,这已经是超高的处理能力了,秒杀服务上了五台服务器,有三台掉线,但是秒杀请求网关直接放过了10w请求,全部放进来,那剩下的两台服务器就处理不过来,每台服务器的顶峰值是1w,所有的请求都得排队,排着排着就造成了请求的时间累积,时间一长,资源耗尽,服务器就要崩溃了。会把我们整个系统保护的非常稳定,即使百台服务器的大集群,有了Sentinel的保护,上线或者崩溃几台服务器,都是非常的稳定。,除了快之外,我们还需要保证。在我们的系统里面,我们使用。

2023-05-05 10:48:38 1037

原创 谷粒商城二十三秒杀服务

苏迎澜告诉小逸,没有一件事情是靠逃避解决掉的,去直面恐惧,才可以快点成长,保护自己。如果秒杀服务和其他服务(例如商品服务)混合起来,如果秒杀时间一到,瞬时流量全涌进商品系统,正常的购买商品流程可能就会瘫痪,系统就没有更多的能力去处理正常的功能了。秒杀是每一个电商系统中非常重要的模块,商家会不定期的发布一些低价商品,发布到秒杀系统中,秒杀系统的商品一般会放到首页展示,这样就可以引导用户购买商品。如果是普通的购买,由于时间段比较分散,任何时间都可以购买,留给某一段时间段的流量可能比较均匀。

2023-04-23 15:59:51 439

原创 谷粒商城二十二订单服务支付宝支付

那现在我们就想测试该怎么办?支付宝为我们提供了沙箱环境,我们可以在应用未上线之前来进行调试。按照正规的流程,我们的系统要接入支付宝,肯定是需要大量的审核过程,而且需要我们的项目上线。我们支付暂时只开发支付宝,

2023-04-15 23:13:18 795

原创 谷粒商城二十一订单服务分布式事务

假设我们订单服务是成功的,在调用库存服务的时候,出现了假失败的情况,例如服务器故障、超时等原因,库存锁成功并且库存服务事务提交了之后,一直没有给订单服务返回,远程调用有一个超时机制,远程调用会抛一个类似readTimeout的异常,就会出现一个问题,如果是远程调用的库存服务出异常,首先库存服务自己会回滚,订单服务会在库存服务调用完成之后获取返回的锁库存的结果,得知发生了异常,订单服务也会抛异常,那么订单服务也会回滚。举个例子,订单服务的执行流程是,订单服务的逻辑、远程调用库存服务、远程调用优惠券服务。

2023-04-06 16:31:04 782

原创 python之logging模块

logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;

2023-03-29 11:20:39 354

原创 谷粒商城二十订单服务

【代码】谷粒商城二十订单服务。

2023-03-26 16:49:39 547

原创 BigDecimal

随着计算复杂,用户需求变大,传统取整不能满足用户需求,计算精度同样需要更加精确。根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值。特别是金融项目,出现 0.30000000000000004 体验不是特别好。还有如果需要对金额,进行四舍五入,保留2位。Math.round() 不能满足事件需求所以 我们才会考虑用 BigDecimal ,解决这些问题。

2023-03-23 18:16:14 239

原创 谷粒商城十九购物车服务

每一个请求进来,tomcat会开一个线程给我们处理,从拦截器的执行,到controller,service,dao一直到请求结束给浏览器响应,从始至终都是同一个线程。ThreadLocal的核心原理,其实就是一个map,map的key时thread(当前线程),值就是当前线程要共享的数据。所以在同一个线程期间,所以下一个流程要共享上一个流程的数据,就可以使用ThreadLocal。状态下将商品添加到购物车【游客购物车/离线购物车/临时购物车】key不一样,值也就不一样,所以我们每一个线程是互不干扰的。

2023-03-19 15:04:43 211

原创 谷粒商城十八认证服务之分布式session

苏迎澜的父母离婚很早,妈妈看重自己的事业,经常在外地出差,由保姆照顾她的基本生活。虽然少了身边的陪伴,但当自己需要的时候,妈妈一定会第一时间回来。妈妈从不和她说哄小孩子的叠语,还会聊很多种大人世界里的事情。中使用HttpSession来传递返回的用户信息,结果发现登录成功后商城首页并不能获取到session中的用户信息。每个session都有它的作用域,认证服务只能获取认证服务的session,商城首页是商品服务的,自然是获取不到的。的时候,跨页面传递数据常用的是session。

2023-03-17 16:06:54 816

原创 谷粒商城十七认证服务之OAuth2.0微博登录

QQ、微博、微信、github等网站的用户量非常大,如果让用户用我们的网站,按照我们的注册流程来走,用户可能嫌太麻烦,这样就会损失用户。社交登录遵循的是OAuth2.0协议。

2023-03-13 18:13:18 270

原创 springboot之thymeleaf

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的html文档。从字面上理解模板引擎,最重要的就是模板二字,这个意思就是做好一个模板后套入对应位置的数据,最终以html的格式展示出来,这就是模板引擎的作用。模板引擎的功能就类似我们的会议室开会一样开箱即用,将模板设计好之后直接填充数据即可而不需要重新设计整个页面。提高页面、代码的复用性。

2023-03-11 13:52:17 1618

原创 谷粒商城十六认证服务之注册和普通登录

谷粒商城十五认证服务

2023-03-04 14:05:45 224

原创 谷粒商城十五商品详情CompletableFuture异步编排

例如a,b,c三个异步任务,不是随机运行就可以,它们还有一定的关系,c需要等待a的返回结果,b不需要等待谁的结果。当异步任务产生一些关系和顺序之后,我们要编排好它们的关系进行调用,又是一个复杂的过程。我们可以用来解决这个问题。

2023-02-25 08:27:38 2143

原创 java调用elasticSearch api

java操作es有两种方式通过操作es的9300端口,9300是tcp端口,集群节点之间通信也是通过9300端口,会通过9300和es建立一个长连接,下面的es的依赖可以直接操作但是随着es的版本的提升spring-data需要封装不同版本的es的jar包,好像还没封装到这个版本(2019),另外官方也不推荐通过9300来操作es,而且这种方式在es8以后将被废弃通过9200操作,发送http请求我们在浏览官方文档的时候发现,js可以直接操作es,那为什么我们不直接用js来操作es呢?

2023-02-20 16:39:51 2918

原创 谷粒商城十四检索服务

刘怡婷知道当小孩最大的好处,就是没有人会认真看待她的话。她大可吹牛、食言,甚至说谎。也是大人反射性的自我保护,因为小孩最初说的往往是雪亮真言,大人只好安慰自己,小孩子懂什么。挫折之下,小孩从说实话的孩子进化为可以选择说实话的孩子,在话语的民主中,小孩才长成大人。替换index.html中的内容,并将静态资源全部复制到nginx中。修改windows本地hosts文件。在gateway模块添加路由至末尾。修改gulimall.conf。

2023-02-09 22:36:54 171

原创 谷粒商城十三缓存与分布式锁

为了系统性能的提升,我们一般都会将部分数据放入缓存中,加速访问。而 db 承担工作。哪些数据适合放入缓存?即时性、数据一致性要求不高的即时性:物流状态信息,可能五分钟或者五十分钟看一次,频率看的高,但更新的速度是很慢的,我们对即时性的要求也不高。一致性:数据库与缓存不一致,例如分类,修改之后我们可能并不需要立马保持一致,不会产生太大的影响。访问量大且更新频率不高的数据(读多,写少)商品一旦录入之后,我们很少去做一些修改,但是我们经常会查询商品的信息,我们就可以把它放到缓存中。举例:电商类应用,商品分类

2022-12-05 14:46:01 542

原创 谷粒商城十二性能压测及优化

在分布式开发中,我们将每一一种服务都抽取成一个独立的模块,微服务模块在真正的上线之前,甚至是上线以后,我们都要进行压力测试,才能投入正常的使用。知道了系统瓶颈,就可以通过一些负载均衡配置,避免给系统在单位时间内发送太多的请求,导致系统被压垮,以至于宕机。 90%响应时间(90% Response Time) 是指所有用户的响应时间进行排序,第 90%的响。对于互联网业务中,如果某些业务有且仅有一个请求连接,那么 TPS=QPS=HPS,一。互联网中型网站:1000TPS~50000TPS。

2022-12-02 19:19:25 955

原创 谷粒商城十一整合thymeleaf渲染商城首页及nginx搭建域名访问环境

我们的商城系统本应该也是前后端分离的,就像后台管理系统那样,然而出于教学考虑,前后端分离的话就会屏蔽掉很多细节,所以我们进行服务端的(有点儿类似freemarker)这些页面直接粘贴到微服务中去就行了,用户访问所有请求,全部先访问的是nginx,nginx作为反向代理将数据全部转发给网关,网关再路由到各个服务nginx在后面部署的时候,我们可以将微服务中的页面的部署到nginx中,这样就在部署期间做到了,好处是可以分担微服务的压力动静分离中的静指的是:图片、js、css等静态资源(以实际文件存在的方式),最

2022-11-28 00:24:42 1239

原创 谷粒商城十elasticsearch搜索服务及商品上架

todo 名字之所以是谷粒商城十,是因为上一篇文章太少了,有时间将上一篇文章和九合并一下有关es的安装及原生操作,看。

2022-11-15 18:21:28 855

原创 谷粒商城九商品服务之商品属性及仓储服务todo

之前的文章我都是把整篇的代码直接复制到文章中,这样容易抓不住重点,从这篇开始,我会把重点代码单独择出来,在文章的最后再把完整的代码贴出来。

2022-10-28 12:45:22 840 2

原创 谷粒商城八商品服务品牌管理之前后端数据校验

* * 错误码和错误信息定义类 ** 1. 错误码定义规则为 5 为数字* 2. 前两位表示业务场景,最后三位表示错误码。例如:100001。10:通用 001:系统未知 异常* 3. 维护错误码后需要维护错误描述,将他们定义为枚举形式 *** 错误码列表:* 10: 通用* 001:参数格式校验* 11: 商品* 12: 订单* 13: 购物车* 14: 物流**

2022-10-27 21:49:42 401

原创 谷粒商城七商品服务品牌管理之oss文件存储

在逆向工程的时候,resources下有一个view文件夹,下面都是可以直接使用的vue文件,我们将它复制到。我们在系统管理–菜单管理下新增,上级菜单是商品系统,名称是品牌管理,url是。此时就生成了和这个项目其他界面相似的带有crud的界面,中就可以直接生成crud界面。下面我们对这个页面进行优化。然后将我们逆向生成的。

2022-10-23 16:54:59 864

原创 记录自己那些蠢到爆炸的操作

如果你觉得这篇文章的名字为何如此的沙雕,那说明你是一个认真细致的同学,就别来看笑话了这篇文章的重点不在技术、架构巴拉巴拉之类专业的问题,而是明知还错的不认真马虎的问题,所以如果你的问题确定是技术问题,就也别浪费时间了。

2022-10-12 10:27:39 427

转载 商城系统架构的演变

单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先就是考虑服务器的集群处理。

2022-10-08 22:31:35 193

转载 高危端口基本了解

这些端口不允许你使用,它们都有确切的定义,对应着因特网上常见的一些服务,每一个打开的此类端口,都代表一个系统服务例如80端口就代表Web服务。21对应着FTP,25对应着SMTP、110对应着POP3等;

2022-09-23 16:47:02 4292

原创 jsp基础

jsp全名是java server pages,它是建立在Servlet规范之上的动态网页开发技术。在jsp文件中,HTML代码与Java代码共同存在,其中,HTML代码用来实现网页中静态内容的显示,Java代码用来实现网页中动态内容的显示。简单来说:jsp页面可以写java代码,还可以写html代码。jsp执行原理<%@ page import="java.util.Date" %><%@ page import="java.text.SimpleDateFormat" %&gt

2022-05-15 23:15:04 439

原创 javaweb之cookie、session、filter、listener

用户打开一个浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程可以称之为会话。在客户端与服务器端交互的过程中,会产生一些数据。为了保存会话过程中产生的数据,在Servlet技术中,提供了两个用于保存会话数据的对象,分别是。一个网站怎么证明你来过?服务端给客户端一个信件(cookie),客户端下次访问服务端带上信件就可以了服务器登记你来过了,下次你来的时候我来匹配你(session)

2022-05-15 20:23:33 370

空空如也

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

TA关注的人

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