自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用户线程和核心线程

用户线程存在多线程中,如果存在线程发送阻塞,该进程中其他的线程,由于无法感知到用户态的线程,会同等的阻塞其他的线程,无法充分利用cpu。所以将用户线程映射到核心线程中,当用户线程发生阻塞的时候,就可以切换其他的用户线程完成上下文的切换。这样的好处是,当发生阻塞的时候,操作系统一定能感知到,可以进行线程的调度,利用多核的cpu,坏处是随着线程的增多,核心空间分配的受限。多对一的线程,常常不被使用,此过程依然会发生线程的阻塞问题。因为多个用户态线程,无法被感知到,所以单个核心线程对应多个用户线程,会阻塞。

2023-10-06 13:02:18 78

原创 JVM内存结构

Class 文件中除了有类的版本/字段/方法/接口等描述信息外,还有一项信息是常量池(Constant Pool Table),用于存放编译期生成的各种字面量和符号引用,这部分内容将类在加载后进入方法区的运行时常量池中存放。在面向对象编程中,会频繁的使用到动态分派,如果每次动态分派都要重新在类的方法元数据中搜索合适的目标有可能会影响到执行效率。比如:描述一个方法调用了另外的其他方法时,就是通过常量池中指向方法的符号引用来表示的,那么**动态链接的作用就是为了将这些符号引用转换为调用方法的直接引用。

2023-09-06 14:43:22 126

原创 订单系统篇

第一个版本的时候,我是直接使用redis的ops来操作,遇到不够的则依次反向操作一次,但是如果此时发生故障,库存系统肯定不在准确,后续学习了一下午lua脚本,之后的部分redis有多个操作需要保证原子性的时候,都会使用lua脚本。,如果缓存的扣除由订单生成的时候,直接操作数据库,如果只使用一个消息队列单线程,其实没啥关系,但是如果使用了多线程,对于同一个商品的修改,一个时间内,只有一个线程能修改库存成功,如果有。,订单超时的情况下,订单入库是入不了的,但是库存返回,如果只有订单号可能会出现误判。

2023-09-06 14:41:26 106

原创 订单系统理解篇

订单系统,很多时候有库存限制,如果库存不够,根本没必要走到消息队列哪一个步骤,应该在创建订单的消息之前的时候,直接噶掉,还有如果服务压根处理不了那么多请求,就不要接受了要不然直接g了不太好,或者采取动态扩容,我目前还没实现(库存系统的原因)。订单系统的整体下来最难的点在于订单系统库存、支付、订单之间的关系(这里没有加入优惠卷部分),也就是订单的创建过程,需要考虑到非常多的问题,如果是同一个服务下,使用MySQL出现问题的可能性很小,但并发情况下,使用缓存和调用服务的过程,存在。在测试时间的时候,会发现。

2023-09-06 14:40:00 59

原创 JUC学习与理解

说明: 此函数用于获取写锁,首先会获取state,判断是否为0,若为0,表示此时没有读锁线程,再判断写线程是否应该被阻塞,而在非公平策略下总是不会被阻塞,在公平策略下会进行判断(判断同步队列中是否有等待时间更长的线程,若存在,则需要被阻塞,否则,无需阻塞),之后在设置状态state,然后返回true。这也是和Nonfair最大的区别,Nonfair每一次都会尝试去获取资源,如果此时该资源恰好被释放,则会被当前线程获取,这就造成了不公平的现象,当获取不成功,再加入队列尾部。③ 设置的时间到了。

2023-09-06 14:36:11 46

原创 Redis的主从复制

由于该缓冲区长度固定且有限,因此可以备份的写命令也有限,当主从节点offset的差距过大超过缓冲区长度时,将无法执行部分复制,只能执行全量复制。例如如果网络中断的平均时间是60s,而主节点平均每秒产生的写命令(特定协议格式)所占的字节数为100KB,则复制积压缓冲区的平均需求为6MB,保险起见,可以设置为12MB,来保证绝大多数断线情况都可以使用部分复制。在命令传播阶段,主节点除了将写命令发送给从节点,还会发送一份给复制积压缓冲区,作为写命令的备份;当超出了缓冲区的范围只能全量进行复制。

2023-09-06 14:33:40 28 1

原创 TDDL学习

底层对物理数据库做了代理,对单库的JDBC做了一层封装,执行底层单库的SQL;Atom层:它面对的是实实在在的每一个数据库,更多的工作在与对数据库的连接管理,比如说当数据库的 IP 地址发生改变时,Atom 层要动态感知,以免连接找不到地址。主库是买家的id进行分库进行的,而从库则可以,利用卖家的id进行分库。常见的固定hash算法,扩容的时候,将数据进行重新的加载。TDDL在ibatis之下,而在jdbc之上,也就是框架中的框架层。一致性hash,在扩容的时候,更加的平滑。分库分表,解释优化。

2023-09-06 14:32:20 67 1

原创 dubbo

上面提到了在 HTTP 及 TCP 协议之上构建 RPC 协议各自的优缺点,相比于 Dubbo 构建于 TCP 传输层之上,Google 选择将 gRPC 直接定义在 HTTP/2 协议之上。除必须的请求、响应数据外,通常还会包含额外控制数据,如单次请求的序列化方式、超时时间、压缩方式和鉴权信息等。弄清楚一个东西,需要知道,为什么需要dubbo,dubbo解决了哪些问题,dubbo的流程,dubbo的使用。基于HTTP协议之上的远程的调用更好的通用性,可扩展性,协议穿透性。协议的内容包含三部分。

