目录

菠萝🍍的博客

有谁不喜欢吃菠萝呢

解决Hyper-V安装window系统时“the boot loader failed”问题

原文: Solving the “Boot Failed. EFI SCSI Device” error when installing Windows 2012 Server on Hyper-V 我过去曾在一些Hyper-V映像上安装过Windows 2012服务器,但遇到了一个陌生的错误。我创建了Hyper-V计算机,并为其配置了动态硬盘驱动器,添加了DVD,并安装了Windows Server 2012 ISO,以确保DVD驱动器位于引导顺序的最上方并启动了它 然后,我看到一个黑屏,并显示错误消息:引导失败。EFI SCSI设备。 这是Hyper-V团队高级项目经理(John Howard)的冗长的解释。简短的答案:这是因为虚拟机是作为第二代计算机而不是第一代计算机创建的。 重点,启动的时候不停的按一个键,或者按住某个键 要克服此错误,只需在启动虚拟机时按住一个键即可。您会在错误屏幕顶部看到“按任意键从CD或DVD引导…..”的问题,它的问题是它不会等待您按一个键,只需确保您有一个键即可。按住它直到此时,您应该会看到Windows引导管理器提示,允许您引导到DVD映像。 ....

从无到有,Netty基于SSL实现信息传输过程中双向加密验证

一、前提: 感谢以下博客给到的启发,完成了这篇内容 netty案例,netty4.1中级拓展篇十三《Netty基于SSL实现信息传输过程中双向加密验证》 Netty SSL双向验证 Error while creating a CSR netty中实现双向认证的SSL连接 OpenSSL主配置文件openssl.cnf 二、正文 2.1 SSL 首先了解什么是SSL,SSL(安全套接字层)是一种标准安全协议,用于在在线通信中建立Web服务器和浏览器之间的加密链接。 对于这个概念的理解,让我印象深刻的是下面这幅图 翻译版 这是SSL工作的大致过程。 知道这些就足够了进行下面的工作了 2.2 使用openssl生成客户端私钥公钥和服务端私钥公钥 这一步也是最容易卡壳的一步,网上很多文章有的介绍太详细让人云里雾里,有的太粗略不知道啥玩意儿 这里只讲最简单的一种,并罗列了实践时碰到的问题: 2.2.1 下载Windows版openssl 下载地址:windows版openssl 为什么不使用linux版的openssl? 配置比较复杂,可能搞晕新手 2.2.2 选择一个目录进行安装 2....

【转载】Java中的零拷贝

原文出自知乎:Java中的零拷贝 Java中的零拷贝 先提出两个问题: IO过程中,哪些步骤进行了拷贝?哪些地方零拷贝? Java支持哪些零拷贝? 带着这俩问题,我们一起来看下面的探究。 哪里听说过零拷贝?真的0次拷贝吗? 相信大家伙在以往的学习中,或多或少在下面这些组件、框架中有听说过零拷贝 (Zero-Copy)? Kafka Netty rocketmq nginx apache 什么是零拷贝? 零拷贝(英语: Zero-copy) 技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常用于通过网络传输文件时节省CPU周期和内存带宽。 ➢零拷贝技术可以减少数据拷贝和共享总线操作的次数,消除传输数据在存储器之间不必要的中间拷贝次数,从而有效地提高数据传输效率 ➢零拷贝技术减少了用户进程地址空间和内核地址空间之间因为上:下文切换而带来的开销 可以看出没有说不需要拷贝,只是说减少冗余[不必要]的拷贝。 LinuxI/O机制及零拷贝介绍 IO中断与DMA IO中断,需要CPU响应,需要CPU参与,因此效率比较低。 用户进程需要读取磁盘数据,需....

docker 安装nginx

该文章已经加密。

windows专业版安装docker提示“cannot enable Hyper-V service”

windows专业版安装docker提示“cannot enable Hyper-V service”

Redis配置(机翻)

前景提要 使用Redis的时候,有时候不明白配置是用来干嘛的,虽然上面有注释,但是英文的还是不方便,不如直接写一个程序调百度翻译的接口进行翻译,当然对程序肯定是做了优化的,不会直接逐行翻译,那样可能翻译出来的牛头不对马嘴 结果 compare:0-sign:2 # Redis配置文件示例。 compare:2-sign:5 # 注意,要读取配置文件,Redis必须以文件路径作为第一个参数启动: compare:5-sign:7 # ./redis-server /path/to/redis.conf compare:7-sign:10 # 关于单位的说明:当需要内存大小时,可以以1k 5GB 4M等常用形式指定: compare:10-sign:17 # 1K=>1000 bytes 1kb=>1024 bytes 1m=>1000000 bytes 1mb=>1024*1024 bytes 1g=>>100000000 bytes 1gb=>1024*1024 bytes compare:17-sign:19 # 单元不区分大小写,所以1G....

