自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Openresty+Lua+Redis实现高性能缓存

OpenResty® 是一个基于Nginx与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。官网:OpenResty® - 开源官方站Lua 是一个小巧的脚本语言。

2024-02-04 22:23:36 1840 3

原创 Centos7安装原生Nginx并配置反向代理

这里我使用之前开发好的,一个应用,分别部署到192.168.31.102:9527,192.168.31.32:9527 这两台服务器上,两个服务都有一个获取商品详情的接口,一会我就用这个接口测试一下Nginx配置是否正确。当我的应用程序需要集群化部署之时,必然需要一个反向代理,当然Nginx的大名,这里不做更多的介绍了,这里介绍一下Nginx常用的四大阵营。这里的IP地址为虚拟机的地址,正常情况下,应该能看到下面页面,如果不行的话,建议检查一下防火墙是否没有关闭。继续执行,可能仍然会报下面这个这个错误。

2024-01-31 19:08:44 839

原创 Redis缓存穿透、缓存击穿、缓存雪崩的解决方案

缓存穿透、缓存击穿、缓存雪崩看似3个问题,实际上还是有一些相通的点,总结一下,如何在一个接口中做到同时预防这3个问题。

2024-01-31 00:08:03 1145 1

原创 SpringBoot 3.1.7集成 Redis 6.2.13及Redis哨兵模式安装

拷贝3个配置文件到/usr/local/etc 目录,分别命名为sentinel-26379.conf,sentinel-26479.conf,sentinel-26579.conf,3个配置都一样,主要是需要改一下端口号相关的配置。拷贝3个配置文件到/usr/local/etc 目录,分别命名为redis-6379.conf,redis-6479.conf,redis-6579.conf,6379端口为master,另外2个为从节点。新增RedisSentinelProperties配置文件映射类。

2024-01-29 10:32:28 1175

原创 电商系统设计到开发03 引入Kafka异步削峰

电商系统设计到开发01 第一版设计到编码-CSDN博客电商系统设计到开发02 单机性能压测-CSDN博客本篇为大制作,内容有点多,也比较干货,希望可以耐心看看已经开发的代码,并对其下单接口进行了压力测试压力测试,该接口一个请求需要查询数据库4次,更新4次 ,插入2次,总共访问数据库10次,其中2个事务,3次查询是加锁查询,还有 1 次 rpc 请求,单实例情况下吞吐量为110/s今天我们将其引入Kafka,看看吞吐量会有多少的提升,又会引入什么新的问题呢?

2024-01-26 17:46:43 1258 2

原创 Spring-Kafka 3.0 消费者消费失败处理方案

