- 博客(89)
- 收藏
- 关注
原创 Centos7 部署rocketmq
下载的是5.1.4:wget https://dist.apache.org/repos/dist/release/rocketmq/5.1.4/rocketmq-all-5.1.4-bin-release.zip。nohup sh bin/mqnamesrv -n "你的ip地址:9876" &修改conf/broker.conf,加入:brokerIP1=你的ip地址。下载后用unzip解压就行了。进入bin的上层目录执行代码。
2024-09-24 04:18:21 355
原创 centos7 docker部署nacos
修改 nacos-docker-2.3.0/env/nacos-standlone-mysql.env,配自己的数据库信息。创建名称为nacos_config的数据库,并且初始化表结构,建表语句在下面(请找你自己安装的版本对应的SQL文件)6. 修改standalone-mysql-8.yaml。deponds_on: 所在行以及后面的行全注释掉。进入nacos-docker文件。按这个来就行,非常好。
2024-09-24 03:07:20 654
原创 centos7安装docker & DokcerCompose
yum下载很慢,一直出现正在尝试其它镜像,更改yum地址为阿里云镜像即可1)下载了阿里云提供的CentOS 7的Yum源配置文件,并将其覆盖到系统中的 /etc/yum.repos.d/CentOS-Base.repo文件。2)清除旧缓存3) 生成缓存。
2024-09-23 23:48:44 575
原创 Spring
Bean实例创建(堆申请空间 创建对象)、Bean属性赋值(@Autowired等)、初始化、注册Destruction销毁回调接口、使用Bean、调用回调接口销毁Bean。
2024-07-27 22:35:00 407 1
原创 Redis生产问题
某热点key过期,导致当前数据只存在于数据库中,而不在缓存中。导致大量请求直接打到了数据库上。缓存在同一时间大面积失效或者服务宕机,导致大量请求直接打在数据库上,造成压力。
2024-07-18 17:24:09 500
原创 Redis三种常用的缓存读写策略
现在基本都用这个模式Cache Aside Pattern 中服务端需要同时维系 db 和 cache,并且是以 db 的结果为准。
2024-07-17 18:15:38 725
原创 Redis数据结构
Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。
2024-07-17 16:10:57 395
原创 分布式缓存-Redis持久化
使用缓存的时候,我们经常需要对内存中的数据进行持久化也就是将内存中的数据写入到硬盘中。大部分原因是为了之后重用数据(比如重启机器、机器故障之后恢复数据),或者是为了做数据同步(比如 Redis 集群的主从节点通过 RDB 文件同步数据)
2024-07-16 20:52:56 913
原创 进一步分析一下Channel在做什么
那么既然是和操作系统进行内容的传递,那么说明应用程序可以通过通道读取数据,也可以通过通道向操作系统写数据。I/O 多路复用模型本质上是一种阻塞 I/O,进行读操作的 read 系统调用是阻塞的,select 的时候也是阻塞的。在接收到连接请求之前,选择器(位于应用程序)都会一直阻塞在select()方法上:select()在系统内部实际在连接操作系统,操作系统会去检测有没有数据发送过来,没发过来就一直阻塞。接收到数据之后(就绪事件触发),因为通道是连接到操作系统的,而数据已经被发送到操作系统,
2024-03-29 11:44:23 405
原创 根据实例逐行分析NIO到底在做什么
Selector(选择器)是 Channel 的多路复用器,它可以同时监控多个 Channel 的 IO 状况,允许单个线程来操作多个 Channel。Channel在从Buffer中获取数据。选择器、通道、缓冲池是NIO的核心组件。此时选择器内只包含这一条负责监听连接请求的通道答:最最关键的一步是选择器的存在,同时下图第一个红框,ServerSocketChannel属性设置为非阻塞也有一定作用(某客户端发一半数据不发了,卡在那里谁也救不了)选择器监听通道,所监视的正是通道中的事件,key就代表通道中出现
2024-03-29 01:32:53 1121
原创 Spring Cloud 网关Gateway + 配置中心
网络的接口,负责请求的路由、转发、身份校验路由:告诉请求去哪找转发:请求找不到直接带请求过去。
2024-03-25 16:52:54 448
原创 Spring Cloud 注册中心及注册中心的桥梁OpenFeign源码分析
服务提供者定时发送心跳续约,如果注册中心持续没有收到续约,则向服务消费者发送推送变更,将这个服务(电话号)剔除。服务提供者在启动时将自己能提供的服务注册至注册中心,服务消费者可以从注册中心订阅和拉取相关服务信息。,把application.yaml中热更新的属性配置扔到nacos上,方便人去配置。进一步转换,发现item-service还只是微服务名,需要把他转成对应的真正地址。注册中心用于已经拆开的各项服务之间通信,类似作为远程通信的可以动态更新的。使用,把服务的地址扔到nacos上,方便服务找。
2024-03-24 21:49:05 615
原创 JVM==>图解字节码指令
getstatic #4. 表示获取System.out 的静态字段, 该静态字段的类型为java.io.PrintStream。该指令执行完成后,操作数栈顶存放的就是System的out静态字段的引用。根据常量池,方法区提供的信息,确定操作数栈深度为2,局部变量表的长度为4就足够用了, 避免浪费。, 但是区别在于, i++ 是返回操作数栈上的值, ++i 是返回局部变量表上的值。short范围以内的数字不会放到常量池中的, 直接进入存入方法区。执行完成后,弹出println栈帧,并清空main操作数栈。
2023-12-04 19:55:13 683
原创 JVM类加载==>类结构与.class文件字节码指令
himagic:魔数minor_version 小版本号major_version 主版本号constant_pool_count 常量池access_flags 访问修饰符(public)this_class 类的包名,类名super_class 父类interfaces_count 接口信息fields 成员变量,静态变量等变量信息method 方法信息attributes_count 附加属性用一段代码:编译成.class字节码文件就是这样(16进制)
2023-12-04 14:50:05 568
原创 JVM内存结构:StringTable与常量池关系
首先看一道题 这就涉及到StringTable和常量池,答案在文末,全做对就不用看了而StringTable的位置在不同版本也有变化 , 我们只探讨jdk1.8版本与StringTable 串池对应的是常量池。
2023-12-03 16:55:45 457
原创 JVM内存结构
虚拟机栈和程序计数器一样, 也是线程私有的, 即线程运行需要开辟一块内存空间-->栈栈帧:栈会在栈上为线程中每个方法的都分配一块空间, 成为栈帧方法执行完栈帧释放, 线程执行完栈释放每个虚拟栈默认分配1024KB大小内存, 也可以通过参数指定1. 不涉及 线程执行完栈内存自动没了 GC主要涉及堆2. 不是 太大线程数量就会受限了3. 那得看变量是线程共享还是线程私有。
2023-12-03 01:36:27 947
原创 ConcurrentHashMap 1.8详解
Java8 中的使用的锁加 CAS 的机制。结构是Node 数组 + 链表 / 红黑树,Node 是类似于一个 HashEntry 的结构。它的冲突再达到一定大小时会转化成红黑树,在冲突小于一定数量时又退回链表。
2023-10-20 15:42:26 862
原创 苍穹外卖(八) 使用WebSocket协议完成来单提醒及客户催单功能
WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信(双向传输)——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。HTTP是短连接WebSocket是长连接HTTP通信是单向的,基于请求响应模式WebSocket支持双向通信HTTP和WebSocket底层都是TCP连接既然WebSocket支持双向通信,功能看似比HTTP强大,那么我们是不是可以基于WebSocket开发所有的业务功能?
2023-10-15 21:44:13 2331 2
原创 苍穹外卖(七) Spring Task 完成订单状态定时处理
是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。应用场景:信用卡每月还款提醒火车票售票系统处理未支付订单入职纪念日为用户发送通知点外卖未按时支付取消订单只要是需要定时处理的场景都可以使用Spring Task。
2023-10-15 21:02:09 822 2
原创 苍穹外卖(五) 微信小程序
小程序是一种新的开放能力,开发者可以快速地开发一个小程序。可以在微信内被便捷地获取和传播,同时具有出色的使用体验。
2023-10-15 15:47:32 1649 1
原创 苍穹外卖(六) redis缓存解决数据库压力
Redis是一个基于内存的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。基于内存存储,读写性能高适合存储热点数据(热点商品、资讯、新闻)企业应用广泛Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库,官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。它存储的value类型比较丰富,也被称为结构化的NoSql数据库。NoSql(Not Only SQL),不仅仅是SQL,泛指非关系型数据库。
2023-10-14 21:41:45 819 2
原创 苍穹外卖(四) AOP切面公共字段自动填充及文件上传
的方式为这个Mapper的方法加入注解, (让这个方法成为切入点)作为一个标识表示该操作需要赋值 没有标识就不需要。
2023-10-14 14:43:01 912
原创 AOP面向切面编程
其实就是面向方法编程在调用List()方法时, 会自动调用模板方法对这六种方法计算执行时间都使用这个模板方法, 因此这就是面向方法编程。
2023-10-13 20:46:32 141
原创 苍穹外卖(二)新增员工及项目细节
ThreadLocal 并不是一个Thread,而是Thread的局部变量。ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
2023-10-13 14:50:28 354
原创 苍穹外卖(一)
本项目(苍穹外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括 系统管理后台 和 小程序端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护,对餐厅的各类数据进行统计,同时也可进行来单语音播报功能。小程序端主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单、支付、催单等。接下来,通过功能架构图来展示管理端和用户端的具体业务功能模块。
2023-10-12 21:28:54 755
原创 Cookie 和 Session机制
CookieCookieHTTP 协议自身是属于 "无状态" 协议."无状态" 的含义指的是:默认情况下 HTTP 协议的客户端和服务器之间的这次通信, 和下次通信之间没有直接的联系.但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的.例如登陆网站成功后, 第二次访问的时候服务器就能知道该请求是否是已经登陆过了图中的 "令牌" 通常就存储在 Cookie 字段中.此时在服务器这边就需要记录令牌信息, 以及令牌对应的用户信息, 这个就是 Session 机制所做的工作.
2023-09-25 14:26:44 243
原创 Servlet
Servlet是一种实现动态页面的技术是一组Tomcat提供给程序猿的API,帮助程序猿简单高效的开发一个 web app.允许程序猿注册一个类在Tomcat收到某个特定的HTTP请求的时候执行这个类中的一些代码帮助程序猿解析HTTP请求把HTTP请求从一个字符串解析成一个对象帮助程序猿构造HTTP响应程序猿只要给指定的对象填写一些属性字段, Servlet就会自动的安装HTTP协议的方式构造出一个HTTP响应字符串并通过Socket。
2023-09-21 23:51:30 111
原创 HTTP响应详解, HTTP请求构造及HTTPS详解
响应报头的基本格式和请求报头的格式基本一致类似于ContentTypeContentLength等属性的含义也和请求中的含义一致。
2023-09-16 22:04:28 579
原创 HTTP协议介绍与HTTP请求详解
HTTP (全称为超文本传输协议")是一种应用非常广泛的所谓超文本的含义就是传输的内容不仅仅是文本比如html, css这个就是文本),还可以是一些 其他的资源,比如图片视频音频等二进制的数据HTTP诞生与1991年目前已经发展为最主流使用的一种应用层协议HTTP往往是基于传输层的TCP协议实现的均为TCP, HTTP3基于UDP 实现)目前我们主要使用的还是HTTP1.1和HTTP2.0 .当前课堂上讨论的HTTP以1.1版本为主。
2023-09-13 14:48:54 421
原创 java包装类&简单认识泛型
一般的类和方法,只能使用具体的类型要么是基本类型,要么是自定义的类。如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大。---Java编程思想》对泛型的介绍。
2023-09-09 20:50:18 213
原创 第16章_多版本并发控制MVCC
在MVCC机制中,多个事务对同一个行记录进行更新会产生多个历史快照,这些历史快照保存在Undo Log里。如果一个事务想要查询这个行记录,需要读取哪个版本的行记录呢?这时就需要用到ReadView了,它帮我们解决了行的可见性问题。ReadView就是事务在使用MVcc机制进行快照读操作时产生的读视图。当事务启动时,会生成数据库系统当前的一个快照,InnoDB为所有事务构造了一个数组,用来记录并维护系统当前活跃事务的ID(“活跃"指的就是,启动了但还没提交。
2023-09-08 16:50:28 385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人