自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringCould集成OpenFegin步骤

4、我启动的时候报错了,主要原因是还是jar包冲突,去掉spring-cloud-starter-netflix-ribbon依赖,采用工具dependency analyzer(没有本插件的自行下载)排除掉这个包。3、mall-order 通过OpenFegin客户端调用 mall-product中的queryAllBrand方法。1、项目最基本的结构介绍,现在我要实现订单项目调用商品项目里面的方法。​2、mall-product中被调用的方法实现如下。mall-order 订单项目。

2023-04-18 21:05:12 83

原创 一次CPU突然飙高的详细排查流程

后来我不相信,又仔细的查看,所有 RUNNABLE的线程,对应只能看到好像和MQ和JSON有关。有一天有个同事突然找来和我说,你最近是不是上什么代码,现在部署订单项目(临时起的名字,具体项目于不变透漏)似乎线程夯住了,所以请求都超时了。我猜测可能是因为图中的写法,采用的策略设计模式方案导致,不能直接定位到具体的线程,直接搜索RUUNABLE大概可以看到因为2.6的原因。到这时终于可以松一口气了,不是自己的问题,哈哈。​总之大家遇到问题CPU飙高的问题不要慌,按照上面的方法,基本不会存在太大的问题。

2023-04-14 11:44:34 343

原创 docker安装redis

redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内conf文件。-v /mydata/redis/data:/data 将redis储存文件夹挂载到主机(宿主机路径:容器路径)-v /mydata/redis/conf:/etc/redis 将配置文件夹挂载到主机(宿主机路径:容器路径)-p 3306:3306 映射端口(宿主机端口:容器端口)--name redis :将容器取名为redis。打开dockerhub官网。4、启动redis容器。

2023-04-12 08:50:52 66

原创 Docker安装mysql数据库

v /mydata/mysql/data:/var/lib/mysql 将mysql储存文件夹挂载到主机(宿主机路径:容器路径)-v /mydata/mysql/log:/var/log/mysql 将日志文件夹挂载到宿主机(宿主机路径:容器路径)-v /mydata/mysql/conf:/etc/mysql 将配置文件夹挂载到主机(宿主机路径:容器路径)建立目录:sudo mkdir -p /etc/mysql/conf.d。,选择对应的版本命令。--name mysql:将容器取名为mysql。

2023-04-11 17:51:48 79

原创 Java分布式ID-雪花算法

还是那句话,没有完美的解决方案,我们不能因噎废食。2、那么通过上面结构的介绍,我们可以用代码实现,主要看getNextId方法,一定要先看上面的思路,搞懂整个分布式ID串的结构,然后再看代码,这一样更容易理解。5.3 如果直接大约10毫秒了,或者很大,那怎么办,按照我的意思是直接抛出异常,直接报警发送邮件,然后运维手动处理服务器时间,然后重新启动服务就行了。5.2 如果大于1秒小于10毫秒了,那么我们可以把最最近的10毫秒,存储在内存的map存最近10毫秒的最大值,然后这个上面直接增加。

2023-04-07 11:09:47 288

原创 Java分布式ID-Redis实现ID

首先我们需要明确的结论:Redis实现ID可以用,这也是很多公司的选择。但是在redis服务器宕机的情况下,他也可能会出现重复生成ID的情况。缺点:数据库作为一个缓存,很有可能出现宕机的情况,即使redis有持久化机制,但是可能存在丢失1s的情况,那么这种极端场景下可能出现重复生成ID的情况。1、那么按照我们的思路来说:很简单,对应的key和value, key:业务类型 value:自增加数值。1.1 缺点:订单的value会随着订单的增多一直网上增加,迟早有一天会突破redis数值的极限。

2023-04-06 20:33:52 168

原创 Java分布式ID-主键自增ID

此时单库满足不了,分表也不能满足你的用户并发量操作(单库数据库连接会成为并发的瓶颈,此时可以进行分库,也可以实现读写分离,咱们这讨论分库的情况),那么此时你需要进行分库。针对2.2其实应用并发量比较大的情况,如果多台服务器都是用的同一个库调用的主键(order_primary_key)表生成的id生成。可以这样说,对于我们来做的绝大部分系统都达不到需要分库分表的程度,基本上用的都是单表。主键表专门存储主键。orderId的主键为 1,3,5,7,9。orderId的主键为 2,4,6,8,10。

2023-04-04 17:04:51 1028

原创 Java分布式ID-UUID

