目录

菠萝🍍的博客

有谁不喜欢吃菠萝呢

Ehcache 3.8 文档 - 分层选项(官方文档翻译)(未完待续)

Ehcache分层选项 Ehcache支持分层缓存的概念。本节介绍了不同的可用配置选项。它还说明了规则和最佳实践,以最大程度地受益于分层缓存。 有关可用存储层的一般概述,请参阅有关存储层的部分。 一、移出堆 当您在缓存中拥有除堆层之外的其他层时,会发生一些事情: 向高速缓存添加映射意味着必须序列化键和值。 从缓存中读取映射意味着可能必须反序列化键和值。 有了以上这两点,您需要认识到数据的二进制表示形式以及如何将其转换为串行数据以及从串行数据中转换出来的方式将在缓存性能中发挥重要作用。确保您了解可用于序列化程序的选项(请参阅“序列化程序”部分)。同样,这意味着某些配置虽然在论文上有意义,但根据应用程序的实际使用情况,可能无法提供最佳性能。 二、单层设置 所有分层选项都可以单独使用。例如,您可以使缓存中的数据仅处于异常堆中或仅处于群集中。 以下是有效的配置: heap offheap disk clustered 为此,只需在缓存配置中定义单个资源: //首先在配置构建器中定义键和值类型。 CacheConfigurationBuilder.newCacheConfiguratio....

Ehcache 3.8 文档(官方文档翻译)

Ehcache 3.8 文档 一、配置Ehcache 为了开始使用Ehcache,您需要配置第一个CacheManager和Cache。这可以通过编程配置或XML来实现。 如果你想使用JSR-107,也就是javax.cacheAPI,您应该首先阅读Ehcache 3.x JSR-107提供程序页面。 1.1 程序配置 通过使用提供流畅API的构建器,最容易实现Java配置。 与早期版本的Ehcache一样,处理Cache的规范方法是通过CacheManager。 // 这个静态方法org.ehcache.config.builders.CacheManagerBuilder.newCacheManagerBuilder返回一个新的org.ehcache.config.builders.CacheManagerBuilder实例 CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() //使用构建器来定义别名为“ preConfigured”的缓存。 //在实际的CacheManager实例上调用....

吴恩达机器学习(1)

该文章已经加密。

使用idea进行docker一键部署

一、准备材料 win 下docker(版本v19.03.12) idea(版本2020.2) 二、实施 2.1 idea安装docker插件 确保idea安装了idea,并且能够找到以下设置 按照图片中的设置进行设置 之后在idea中的service可以找到docker的工具框 2.2 编写Dockerfile 例子中我采用的是springboot项目,所以在resources目录下创建文件就行,其实这个位置并不重要 FROM java ADD learn-1.0.1.jar app.jar ENTRYPOINT ["java","-jar","/app.jar"] 参数详解:什么是 Dockerfile? 2.3 添加docker运行的Run configrations 添加dockerfile配置 2.3.1 Run configrations配置 点击apply,进行应用 2.4 执行 出现以下文字说明已经发布成功了 让我们去接口看看 2.5 接口演示 三、一键部署 如果修改了代码,那怎么重新部署呢? 很简单,只需要点击执行就行,不需要手动去删除image,....

如何让你打游戏的室友乖乖睡觉

如题:如何让你打游戏的室友乖乖睡觉

Linux限制ip登录

登录后台的时候发现服务器被尝试登录300多次,没想到,找了个简单的办法,还真有效 1. 查看服务器失败登录ip,以及时间 lastb > temp.txt 想着搞破坏的人还不少 然后将其中的ip通过正则提取出来 正则表达式 (([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5])\.){3}([01]{0,1}\d{0,1}\d|2[0-4]\d|25[0-5]) 2. 禁用ip登录 vim /etc/hosts.deny 将上面的提取的ip添加进去 sshd:ip地址 保存即可,测试过指定ip的确实登录不了了 3. 后续 后来吧,我嫌弃这种方式太麻烦了,得完全手动操作,为啥不写个shell脚本呢 #bin/bash #脚本产生日志文件位置 logFile=/root/limitLogin/log/limitlogin.log #脚本产生的临时文件,执行完会自动删除,不用修改,默认是linux临时目录 tmpLogFile=/usr/lib/tmpfiles.d/login.tmp.txt #禁用ip登录的文件,不用修改 denyfile=/etc/....

无停顿GC算法,ZGC原理

文章翻译的是,Azul Systems很多年前提出的Pauseless GC

Hyper-V导致的dubbo使用时产生Failed to check the status of the service . No provider available for the service

Hyper-V导致的dubbo使用时产生Failed to check the status of the service . No provider available for the service 前景提要 为了体验windows版的docker,特意安装了Hyper-V,然后卸载了virtualbo。没想到这几天引出的问题都很麻烦。 之前项目上用的好好的dubbo,突然之间本地跑不起来了。 报错***No provider available for the service***,这种问题之前也不是没有遇到过,大多都是配置上的问题,然后认真匹配了配置之后,完全没问题啊!但是服务就是启动不了。最近也没有更改关于这部分的代码,所以一时半会比较配置,百度一下还可能产生这个的原因,还真是没找到。想了想还是看源码解决快点 问题的解决 正想点进源码跟进一下,就看到日志打印的服务端提供的地址怎么有问题?怎么是虚拟网卡的地址,然后大概就猜到是什么原因了,还是Hyper-V导致的。 禁用掉虚拟网卡,启动,果然没问题了

解决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....