<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bareape的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bareape</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bareape]]></copyright><item><title><![CDATA[easycode 自定义模板]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/142644042</link><guid>https://blog.youkuaiyun.com/bareape/article/details/142644042</guid><author>bareape</author><pubDate>Sun, 29 Sep 2024 21:29:54 +0800</pubDate><description><![CDATA[#自动导入包（仅导入实体属性需要的包，通常用于实体类）import $!import;#end。]]></description><category></category></item><item><title><![CDATA[非阻塞式 I/O 模型 【NIO】补充内容]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/140271483</link><guid>https://blog.youkuaiyun.com/bareape/article/details/140271483</guid><author>bareape</author><pubDate>Mon, 08 Jul 2024 16:05:08 +0800</pubDate><description><![CDATA[其实相当于就是一个线程处理大量的客户端的请求，通过一个线程轮询大量的channel，每次就获取一批有事件的channel，然后对每个请求启动一个线程处理即可。这里的核心就是非阻塞，就那个selector一个线程就可以不停轮询channel，所有客户端请求都不会阻塞，直接就会进来，大不了就是等待一下排着队而已。这里面优化BIO的核心就是，一个客户端并不是时时刻刻都有数据进行交互，没有必要死耗着一个线程不放，所以客户端选择了让线程歇一歇，只有客户端有相应的操作的时候才发起通知，创建一个线程来处理请求。]]></description><category></category></item><item><title><![CDATA[Netty 详细讲解，附服务端，客户端代码例子]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/136321431</link><guid>https://blog.youkuaiyun.com/bareape/article/details/136321431</guid><author>bareape</author><pubDate>Tue, 27 Feb 2024 14:24:36 +0800</pubDate><description><![CDATA[的作用是管理事件循环组，它们负责处理不同类型的事件，如接受传入连接、读取/写入数据等。在这里，我们创建了两个bossGroup和。bossGroup用于接受传入的连接请求，而则用于实际处理连接的流量。是 Netty 用于启动服务器的帮助类。通过group()方法将两个绑定到服务器上。channel()方法指定了服务器使用的通道类型。在这里，我们选择了，这意味着我们将使用基于 NIO 的 Socket 通道。方法设置了一个，当一个新的连接被接受时，这个初始化器将会被调用。]]></description><category></category></item><item><title><![CDATA[netty nio poll epoll 的关系及原理详解]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/136316965</link><guid>https://blog.youkuaiyun.com/bareape/article/details/136316965</guid><author>bareape</author><pubDate>Tue, 27 Feb 2024 10:56:23 +0800</pubDate><description><![CDATA[综上所述，Java NIO、poll 和 epoll 是用于实现高性能 I/O 的技术，它们之间存在一定的关系，而 Netty 则是基于 Java NIO 开发的高级别网络应用框架，充分利用了这些技术来实现高效的网络通信。]]></description><category></category></item><item><title><![CDATA[非阻塞式 I/O 模型的工作原理【NIO】-2]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/136316435</link><guid>https://blog.youkuaiyun.com/bareape/article/details/136316435</guid><author>bareape</author><pubDate>Tue, 27 Feb 2024 10:41:57 +0800</pubDate><description><![CDATA[类中，并在遍历处理事件时创建新的线程来处理每个事件。这样可以实现并发处理不同连接的读写事件，提高系统的并发处理能力。在这个优化后的代码中，我们将处理事件的逻辑封装在。优化上一篇文上的代码。]]></description><category></category></item><item><title><![CDATA[非阻塞式 I/O 模型的工作原理【NIO】]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/136315774</link><guid>https://blog.youkuaiyun.com/bareape/article/details/136315774</guid><author>bareape</author><pubDate>Tue, 27 Feb 2024 10:25:44 +0800</pubDate><description><![CDATA[非阻塞式 I/O（Non-blocking I/O，NIO）是一种改进的 I/O 模型，引入了通道（Channel）和缓冲区（Buffer）的概念。相比于阻塞式 I/O，非阻塞式 I/O 允许在进行读/写操作时不会导致线程阻塞，而是立即返回，如果数据没有准备好，方法会返回一个特殊的值（通常是零），表示操作无法立即完成。在非阻塞式 I/O 中，一个线程可以管理多个连接，通过选择器（Selector）实现多路复用，从而提高了系统的并发能力和性能。]]></description><category></category></item><item><title><![CDATA[阻塞式 I/O 模型的工作原理【BIO】]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/136315581</link><guid>https://blog.youkuaiyun.com/bareape/article/details/136315581</guid><author>bareape</author><pubDate>Tue, 27 Feb 2024 10:20:53 +0800</pubDate><description><![CDATA[方法上，当没有数据可读时，该方法会一直阻塞当前线程，直到有数据可读或者连接关闭。这种模型适用于连接数较少、并发请求不高的场景。在这个例子中，我们创建了一个简单的服务器程序。在这个例子中，阻塞式 I/O 的特点就体现在。，用于接受客户端连接并处理客户端发送的消息。]]></description><category></category></item><item><title><![CDATA[mac 环境下执行 ps -ef 打印信息太长，影响问题定位的解决办法。]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/129754524</link><guid>https://blog.youkuaiyun.com/bareape/article/details/129754524</guid><author>bareape</author><pubDate>Fri, 24 Mar 2023 17:04:54 +0800</pubDate><description><![CDATA[例如这种的一大片，不易读。]]></description><category></category></item><item><title><![CDATA[java 常见软件的性能指标]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/127117525</link><guid>https://blog.youkuaiyun.com/bareape/article/details/127117525</guid><author>bareape</author><pubDate>Fri, 10 Mar 2023 11:55:26 +0800</pubDate><description><![CDATA[Akka：Akka 是一个基于 Actor 模型的并发框架，可以支持数百万的并发连接。从报告中，我们可以得出 Redis 的单机 QPS 可以达到 8w+（CPU 性能有关系，也和执行的命令也有关系比如执行 SET 命令甚至可以达到 10w+QPS）。需要注意的是，并发连接数只是衡量并发能力的一个指标，还需要考虑每个连接的处理时间、资源消耗等因素。Spring 框架：Spring 本身不直接处理并发，但是它可以与支持高并发的技术如 Netty、Vert.x 等集成，因此具体并发量取决于所使用的技术。]]></description><category></category></item><item><title><![CDATA[JVM 参数的调整]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/129435228</link><guid>https://blog.youkuaiyun.com/bareape/article/details/129435228</guid><author>bareape</author><pubDate>Fri, 10 Mar 2023 08:49:20 +0800</pubDate><description><![CDATA[制定 JVM 参数模板是一个需要考虑多方面因素的复杂过程。以下是一个基本的步骤：理解项目特点：首先，需要深入了解公司项目的性质、规模、复杂度和负载情况等特点。这些因素将直接影响 JVM 参数的选择。参考 JVM 文档：JVM 提供了一系列参数，可以调整其性能和行为。你需要查阅官方文档以了解这些参数的含义和用途。实验和测试：在制定 JVM 参数模板之前，建议进行一些实验和测试，以确定哪些参数对你的应用程序性能有正面或负面的影响。]]></description><category></category></item><item><title><![CDATA[jvm 垃圾回收]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/129419584</link><guid>https://blog.youkuaiyun.com/bareape/article/details/129419584</guid><author>bareape</author><pubDate>Thu, 09 Mar 2023 12:03:13 +0800</pubDate><description><![CDATA[开发人员可以根据应用程序的需求选择适合的垃圾回收器和回收算法，并通过JVM参数进行配置和优化。除了上述垃圾回收器之外，JVM还提供了其他一些垃圾回收器，例如ZGC（Z Garbage Collector）和Shenandoah收集器，它们适用于更大的内存和更高的性能需求。开发人员可以根据应用程序的需求选择适合的垃圾回收器，并通过JVM参数进行配置和优化。以上算法具有不同的优缺点和适用场景，开发人员可以根据应用程序的需求选择适合的算法和垃圾回收器组合，并通过JVM参数进行配置和优化。]]></description><category></category></item><item><title><![CDATA[在工具类中查询数据库的正确写法（或者说在 实体类中 调用 service 的方法的思路）]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/127122524</link><guid>https://blog.youkuaiyun.com/bareape/article/details/127122524</guid><author>bareape</author><pubDate>Thu, 13 Oct 2022 16:24:38 +0800</pubDate><description><![CDATA[此时就可以在需要调用 A 里面的方法 使用静态的 成员变量 A来点出来。]]></description><category></category></item><item><title><![CDATA[ThreadLocal 学习总结]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/127105929</link><guid>https://blog.youkuaiyun.com/bareape/article/details/127105929</guid><author>bareape</author><pubDate>Thu, 29 Sep 2022 14:54:30 +0800</pubDate><description><![CDATA[ThreadLocal是Therad的局部变量的维护类，在Java中是作为一个特殊的变量存储在。当使用ThreadLocal维护变量时，ThreadLocal为每个使用该变量的线程提供独立的变量副本，所以每一个线程都可以独立地改变自己的副本，而不会影响其它线程所对应的副本。因为每个Thread内有自己的实例副本，且该副本只能由当前Thread使用，也就不存在多线程间共享的问题。]]></description><category></category></item><item><title><![CDATA[最简单的 设置java 线程池，线程名称的几种方法]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/127089756</link><guid>https://blog.youkuaiyun.com/bareape/article/details/127089756</guid><author>bareape</author><pubDate>Wed, 28 Sep 2022 15:10:20 +0800</pubDate><description><![CDATA[最简单的 设置java 线程池，线程名称的几种方法
共 3 种，简单易上手。]]></description><category></category></item><item><title><![CDATA[抢土狗机器人——无代码基础可以使用]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/125654602</link><guid>https://blog.youkuaiyun.com/bareape/article/details/125654602</guid><author>bareape</author><pubDate>Thu, 07 Jul 2022 10:54:55 +0800</pubDate><description><![CDATA[抢土狗机器人，带页面的。]]></description><category></category></item><item><title><![CDATA[rabbit MQ 学习笔记，面试总结]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/124679351</link><guid>https://blog.youkuaiyun.com/bareape/article/details/124679351</guid><author>bareape</author><pubDate>Wed, 11 May 2022 02:00:51 +0800</pubDate><description><![CDATA[概念须知：

Broker：可以理解为消息队列服务器的实体，它是一个中间件应用，负责接收消息生产者的消息，然后将消息发送至消息接收者或者其他的Broker。
	Exchange：消息交换机，是消息第一个到达的地方，消息通过它指定的路由规则，分发到不同的消息队列中去。
	Queue：消息队列，消息通过发送和路由之后最终到达的地方，到达Queue的消息即进入逻辑上等待消费的状态。每个消息都会被发送到一个或多个队列。
	Binding：绑定，它的作用就是把Exchange和Queue按照路由规则绑定起来，也就是E]]></description><category></category></item><item><title><![CDATA[币安链预售抢购机器人,支持pinksale、dxsale(附代码)]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/124590655</link><guid>https://blog.youkuaiyun.com/bareape/article/details/124590655</guid><author>bareape</author><pubDate>Thu, 05 May 2022 16:06:36 +0800</pubDate><description><![CDATA[环境准备 ：

安装 nodejs，vscode

使用方法 ：

安装npm 依赖
	重命名.env.example文件为.env文件，并按照要求添加相应参数（具体要求下面会写）
	执行node sniper-bot.js
.env配置文件


# 节点 默认BSC主网 测试网：https://data-seed-prebsc-1-s1.binance.org:8545
node=https://bsc-dataseed.binance.org/
# 预售地址(复制PinkSale或DxSale的预售地.]]></description><category></category></item><item><title><![CDATA[最近使用抢土狗机器人被杀了 bot killed，过程分析，及解决办法。]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/124555686</link><guid>https://blog.youkuaiyun.com/bareape/article/details/124555686</guid><author>bareape</author><pubDate>Tue, 03 May 2022 15:23:38 +0800</pubDate><description><![CDATA[上一篇文章，写了抢开盘的机器人，自己测试了3次，都是成功的，第四次，买进去了，但是卖不出去，我具体分析如下 ：

首先我们先看下项目方的代码：

定义的全局变量 ：


uint256 public KillNum = 3; //kill bot


买进的时候：


if(sender != owner &amp;&amp; recipient != pair &amp;&amp; block.number &lt; launchedAt+ KillNum ){

isXXKING[recipient] ]]></description><category></category></item><item><title><![CDATA[pancakeswap 开盘抢跑机器人 （附代码）]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/124515282</link><guid>https://blog.youkuaiyun.com/bareape/article/details/124515282</guid><author>bareape</author><pubDate>Sat, 30 Apr 2022 17:14:51 +0800</pubDate><description><![CDATA[这个机器人主要就是抢跑用的：机器人一次只能狙击一个令牌。


如何运行
1. 拷贝代码
2. $ npm 安装
3. 复制你的 env.example到 .env
4. 使用以下说明设置您的 .env：        


WBNB_CONTRACT=0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c

购买代币的 WBNB 合约

FACTORY=0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73

Pancake Factory 合约获]]></description><category></category></item><item><title><![CDATA[Flashswap 学习笔记（附代码）]]></title><link>https://blog.youkuaiyun.com/bareape/article/details/124434532</link><guid>https://blog.youkuaiyun.com/bareape/article/details/124434532</guid><author>bareape</author><pubDate>Wed, 27 Apr 2022 15:49:37 +0800</pubDate><description><![CDATA[什么是Flashswap？
利用交易的原子性，可以在这样的同一笔交易中调用智能合约，同时完成借和还，参考下图：]]></description><category></category></item></channel></rss>