4.2. 既然分布式id是主键,然后主键是包含索引的,然后mysql的索引是B+树实现,每次插入UUID都得进行索引的优化,对B+树非常不友好。2.1当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。4.1. 首先分布式id一般都会是主键,但是安装mysql官方推荐越短越好,UUID每一个都很长,所以不推荐。2.3全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。优点:简单,代码方便;

2023-04-04 11:56:33 199

原创 Command line is too long. Shorten command line for XXXApplication or also for Spring Boot default

根据图一选择Edit Configurations出现图二,然后在第二个图中直接添加Short command Line。1、工作中启动Springboot项目经常会遇到如图中的问题。添加图片注释,不超过 140 字(可选)

2023-03-27 13:44:38 476

原创 通俗易懂的反转链表

2.3 记录cur当前节点断开之后,后面链接的头节点的地址:ListNode next = cur.next;2.1 建立反转之后的链表头节点。2.2 建立当前要反转处理的节点。2.5 移动反转之后头节点pre到当前节点cur。2.6 当前节点cur只想下一个要处理的节点。cur = next;2.4 将当前节点cur的下一个节点指向反转之后的pre。2.7 返回新链表的头节点:return pre;1、针对力扣的上面的单链表反转,对应的地址(

2023-03-25 18:32:27 35

原创 容器化技术(三)-Docker安装

比如说我想使用docker安装nginx软件,那么我需要使用docker先下载nginx的镜像(image),然后进行安装。所以才需要安装阿里云镜像加速。在其中找到docker-ce,点击进去可以找到地址信息 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo。4、当然还有可以通过rpm包的方式安装(适用于没有互联网接入的情况),具体可以去中文官网看一下,可以看一下(3.使用RPM程序包安装(适用于没有互联网接入的情况))

2023-03-25 17:36:40 44

原创 容器化技术(二)-Docker架构介绍

Register:容器镜像仓库,用于存储已经生成容器运行模板的仓库,用户使用时,可以直接从容器仓库中下载容器镜像,就可以运行容器镜像中包含的应用了。Container:由容器镜像生成,用于应用程序运行的环境,包含容器镜像中所有文件及用户后添加的文件,属于基于容器镜像生成的可读写层。Docker Client:客户端连接工具,用于同Docker Daemon进行通讯,执行用户命令,可以部署在 Docker Host上,也可以部署在其他服务器上。(说到底就是管理容器的,但是容器创建是由。

2023-03-23 22:26:52 62

原创 容器化技术(一)

针对现有容器化技术的流行开来,几乎每一家大点的公司,现在都开始使用虚拟化容器技术来实现程序的快速持续化构建过程,相信你在面试或者工作过程中应该常常听说过docker,devops,k8s,云服务器等等一系列的名词,那么从本章开始就为大家开始介绍容器化技术。阐述:在之前一个房子(假设出租房子没有修筑房间,整个是一个大的房间)只能出租给一个人(一台服务器只能部署一个应用)。2.3 高扩展和高可用,由于容器是自包含和隔离的,这意味着您将能够更轻松地水平扩展分布式应用程序。敬请期待.......

2023-03-21 09:58:49 57

原创 SpringBoot统一异常处理方法

在工作过程中,如果项目架构没有做到位,对于异常没有特殊的处理,通常会将代码执行过程中遇到Exception会直接以栈信息的形式返回给前端。2、我们会自定义一些业务异常,返给前端,以便前端展示对应的错误,让用户明白操作哪里有问题。但是有时候也有有非业务异常,这样通常会统一封装,返回前端错误信息“系统异常,请联系管理员”的错误信息。1、因为我们项目都是前后端分离的项目于,所以后端服务通常都是以接口的形式展示给前端。所以我们通常我们会封装统一的返回成功或者失败的信息。最后我们可以看到结果信息。

2023-03-13 19:21:57 203

原创 Java事务的那点事

Java 事务 大事务 手动事务

2023-03-10 11:36:00 60

原创 sign签名的实现

最近工作中,在开发app端接口的时候,app端调用后端服务接口的时候,一直报签名错误。这里介绍一下前后端生成签名的大概流程。 所以需要明白的几点: 1、前后端签名我们项目采用的md5的加密方法。 具体方法可以看下面代码。当然还可以有其他的好多的加密方法。这只是其中一种。 2、前端和后端将数据生成对应的sign必须采用相同的规则,生成对应的字符串,然后进行md5加密,这样生成的sign才能相同。如果数据被拦截,修改其中任意一点数据,都会造成前后端数据不一致,从而导致生成的s

2023-03-07 10:27:45 1942 1

空空如也

空空如也

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

TA关注的人

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