我们作为Kafka在使用Kafka是,必然考虑消息消费失败的重试次数,重试后仍然失败如何处理,要么阻塞,要么丢弃,或者保存Kafka3.0 版本默认失败重试次数为10次,准确讲应该是1次正常调用+9次重试,这个在这个类可以看到 org.springframework.kafka.listener.SeekUtils据我的实验,spring-kafka3.0版本通过application.yml 配置是行不通的,也没有找到任何一项配置可以改重试次数的(网上很多说的通过配置spring.kafka.consum

2024-01-26 01:12:39 2839 1

原创 SpringBoot 3.1.7 集成Kafka 3.5.0

写这边篇文章的目的,是记录我在集成kafka客户端遇到的一些问题,文章会记录整个接入的过程,其中会遇到几个坑,如果需要最终版本,直接看最后一节就行了,感觉Spring-Kafka的文档太少了,如果采用SpringBoot集成的方式接入,一不小可能就会踩坑。在org.springframework.kafka.annotation.KafkaListener 类的注释上面有写到可以使用org.springframework.kafka.support.Acknowledgment。问题分析:有2中可能。

2024-01-25 00:48:08 1278

原创 SpringBoot3.1.7集成Kafka和Kafka安装

从 Kafka 2.8.0 版本开始,KRaft 模式已经被正式引入,在 KRaft 模式下,ZooKeeper 不再是必需的,既然kafka团队有意要去除对zookeeper的依赖,那我们也顺应趋势,使用KRaft模式启动。Kafka 因为是强依赖zookeeper的,所以必须要先启动zookeeper,不过好在Kafka帮我们把zookeeper的包都准备好了,放在libs目录下面,并且启动脚本也准备好了,我们直接启动就行了。看看内存的占用,还好不多,减掉系统本身的内存183,大约只有60M。

2024-01-22 10:45:48 1510

原创 Centos7 设置每5分钟同步系统时间

在我们本地电脑使用的虚拟机中,经常电脑睡眠导致系统时间总是不正确,从而导致应用程序的时间不正确。如果显示激活状态就不用执行下面操作了,否则进行安装启动。下面简单操作几步,让系统定时同步远程时间。在文件的最下方输入下面代码即可。检查系统是否安装了crond。

2024-01-20 11:18:34 477

原创 SpringBoot 3.1.7 集成Sentinel

核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持(见主流框架适配控制台(Dashboard):Dashboard 主要负责管理推送规则、监控、管理机器信息等。

2024-01-20 01:09:05 1824

原创 SpringBoot 服务注册IP选择问题

有时候我们明明A\B服务都注册成功了,但是相互之间就是访问不了,这大概率是因为注册时选择IP时网卡选错了,当我们本地电脑有多个网卡时,程序会随机选择一个有IPV4的网卡,然后读取IPv4的地址。比如我的电脑有3个网卡,程序注册时就经常用192.168.211.1 这个地址,这个地址与我的虚拟机是不互通的,我期望是使用WLAN 2 这个网卡,这是互通的。也可以通过控制面板->网络和Internet->网络和共享中心->更改适配器设置。禁用掉其他没用的网卡。

2024-01-19 23:24:24 606

原创 Centos7 如何设置开机启动某个程序

Centos7 如何设置开机启动某个程序

2024-01-19 19:59:31 467

原创 电商系统设计到开发02 单机性能压测

电商系统设计到开发(第一版)-CSDN博客已经开发的代码,今天我们对上面开发的代码进行压力测试,看看单机部署的情况下,性能表现如何。风萧萧兮/concurrency-entry-task有兴趣的可以看看。

2024-01-18 23:23:57 1137

原创 如何一键部署本地Java项目到服务器上

我开发了一个Java代码,现在想部署到服务器上,当然可以使用Jenkins部署,但是Jenkins配置和维护成本比较高,所以我今天分享的是轻量级的一键部署脚本。这里要注意你的脚本位置在哪里,我的脚本位置在项目的doc/script 目录下,所以执行下面之前,需要执行 cd ../../ 跳转到项目的根目录。然后输入服务器的root密码,然后按回车,jar包文件就同步到服务器上了,如果需要跳过输入密码这一步,可以看下面的免密登录ssh。这一步千万要注意,不是把这个。e 第五步 重启sshd应用。

2024-01-18 22:07:21 894

原创 电商系统设计到开发01 第一版设计到编码

为了学习和研究一个系统是如何演进并发展的,这里采取电商系统是因为电商系统不需要过多的解释业务背景,另外业务也会设计的相对简单,大家可以将关注点放在技术本身上。所有的数据都正确,主流程测试成功(说明:因为代码刚刚开始也是有少量bug的,我进行了多次调试,金额是经过多次转账的,所以看到的金额可能有点奇怪,最后的操作我验证过是正确的)我只设计简单也,同时也简化模块功能,这里商品与订单放在一个系统,用户中心与账户放在同一个系统,所以只有2个系统,系统间的通信方式用OpenFeign + Consul。

2024-01-18 14:23:28 548

原创 SpringBoot 3.1.7 集成 mybatis-generator-maven-plugin 插件

SpringBoot 3.1.7 集成 mybatis-generator-maven-plugin 插件,使得方便数据库字段快速同步到项目中,不用手敲,节约开发时间。双击 [mybatis-generator:generate] 运行看看效果吧!这里的包在官网中是hsqldb数据库,是我根据自己的情况找的方案,用了MySQL。我这边按照自己的项目做了配置,下面配置很简单,就不多说了,看看应该都会了。这段配置代码,官网也没有,也是我在网上找的。最后的pom.xml 就长这样。

2024-01-17 17:58:34 904

原创 SpringBoot 3.1.7 集成Mybatis

Mybatis的中文官网并没找到与SpringBoot最新的集成的教程,有的都是老式的配置方法,所以记录一下怎么我是怎么集成SpringBoot 3.1.7 集成Mybatis 的方法有条件的可以打开源网站mybatis-spring-boot-starter: Mybatis官方spring-boot-starter。

2024-01-17 13:58:43 995

原创 SpringBoot 3.1.7 集成 SpringCloud OpenFeign

这里要注意@EnableFeignClients(basePackages = "com.ychen.**") ,因为com.ychen.usercenter.api.UserCenterFacade属于引用外部项目,所以这里要指定扫描包路径,否则Spring默认不会扫工程以外的包。2. FeignApi(下图的user-api) ,这个模块为其他2个模块的公共依赖模块,相当于2个项目通信的协议。3. FeignServer (下图的user-center)准备一个项目,项目中有3个模块,1。

2024-01-16 02:13:59 965

原创 Centos 7 单机部署 consul

另外UI地址 http://192.168.31.110:8500/ui/dc1/services 也访问不了,经过我的一番探索,明白启动之前需要配置相关启动参数才行。上篇文章我们看了Nacos启动啥也不干,占用了700M的内存,现在我们看看consul,仅启动会暂用多少内存。查看consul状态,发现启动是成功了,但是从日志上来看,是有错误发生的。总结: 这一对比,内存占用差别真的差太远了,consul完胜!启动consul前内存占用 189M。启动consul后内存占用222M。

2024-01-15 21:11:03 917

原创 Centos7 单机部署nacos-server

大约占用内存879 - 179 = 700M,也就是说什么操作都不做的情况下需要暂用内存700M。Nacos的运行至少在2C4G 60G的机器配置下运行,下面我测试一下Nacos的内存占用情况。我现在使用2C4G的Centos机器上启动了Nacos,看看启动前后的内存占用情况。点击下载,下载完成后,上传到Centos的var/local 目录。在Centos服务器中执行下面命令,如果显示OK表示启动成功了。就可以访问nacos控制台了。

2024-01-15 17:44:16 465

原创 Centos7安装MySQL5.7详细步骤

一般用的centos的系统都会自带一个系统数据库,那就是mariadb,因为没有激活,只有一个安装好的mariadb-libs-5.5.68-1.el7.x86_64,可以把mariadb-libs-5.5.68-1.el7.x86_64卸载。然后我们下载一个MySQL的管理工具,我用的是免费的DBeaver,安装完成后,注意要选择MySQL5,因为最新的DBeaver默认是MySQL8的连接器,现在5.7只能选MySQL5。如果你要做mysql性能优化,那么熟悉my.cnf 的相关参数是必不可少的。

2024-01-15 15:27:45 918

原创 SpringBoot集成日志框架教程

Spring的加载顺序:logback.xml --> application.properties --> logback-spring.xml。注意:日志系统是在Spring上下文之前创建的,因此不能使用@PropertySource配置,建议使用 logback-spring.xml。RollingFileAppender 配置了滚动输出,当日期滚动后会出现滚动,另外当文件大小大于maxFileSize也会触发滚动。线程名称:用方括号括起来(可能会被截断以用于控制台输出)综合性能表现还是不错的,

2024-01-15 01:19:13 815

原创 Apache JMeter 安装使用入门教程

Apache JMeter 安装使用入门教程

2024-01-14 18:49:31 996

原创 VMware 首次安装centos7 minimal 版本初始网络解决

centos7 minimal 初始版本是没有网络环境的,因为镜像的体积较小,这个版本是连网络都没有的,所以我们在初始化安装后需要解决网络问题我期望我的虚拟机能跟我的主机是在同一个网络并且是互通的,所以网络方式设置为桥接模式。

2024-01-13 15:06:06 367

原创 梳理一次业务优化技术实践

kafka 消息乱序解决方案

2023-12-24 21:47:28 360

原创 一篇文章搞定MySQL的事务底层MVCC与锁机制

InnoDB实现标准的行级锁定,其中有两种类型的锁, 共享(S)锁和排他(X)锁。共享 ( S) 锁允许持有该锁的事务读取一行。独占 ( X) 锁允许持有该锁的事务更新或删除一行。# S 锁# X 锁。

2023-11-02 23:21:07 98

原创 记MYSQL一次死锁排查

在2022.05.09 晚上的放款日报中发现,有2笔报 Deadlock 的异常,这种异常不属于业务异常,故需要人为介入排查。Error 1213: Deadlock found when trying to get lock; try restarting transaction根据日志排查怀疑是同一个表不同的索引之间产生了死锁所以模拟线上环境复现死锁场景线下模拟复现线下模拟Live环境复现死锁场景创建一个测试表:CREATE TABLE `user_infos` ( `i.

2022-05-13 00:12:56 336

原创 (02)ETCD源码之ETCD client PUT方法

1 介绍我们使用etcdctl 模块的main.go 的put命令可以向etcd服务put一个值,先看一下如何操作,cdetcdctl 进入etcdctl 目录,然后执行如下命令,即可put 一个值到Etcdgo run main.go put mykey "this is Hellox"2 打开etcdctl目录下的main.go查看执行过程func main() { apiv := os.Getenv(apiEnv) // unset apiEnv to avoid...

2021-09-11 23:12:02 821

原创 (01)ETCD源码之程序启动start

1、将ETCD源码下载下来,找到main.go,打开文件2、继续点击进入,前面都是一些校验逻辑,先跳过,直接点击startEtcdOrProxyV2方法3、找到StartEtcd() 方法,点击进入func startEtcdOrProxyV2(args []string) { grpc.EnableTracing = false cfg := newConfig() // 配置 defaultInitialCluster := cfg.ec.InitialCluste..

2021-09-10 16:08:27 672 1

原创 Golang开发工具

Golang开发工具1. GolandGoland 是一个Go语言IDE下载地址: https://www.jetbrains.com/go/download/#section=windows2. VS Code+ Go插件(免费)VSCode也支持Go, 只需要把Go相关插件集成进去即可下载地址:https://code.visualstudio.com/3. IDEA + Go 插件IDEA 也是有JetBrains公司出品, 其原本是为Java的IDE,但是只要安装了G

2021-08-10 22:43:57 2062 3

原创 Go 语言环境安装

Go 语言环境安装Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows Windows安装安装包下载地址为:https://golang.google.cn/dl/操作系统 包名 Windows go1.16.6.windows-amd64.msi Linux go1.16.6.linux-amd64.tar.gz Mac go1.16.6.darwin-amd6

2021-08-05 22:10:35 91

原创 为什么要学习Golang

第一讲 为什么要学习Golang首先我们看一下官网的介绍:Go 编程语言是一个开源项目,旨在提高程序员的工作效率。Go 具有表现力、简洁、干净和高效。它的并发机制可以轻松编写程序,充分利用多核和联网机器,而其新颖的类型系统可以实现灵活和模块化的程序构建。Go 可以快速编译为机器代码,且具有垃圾收集的便利性和运行时反射的能力。它是一种快速的、静态类型的、编译的语言,感觉就像一种动态类型的解释型语言。1、背景go是一个Google公司推出的一个开源项目(系统开发语言),它是基于编译、

2021-08-05 11:17:17 454

原创 Golang入门到精通

课程名称Golang入门到精通自我介绍网名: 风萧萧兮学历:本科目前在职、5年Java开发经验、1年的Golang开发经验做课程的目的:利用业余时间希望和大家一起学习、分享、交流Golang入门到精通-入门篇(偏基础)第01讲 为什么要学习Golang第02讲 Golang环境安装第03讲 Golang开发工具第04讲 Golang语言结构第05讲 Golang基础语法第06讲 Golang数据类型第07讲 Golang变量第08讲 Golang常

2021-08-05 11:13:56 790

原创 Gitlab CI/CD Sonar 集成简版

CI/CD介绍持续集成Continuous Integration(CI)持续交付Continuous Delivery(CD)gitlab概念Pipelines是CI/CD的顶级组件Pipelines are the top-level component of continuous integration, delivery, and deployment.Pipelines comprise:Jobs, which define what to do. For example, jo

2021-03-20 00:39:36 1014 2

原创 java中高级面试记录

很多同学在跳槽的时候才发现自己只是体系不够全面或者总结不够,下面是我在面试后总结的java面试官最喜欢问的问题,希望会帮到你。犹豫怕篇幅太长,这里不给出问题的答案。这里我们从几个方面来列出面试官最喜欢问的问题。一、java基础 1、问的最多的就是HashMap、ArrayList、LinkedList、HashSet等集合的底层实现,这些一定要去看源码和解析,别以为会用就可以...

2019-06-08 21:41:07 288

空空如也

空空如也

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

TA关注的人

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