记一次项目线上的内存暴增以及解决办法

前景提要 项目上线了,在开发时一切正常,运行正常,项目上线后,还没运行一个星期,发现项目运行越来越慢,进入后台管理界面用了30秒。当时刚听到这个消息,“怎么可能!!!内测,都还没几个人用呢”,直到我自己打开系统,等了好久才进入系统,信了。 线索追踪 查看错误日志 知道系统出现了问题,但是线上的系统我又碰不到,申请下,运维人员带我去了机房,真是戒备森严。查看错误日志,没有关键的信息。想让运维人员给我把错误日志拿出来,我回去研究研究,被语气很强硬的直接否决了。。。 查看程序运行状态 使用 px -aux |grep *** 定位程序pid top -p <PID> 查看程序占用内存 虽然这个系统比较大,但是占用的内存达到了4GB,真是可怕。 jmap查看线上程序运行的内存信息 jmap -histo <PID> 刷刷刷一段文字,上一张本地演示的图,是之后在本地复现的截图 简单的说说这个图里有啥 num:序号 instances:实例对象 bytes:占用的大小 class name:类名称,B就是byte[],C就是char[],I就是int[],如果还有....

Mysql索引-为什么要使用B+Tree做索引的数据结构

在对 MySQL 的学习上,我们从书本上得到的理解更多的是下面这样的说法 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。 ------------百度百科

1分钟实现netty简单聊天室

