avatar
文章
198
标签
94
分类
0

首页
书单
歌单
关于
LeFer
搜索
首页
书单
歌单
关于
Centos7安装最新内核并开启BBR
发表于2018-08-05
Google 开源了 TCP BBR 拥塞控制算法,并提交到了 Linux 内核(> 4.9)。据悉,特别适用于网速不稳定的场景。根据网上的测试,在开启BBR后,网速甚至可以提升好几个数量级。 以下是我在GCP上开启BBR的步骤。系统版本是Centos 7。 # 更新系统yum update -y# 安装内核rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpmyum --enablerepo=elrepo-kernel install kernel-ml# 查看安装内核并设置,从返回结果中找到版本号最大的一行的序号,设置为默认启动awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg# 0是版本号最大的一行的序 ...
Spring Boot 多数据源的另一种实现
发表于2018-08-03
Spring Boot提供了一套比较完善的多数据源的自动化配置机制,比如这里,但它的缺点是无法应对数据源不确定的场景,即软件在真正交付使用之前不知道到底会配置多少数据源。所以我这里提供多数据源自动化配置的另一种实现方法。可以把数据源配置放在库里或者放在配置文件里,程序启动时会自动根据你配置的多少初始化为对应的连接池供程序使用。 实现思路st=>start: 开始op0=>operation: 创建单例模式类:>https://www.lefer.cn/posts/10448/op1=>operation: 读取配置op2=>operation: 循环初始化连接池op3=>operation: 放入map中op4=>operation: 对外提供获取方法e=>end: 结束st->op0(right)->op1(right)->op2(right)->op3(right)->op4->e 核心代码初始化连接池这里使用的是hikar作为连接池。dataSourceMap是存放连接池的map。 Hika ...
disruptor的理解和应用
发表于2018-08-01
disruptor是一个大名鼎鼎的高性能的线程间的消息传递库,国内的资料不是很多。我近期在一个项目中使用了disruptor,有了一点理解,尝试着表达出来。可能不对,希望大家指正。 disruptor能干什么,不能干什么disruptor是Java阻塞队列,比如 ArrayBlockingQueue的替代,它在性能上高于阻塞队列。disruptor是线程级的,无法在进程间共享,也不会提供持久化、灾备等系统级的功能。disruptor的用处是通过线程级的消息传递来做线程间的解耦,通过发布订阅模式,去实现线程级的并发。但disruptor不是HQ,MQ等消息队列容器的替代品,没有监控API,没有宕掉后的自动恢复机制,也不能被其他程序访问。 为什么用disruptor,而不是queue下图是queue的处理示意。queue的线程安全的读写,至少需要维持3个变量:尾部位置,头部位置,容量。写入线程需要争用头部位置,以便写入数据;读取线程需要争用尾部位置,以便读到数据(假定是不重复读场景);同时都要争用容量,容量满了不能再写,容量空了,也不应再读,读写成功后容量要加减。此时在三个争用位置处, ...
自定义通用URL协议实现在浏览器中打开本机任意程序
发表于2018-07-20
以前写过一篇文章,总结了跨浏览器调用的方法。近期遇到一个场景,需要在浏览器中去打开本地的客户端程序,而且限定不允许使用IE。所以我实现了一个通用协议。通过这个协议,可以从浏览器去打开本机任意程序并支持传参数。以下是具体内容。 注册协议将以下文件保存为.reg文件。导入注册表项,注册协议ff。你可以将所有的ff替换成别的字符串,来实现自己的协议。 Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\ff]"URL Protocol"=""@="Genaral Call"[HKEY_CLASSES_ROOT\ff\DefaultIcon]@=""[HKEY_CLASSES_ROOT\ff\shell][HKEY_CLASSES_ROOT\ff\shell\open][HKEY_CLASSES_ROOT\ff\shell\open\command]@="cmd /v:on /k set m=%1 &&call set n=%% ...
如何处理 gitlab fork pull request 冲突
发表于2018-07-18
gitlab提供了git的一个ui界面,但是在处理冲突方面表现的不好,一些复杂场景还需要通过命令行来解决。本文所述即是一例,解决过程记录如下。 问题背景repo A :http://ip:port/share/adminApi.git repo B: http://ip:port/esb_dept/adminApi.git B是从A里fork出来的。在实际软件开发过程中,A是框架工程,B是由A派生而出的一个实际项目。 现在A发生了更新,需要将A的变动合并到B中。 正常情况下,通过gitlab,在repo A中新建合并请求到B即可,但由于repo B中有工程师修改了框架代码,导致产生冲突,合并失败。 解决步骤 在本地 B 项目根目录,查看可用的远程仓库。默认情况下,只会有repo B [web@localhost esbadminapi]$ git remote -vorigin http://ip:port/esb_dept/adminApi.git (fetch)origin http://ip:port/esb_dept/adminApi.git (push) 将 rep ...
解决 Centos7 IDEA IBUS 无法输入中文的问题
发表于2018-07-18
网上很多帖子都在说环境变量的事,说要在/etc/profile 或idea.sh中增加: export XIM="ibus"export XIM_PROGRAM="ibus"export XMODIFIERS="@im=ibus"export GTK_IM_MODULE="ibus"export QT_IM_MODULE="ibus" 但很多时候问题并不出在这里,而是由于你的ibus包安装不完整,至少应该安装以下包: ibus-setup-1.5.17-2.el7.noarchlibusbmuxd-1.0.10-5.el7.x86_64ibus-libs-1.5.17-2.el7.x86_64ibus-kkc-1.5.18-7.el7.x86_64ibus-gtk3-1.5.17-2.el7.x86_64libuser-python-0.60-9.el7.x86_64libusbx-1.0.21-1.el7.x86_64ibus-gtk2-1.5.17-2.el7.x86_64ibus ...
VMware内CentOS7 /dev/mapper/cl-root 扩容
发表于2018-07-18
刚遇到/dev/mapper/cl-root空间不足的问题,就看到了CSDN上Wang_Xin_SH写的文章,非常好,所以转载收藏 (已在原文末留言转载,侵删)。 简介CentOS7虚拟机原硬盘空间只分配了10GB,需要扩容到20GB。环境:VMware 10 VMware分配空间选中虚拟机->虚拟机设置->硬盘->实用工具->扩展->设置最大磁盘大小->点击扩展 CentOS7内部分配可以参考:http://jingyan.baidu.com/article/54b6b9c0fc8b0b2d583b47c6.html 查看当前磁盘空间,/dev/mapper/cl-root硬盘空间只有8GB,打算扩容: # df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/cl-root 8.0G 3.8G 4.3G 47% /devtmpfs 482M 0 482M 0% /devtmpf ...
CentOS 7 直接安装 gcc 7
发表于2018-07-17
在一台没有安装过低版本gcc的系统里,如何安装gcc 7 ?以下是详细步骤。 使用开发工具集安装: sudo yum install centos-release-sclsudo yum install devtoolset-7-gcc*scl enable devtoolset-7 bashwhich gccgcc --version 这种方法同样适用于安装gcc6,只需要将上面命令中7改成6即可。详情请参考:devtoolset
覆盖 Spring Boot 配置项
发表于2018-07-12
Spring Boot中的配置项默认是在application.properties中。如: test.item=lefer 现在考虑两个场景: 场景1:不修改配置文件将test.item的值更改为另一个值 场景2:lefer 是一个密文,使用前需要做转换 下面说说这2个场景的实现方法。 通过命令行参数覆盖配置项场景1的实现非常简单,只要在启动时,指定对应参数就能覆盖配置项,比如: java -Dtest.item=orous -jar test.jar 这时 Spring Boot 会自动将该配置项的值替换成 orous 。更进一步,如果在命令参数里指定的参数在配置文件中不存在,那么等同于在配置文件中新增了一个配置项和对应值。之所以会出现这种现象,是Spring Boot的配置加载机制决定的,从官方文档可以看到,Spring Boot 加载配置项的顺序如下: home目录下的devtools全局设置属性(~/.spring-boot-devtools.properties,如果devtools激活)。 测试用例上的@TestPropertySource注解。 ...
使用google jib实现java应用快速容器化
发表于2018-07-11
前天(2018年7月9日),谷歌宣布将其内部使用的 jib 正式开源。jib 是一个在 java 体系内部生成 docker 镜像的插件,它的设计初衷是将代码->可运行程序->docker image整个过程打通,无需编写 docker file,直接通过编译器生成 docker 镜像。因为刚出来,中文资料比较少,我撸了一个样例,第一时间体验一下这个新玩意。以下是整个过程。 环境说明我选定的是一个maven构建的spring boot项目,编译后是一个内嵌 tomcat 的可执行jar。目标是通过引入jib,直接生成该项目的镜像发布到阿里云镜像仓库。 引入依赖jib最新版本是0.9.4。通过在pom.xml的plugins标签下增加jib标签,引入依赖。 <build> <plugins> <plugin> <groupId>com.google.cloud.tools</groupId> <artifactId>jib-maven-p ...
1…678…20
avatar
LeFer
日拱一卒,功不唐捐
文章
198
标签
94
分类
0
公告
不见五陵豪杰墓,无花无酒锄作田!
最新文章
人机协同时代,如何防止AI引入“隐性”技术债2026-03-08
全球智能危机(第二部分:一场来自未来的金融史思想实验)2026-02-26
全球智能危机(第一部分:Agentic AI的兴起)2026-02-25
技术组织重构——基于 Multi-Agent 的研发新范式2026-02-16
警惕!AI时代的马车误区2026-02-08
最新评论
正在加载中...
标签
linux spring modulith mdm redis 机器学习 webmvc sse 数据分析 emby xml gitlab vmware gitbook vscode js wrk tensorflow 常识 nas ocr disruptor gcc august DDD aria2 spring cloud 网易云 websocket drools zuul 软件工程 next 数据仓库 可信数据空间 token hexo postgresql 医疗 随记 jointjs
网站资讯
文章数目 :
198
已运行时间 :
本站总字数 :
183.7k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2015 - 2026 By LeFer
沪ICP备2024075747号沪公网安备31011502401302号
搜索
数据库加载中