乌拉乌拉liang
让简单的事情变的容易,让困难的事情变的可行!
展开
-
linux 性能优化
被压测服务器需要保持100W长连接,客户和服务器端是通过socket通讯的,每个连接需要建立一个socket,程序需要保持100W长连接就需要单个程序能打开100W个文件句柄。原创 2023-10-11 07:43:33 · 159 阅读 · 0 评论 -
JDK21协程-虚线程 openjdk源码解读 底层从Java代码到C/C++代码初次深度解读 虚线程调优
自从2022-12-08开始,下一个LTS版本JDK21已经进入了开发阶段。小编在此进行了一次主线版本的协程的初体验。说是协程,其实在JVM内部是以**虚线程**的概念存在的。小编这次从java代码到C/C++代码初次深度解读一下**虚线程**,毕竟JDK21已经进入了开发阶段,等到JDK21LTS版本发布的时候,变动应该不会很大,到时候我会再出一片文章来深度解读一下**虚线程**。原创 2023-01-11 11:29:48 · 2569 阅读 · 0 评论 -
Linux系统x86-64架构下,从零实现一个系统调用。Ubuntu22.04LTS
这里要注意,这里既然是系统调用,会涉及到内核太和用户太的切换,并且用户空间和内核空间的切换。传入的数据类型为用户空间的数据类型,所以要加上__user。首先要会编译linux内核的源码,这块在我的另外一片文章里面。原创 2022-12-19 17:16:34 · 540 阅读 · 0 评论 -
ubuntu22.04LTS 内核源码编译,安装,卸载
到网站下载你自己版本的内核源码。使用如下命令查看自己的内核版本uname -r。原创 2022-12-15 11:34:43 · 1282 阅读 · 0 评论 -
如何测量两组汇编指令的执行效率
本文是纯干货。由于现代的处理器支持乱序执行代码,另一个说法叫做cpu指令重拍。为了测量的准确性,本例中使用了cpuid指令,属于序列化指令。它可以保证汇编指令的执行的有序性。用来避免cpu指令重拍。注意,这里说额是汇编指令,不是java和c中的volatile关键字,更不是什么内存屏障。本文汇编代码是在linux 64位cpu x86-64架构下编写的。现在直接上代码。原创 2022-12-08 10:21:30 · 207 阅读 · 0 评论 -
分布式事务,单JVM进程与多数据库,分布式事务技术选型,0-1过程,代码全。
由于很多小白程序员在单一JVM进程配合多数据库的架构环境中,总是考虑一主多从的mysql集群环境。还不知道mysql集群数据库按照表纵向分割以后,也是可以走数据库使用事务的。那么这里使用到的就是分布式事务,XA协议。现在大部分主流的数据库都支持XA协议。这里不用太多废话,直接上环境,上代码。这里请注意,不需要使用TCC那种服务层集群级别的事务为了让小白能够体会XA协议的分布式事务,先来一个未增加分布式事务的。在idea中鼠标右键目录,new->module首先是完整的pom文件pom.xml两个数原创 2022-12-07 07:50:22 · 185 阅读 · 0 评论 -
分布式事务。seata主线版本1.6.0-SHAPSHOT,Springboot2.7.6,AT与TCC模式。小白入门必看,0-1过程,代码全。
由于seata官方文档更新的比较慢,包括官方的demo所对应的seata也比较老旧,并且每个demo对应的seata版本都不一样,并且官方文档的描述无法一篇文章说明白,所以作为小白入门很辛苦。所以有了当下这片文章。本文也演示了AT模式与TCC模式混搭的配置方式。非常适合小白入手。https://blog.csdn.net/jl19861101/article/details/128075073系统分为三个系统,两个远程系统,一个在阿里云,一个在腾讯云,一个在本地。为了保护个人隐私,ip地址与用户名密码,都改原创 2022-12-06 17:28:13 · 1064 阅读 · 0 评论 -
seata1.6.0-SNAPSHOT版本JDK17。源码编译打包过程。
此过程我省略了idea打开项目的过程,因为比较easy。我们还是废话不多。直接上步骤。原创 2022-11-28 10:33:50 · 728 阅读 · 0 评论 -
nginx+redis+jvm三级缓存设计与落地实现
由于涉及到个人隐私,使用的是阿里云平台,所以下面的IP地址和密码我都做了修改。不是真实的地址。此模拟秒杀商品列表信息缓存案例实现的技术解决方案。原创 2022-11-19 13:25:35 · 1350 阅读 · 0 评论 -
springboot+minio+nginx 安装+配置+访问
主控操作系统:macOS:12.6虚拟机:Ubuntu22.04我们使用springboot+minio负责上传编辑资源使用nginx+minio用来访问资源。原创 2022-10-13 09:19:49 · 820 阅读 · 0 评论 -
openjdk主线版本20+编译,idea图形化工具编辑,macOS12.4
主线版本的jdk选择bootjdk不同于LTS版本。她需要选择一个与他当前最近的一个jdk才可以配置通过。打比方我的jdk版本当前是OracleJDK17,而主线版本是20+。所以使用如下命令配置的时候就会报错。原创 2022-07-24 07:45:13 · 601 阅读 · 0 评论 -
JIT中的IR工具与JITWatch的下载,编译及使用
本文是两个IR图形化工具与一个JITWatch图形化工具的下载及使用说明。原创 2022-07-23 14:50:37 · 387 阅读 · 0 评论 -
mac12.4 下第一个汇编
简单的汇编尝试原创 2022-07-10 11:08:46 · 122 阅读 · 0 评论 -
mac下open-jdk17 源码编译,Clion/Visual Code两个IDE调试。支持鼠标左键跳转。
首先说明的是,网上有文章说,编译openjdk某个版本需要前一个版本的oraclejdk但是我这里没有。我编译openjdk17的时候我本地环境就是oraclejdk17。所以我的环境是:OracleJDK 17.0.2MacOS 12.2.1下载open-jdk17源码git clone https://github.com/openjdk/jdk17u-dev.git配置编译环境sh configure --with-debug-level=slowdebug --disable-原创 2022-04-04 11:41:56 · 2540 阅读 · 0 评论 -
JVM生产环境----性能调优 与 问题排查
目录内存调优一、通用优化二、堆内存调优涉及参数三、非堆内存调优涉及参数GC调优一、通用调优参数二、垃圾收集器的组合策略三、各垃圾收集器调优1. Serial收集器2. ParNew收集器3.Parallel Scavenge收集器4. CMS收集器5. G1收集器多线程调优通用调优锁调优1. 偏向锁2.轻量级锁3.自旋锁...原创 2019-05-04 16:47:11 · 4422 阅读 · 0 评论 -
Set-Cookie失效。response响应头中包含set-cookie。但是没有存储在本地cookie中的问题汇总。
小伙伴们在改造已有项目的时候会碰到自己的响应头中包含了set-cookie失效不起作用这类的信息。导致我们服务端的某些功能不能使用,比如“认证”,“权限”等。小编在这里罗列一下可能发生的问题。共大家排查。Domain问题这是由于你返回的set-cookie指令中的Domain属性设置的值无法与你当前请求网站的域名相对应,所以浏览器忽略了set-cookie指令,没有存储在本地的cookie中。例如:请求路径为localhost。但是set-cookie指令中的Domain属性设置为127.0.0原创 2022-04-03 08:52:20 · 16193 阅读 · 0 评论 -
SpringSecurity 6.0.0版本配合Tomcat10,websecurity.ignoring全局忽略路径匹配失败问题,详解。该解决方案适用于SpringSecurity各个版本。
SpringSecurity 6.0.0版本配合Tomcat10,ignoring忽略路径匹配失败问题,详解。该解决方案适用于SpringSecurity各个版本。背景:由于工作原因,尝试了一下(之前一直使用Shiro,这也是第一次接触SpringSecurity),SpringSecurity还未发布的主线版本。SpringSecurity6.0.0的主线版本使用的是Spring-framework6.0.0未发布的版本。而对于Spring-framework6.0.0这个版本,已经放弃jdk11开始原创 2022-04-02 09:22:57 · 2094 阅读 · 0 评论 -
electron-vue+elementui,静默打印,餐饮行业,小票机打印,58mm,80mm。完整版。多任务打印。完整代码。
操作系统:MacOS Big Sur:11.1框架版本:electron:11.2.0vue:2.5.16elementui:2.14.1font-awesome:4.7.0第一步:创建本地存储,用于存储添加的小票机。本人使用的是sqlite3。在小编的另一篇文章中写到了。我在这里再描述一下。(settingsDb.js)const {dbconnect} = require('./utils/db')const { v5: uuidv5, v4: uuidv4} = requi.原创 2021-01-27 09:47:50 · 3130 阅读 · 5 评论 -
electron-vue+elementui自建sqlite3.orm层,设计。
操作系统:MacOS:Big Sur 11.1工具版本:nodejs:15.0.2npm:7.0.10yarn:1.22.10python:2.7.16框架版本:electron:11.2.0vue:2.5.16elementui:2.14.1sqlite3:5.0.01. 安装sqlite3(具体的安装过程我就不详解了,网上好多文章说编译不通过。sqlite3没有预编译库等等问题。不知为何,小编从来没有碰到过)yarn add sqlite32.先封装一下针.原创 2021-01-26 08:48:00 · 805 阅读 · 0 评论 -
electron-vue配合electron-release-server自动更新(完整版-详细版)
客户端使用electron-vue脚手架初始化。后又升级了electron版本和electron-builder版本。操作系统:MAC-OSelectron:11.0.3electron-builder:22.9.1自动更新服务器使用:阿里云服务器(提前开启80端口)操作系统:ubuntu18.04electron-release-server:1.5.2electron-release-server服务器搭建electron-release-server虽然好用。但是请看仔细了.原创 2020-12-10 10:01:01 · 1840 阅读 · 12 评论 -
electron 主进程中使用websocket与java服务端通信
客户端:electron-vue+elementui开发工具:WebStormelectron:11.0.3vue:2.5.16element-ui:2.14.1服务器:netty+websocket+spring开发工具:IdeaJnetty:4.1.53.Finalspring:5.1.10.RELEASE废话不多说,对于程序员来讲。直接看代码比长篇大论的来的快,看的明白,更直观。关键的地方我会另行说明。服务端:pom.xml<?xml version=".原创 2020-12-01 11:38:57 · 2762 阅读 · 0 评论 -
electron-vue+elementui踩坑记录
1. electron-vue升级electron版本到11.0.3需要在main/index.js中修改mainWindow增加如下mainWindow = new BrowserWindow({ webPreferences: { nodeIntegration: true, nodeIntegrationInWorker: true, enableRemoteModule: true }, height: 563, useC原创 2020-11-27 09:48:02 · 662 阅读 · 0 评论