这个例子实现的聊天室可以多人在线聊天,SSL加密 SecureChatServer package run.runnable.securechat; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; import io.netty.handler.logging.LogLevel; import io.netty.handler.logging.LoggingHandler; import io.netty.handler.ssl.SslContext; import io.netty.handler.ssl.SslContextBuilder; import io.netty.handler.ssl.util.SelfSignedCertificate; /**....

【机翻】msgpack java快速开始 0.6.x (已过时)

来源 msgpack java 0.6.x的快速入门(已淘汰) 对于最新版本, look at https://github.com/msgpack/msgpack-java 安装 从Maven2存储库安装 从git仓库安装 如何使用 制造一个 message-packable 类 没有注释的序列化 Optional fields Dynamic typing 更多文件 API参考 本教程简要介绍了如何使用msgpack-java。我们将首先介绍msgpack-java的安装,然后说明如何将对象序列化/反序列化为msgpack对象 安装 您可以通过两种方式安装msgpack-java-使用Maven下载或构建jar。 从Maven2存储库安装 MessagePack for Java在Maven中央存储库上发布。您可以如下配置pom.xml来使用它: <dependencies> ... <dependency> <groupId>org.msgpack</groupId> <artifactId>msgpack<....

MessagePack for Java开发指南

github上MessagePack for Java机翻译:来源 MessagePack 是二进制序列化格式。如果您需要快速,紧凑的JSON替代方案,那么MessagePack是您的朋友。例如,可以将一个小整数编码为一个字节,而短字符串则只需要一个字节前缀+原始字节数组即可。MessagePack实现已经有多种语言可用(另请参见http://msgpack.org中的列表),并且可以作为通用数据格式使用. Message Pack 格式: https://github.com/msgpack/msgpack/blob/master/spec.md MessagePack v7 (或者之后的版本) 是较早版本的更快实现v06, 支持所有消息包类型, 包括extension format. JavaDoc可从javadoc.io获得. Quick Start For Maven users: <dependency> <groupId>org.msgpack</groupId> <artifactId>msgpack-core<....

【转载】Centos 安装 Python3 环境

原文 CentOS7 默认自带 Python2.7,可安装 Python3 与 Python2 共存。 [root@Python ~]# python -V Python 2.7.5 1.安装编译相关工具 1. [root@Python ~]# cat /etc/redhat-release 2. CentOS Linux release 7.6.1810 (Core) [root@Python ~]# yum -y groupinstall "Development tools" [root@Python ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel [root@Python ~]# yum install wget libffi-devel -y 2.下载安装包并解压 [root@Python ~]# wget http....

CellStyleFactory减少cellstyle的创建,提高利用率

CellStyleFactory减少cellstyle的创建,提高利用率

通过Java连接linux,并执行脚本或者命令

通过 Java 连接 Linux,并执行脚本或者命令

根据文件,进行压缩为zip,批量下载

根据文件,进行压缩为zip,批量下载

Could not transfer artifact org.xolstice.maven.plugins:protobuf-maven-plugin:jar:0.5.0 from/to central解决办法

报错 Could not transfer artifact org.xolstice.maven.plugins:protobuf-maven-plugin🏺0.5.0 from/to central (https://repo.maven.apache.org/maven2): GET request of: org/xolstice/maven/plugins/protobuf-maven-plugin/0.5.0/protobuf-maven-plugin-0.5.0.jar from central failed 是部分jar包没有下载下来,在本地仓库删除重新下载就行

对NIO 中channel的理解

Channel NIO 中 一个 连接 就是 用 一个 Channel( 通道) 来 表示。 大家知道, 从更广泛 的 层面 来说, 一个 通道 可以 表示 一个 底层 的 文件 描述 符, 例如 硬件 设备、文件、 网络 连接 等。 然而, 远远 不止 如此, 除了 可以 对应 到底 层 文件 描述 符, Java NIO 的 通道 还可以 更加 细化。 例如, 对应 不同 的 网络 传输 协议 类型, 在 Java 中 都有 不同 的 NIO Channel( 通道) 实现。 Channel( 通道) 的 主要 类型 这里 不对 纷繁 复杂 的 Java NIO 通道 类型 进行 过多 的 描述, 仅仅 聚焦 于 介绍 其中 最为 重要的 四种 Channel( 通道) 实现: FileChannel、 SocketChannel、 ServerSocketChannel、 DatagramChannel。 对于 以上 四种 通道, 说明 如下: (1) FileChannel 文件 通道, 用于 文件 的 数据 读写。 (2) SocketChannel 套 接 字 通道, 用....

【转载】NIO ByteBuffer的allocate与allocateDirect区别(HeapByteBuffer与DirectByteBuffer的区别)

其中allocateDirect分配的字节缓冲区用中文叫做直接缓冲区(DirectByteBuffer),用allocate分配的ByteBuffer叫做堆字节缓冲区(HeapByteBuffer).. 其实根据类名就可以看出,HeapByteBuffer所创建的字节缓冲区就是在jvm堆中的,即内部所维护的java字节数组。而DirectByteBuffer是直接操作操作系统本地代码创建的内存缓冲数组(c、c++的数组)。 一、测试代码测试 由于DirectByteBuffer操作的缓冲区是通过操作系统本地代码创建的,对于java来说创建和销毁DirectByteBuffer更消耗性能。而HeapByteBuffer内部是直接创建的java数组,对于java来说更快。可以根据下面的测试代码测试: public static void directAndHeapSpeedCompare(){ int length=1000000; directExecuteTime(length); heapExecuteTime(length); } private static void direc....

在家呆着,不如摘抄点啥【2】

《教父2》 第五章 不要忘了,我们真正的信仰在于我们相信奇迹会发生。

在家呆着,不如摘抄点啥【1】

王家卫台词 每个人都会坚持自己的信念,在别人看来是浪费时间,他却觉得很重要。 花什么时候开是有季节的,马贼什么时候到却没有人知道。 我以前听人说过如果刀快的话,血从伤口喷出来的时候像风声一样,很好听,想不到第一次听到的是我自己流出来的血。 虽然我很喜欢她,但是我不想让她知道,因为我明白得不到的东西永远是最好的。每次她凝望着那小孩子,我知道她心里其实在想另一个人。我很妒忌欧阳锋,我很想知道被人喜欢的的感觉是怎样的,结果我伤害了很多人。 以前也这么想,但是看着他一天天长大,我知道他早晚会离开我。现在我觉得什么都无所谓啦。以前我认为那句话很重要,因为我觉得有些话说出来就是一生一世,现在想一想,说不说也没有什么分别,有些事会变的。我一直以为是我自己赢了,直到有一天我看着镜子,才知道自己输了,在我最美好的时候,我最喜欢的人都不在我身边。如果能重新开始那该多好啊! 知乎上记载的一些回答 问:如果从一个空有上进心的人,变成行动上的巨人 答: 有没有办法把背单词这事儿赋予一个重大的意义呢?很快我想到一个。考过TOEFL/GRE,拿到高分,在新东方教书,据说年薪百万,那。。。一个单词就相当于50块....