2023-05-04 21:45:54 43

原创 Kafka集群部署+springboot代码编写配置

here my link

2023-03-22 00:36:52 69

原创 库存系统数据库更新问题

我的库存系统做的比较复杂吧,在这里出现了非常多的问题。记录下非常重要的点串行化。

2023-03-18 20:11:24 66

原创 Unknown Redis command called from Lua script

Unknown Redis command called from Lua script出现问题,我看到StackOverflow上说config什么出了问题,后来,我在写redis的lua脚本的时候,发现是我的问题,多了一个空格,记录下,防止大家踩坑。

2023-03-14 21:37:45 665

原创 组件工程问题

这个文件存在的意义是记录工程问题以及所可能的目前的解决方案。

2023-02-26 19:22:53 34

原创 netty实战(二)

本实战主要目的是想同时处理多种类型对象,以及对handler与channel更深入的理解,之后的部分会多 越多一些实际场景的文章,在决定做新的东西,其实感觉netty该做改用的部分,都体会了到了通过这个例子。本实战主要目的是想同时处理多种类型对象,以及对handler与channel更深入的理解,之后的部分会多 越多一些实际场景的文章,在决定做新的东西,其实感觉netty该做改用的部分,都体会了到了通过这个例子。

2023-01-22 21:15:01 158

原创 netty实战(一)聊天服务

经典例子,netty聊天服务,用来作为第一个实战来理解netty流程适合不过了。netty出现是为了方便大家使用NIO来进行编程,特别是socket编程。而很多的socket编程都会有很多的协议,我们此次只是为了体验netty,所以不设置协议,直接裸体读写。

2023-01-21 16:22:35 518

原创 netty理论部分(一)

netty的各个重要部分

2023-01-20 13:06:30 69

原创 JAVA的NIO(一)

Java的nio重要过程

2023-01-19 11:35:40 123 1

原创 计算机网络 tcp相关知识

计算机网络常见问题传输层协议q1 tcp的握手过程       tcp网络的握手过程分为3次,正如大多数博客所讲的基础过程也就是浏览器(client)发送请求到服务器(server),然后server返回client,然后在client在返回server。如下图       但面对这么过程中有许多的细节,例如为什么是3次,选择序列号有什么讲究等问题。&nbs

2021-07-19 16:09:15 140 1

原创 docker

起因我申请的一台服务器到期了,贫穷是我没法支付服务器费用嘤嘤嘤。然后就想起来,我好像看过一段时间的docker。那么我直接用docker来拉一个mysql和hbase就行了。然后一下就拉去好了。这个时候我想了下,我不能老是为了我的blog去不断地部署呀,这个服务器也快到期了,所以决定用docker拉一个Ubuntu镜像在里面操作。步骤菜鸟教程拉取镜像pull ubuntu启动docker run -tid -p 4000:4000 image进入docker exec

2021-07-16 23:35:32 94 2

原创 cookie session token

文章目录cookiesessiontokenrefresh token和access tokenJWt(JSON WEB TOKEN)headerplayloadSignature特点(total copy for mark)由于HTTP是无状态服务,所以为了满足某些有状态的服务,那么就出现了如下的。cookie和session是有状态的服务。cookiecookie的信息是存储在客户端中,也就是本地的一些文件里面,不过cookie这个性质可能会导致他拥有安全隐患。cookie的一个重要性质是他不.

2021-07-14 19:59:30 78

原创 idea生成mapper文件template。

如何在idea设置mapper文件在file->settings->Editor->File and Code Templates选择。然后按照下图的步骤完成。xml的内容如下。<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper

2021-02-18 16:10:33 188

原创 如何爬取哔哩哔哩用户的基本信息

title: bilibili数据爬取categories: [‘bilibili’,‘java’]date: 2021-2-16 23:28:00哔哩哔哩信息爬取想要看详细的看如下的链接。具体详情最后拿到的用户基本信息如下。请求道的json数据如下{ "code": 0, "message": "0", "ttl": 1, "data": { "mid": 2, "name": "碧诗", "sex": ".

2021-02-17 09:21:31 1213

原创 c++文件读写

每一行读取#include <iostream>#include <fstream>#include <string>using namespace std; int main(int argc, char*argv[]){ ifstream read_file; read_file.open("f.txt", ios::binary);...

2020-02-19 11:41:26 76

原创 rust的actix web框架试试手(json数据传输和接受,数据库操作,rust后端操作)

文章目录##Actix Web(RUST)###代码main.rs<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <script src="http://libs.bai...

2019-08-20 00:18:12 4426

原创 帝国の炮王的陨落-----张泽宇

武汉炮王,自古到今,有5位,其中最吊的就是光谷的野炮王泽の桑所到之处,处处留情。

2019-07-01 00:41:34 225

原创 QT写贪吃蛇

QT写贪吃蛇QT写贪吃蛇的话,分几个部分,一个是界面一个是算法,界面有游戏界面和贴图界面。1.界面需要注意的部分void MainWindow::intbackground(){ setAutoFillBackground(true); QPalette palette; palette.setBrush(QPalette::Background, QB...

2019-02-22 15:04:45 936 2

Tomcat简单版.rar

简单的Tomcat实现,纯手写,最对独家。

2019-06-30

空空如也

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

TA关注的人

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