<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ti_an_Di的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Ti_an_Di</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Ti_an_Di]]></copyright><item><title><![CDATA[vscode下poetry管理项目的debug配置]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/145323258</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/145323258</guid><author>Ti_an_Di</author><pubDate>Thu, 23 Jan 2025 14:40:56 +0800</pubDate><description><![CDATA[vscode配合poetry进行debug]]></description><category></category></item><item><title><![CDATA[基于Redis实现令牌桶算法]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/144476766</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/144476766</guid><author>Ti_an_Di</author><pubDate>Sat, 14 Dec 2024 22:14:31 +0800</pubDate><description><![CDATA[令牌桶是一种用于分组交换和电信网络的算法。它可用于检查数据包形式的数据传输是否符合定义的带宽和突发性限制（流量不均匀或变化的衡量标准）。它还可以用作调度算法来确定符合带宽和突发性限制设置的传输时序。本文是使用Redis的Lua脚本来实现的。]]></description><category></category></item><item><title><![CDATA[Python 根据时间描述获取秒数]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/144177041</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/144177041</guid><author>Ti_an_Di</author><pubDate>Sun, 01 Dec 2024 23:18:26 +0800</pubDate><description><![CDATA[2天0小时34分10秒 -> 174850。通过时间描述获取对应的秒数。1天3小时 -> 97200。]]></description><category></category></item><item><title><![CDATA[Python venv创建失败问题]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/143453555</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/143453555</guid><author>Ti_an_Di</author><pubDate>Sat, 02 Nov 2024 17:30:54 +0800</pubDate><description><![CDATA[找不到模块'ensurepip']]></description><category></category></item><item><title><![CDATA[阿里云PAI主机网页访问测试]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139855301</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139855301</guid><author>Ti_an_Di</author><pubDate>Fri, 21 Jun 2024 12:00:26 +0800</pubDate><description><![CDATA[尝试在本地访问阿里云DSW的服务]]></description><category></category></item><item><title><![CDATA[LMStudio下载模型]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139802940</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139802940</guid><author>Ti_an_Di</author><pubDate>Wed, 19 Jun 2024 14:55:06 +0800</pubDate><description><![CDATA[下载开源模型解决办法。]]></description><category></category></item><item><title><![CDATA[netty4 输出chunk]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139278995</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139278995</guid><author>Ti_an_Di</author><pubDate>Tue, 28 May 2024 21:53:15 +0800</pubDate><description><![CDATA[【代码】netty4 输出chunk。]]></description><category></category></item><item><title><![CDATA[ES脚本启动报错修改]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139262297</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/139262297</guid><author>Ti_an_Di</author><pubDate>Tue, 28 May 2024 11:40:08 +0800</pubDate><description><![CDATA[最后发现$ES_OPT前方多了一个空格导致启动失败。对变量ES_OPT进行前后空格去除。]]></description><category></category></item><item><title><![CDATA[正则表达式随笔]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/115294037</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/115294037</guid><author>Ti_an_Di</author><pubDate>Mon, 29 Mar 2021 09:58:49 +0800</pubDate><description><![CDATA[非贪婪匹配

在非贪婪匹配的部分后加?

for example:

字符串: "public"."test"

正则 (?&lt;=\").*(?=\") 匹配结果

public"."test

正则 (?&lt;=\").*?(?=\") 匹配结果

public

.

test



大小写替换

\U为大写替换

\L为小写替换

for example:

字符串: "pUblic"."TeSt"

正则表达式
			匹配结果
			替换文本
			结果
		(?&lt;=\").*?(?..]]></description><category></category></item><item><title><![CDATA[soul 之 ratelimiter 插件源码分析]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113705143</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113705143</guid><author>Ti_an_Di</author><pubDate>Fri, 05 Feb 2021 23:12:37 +0800</pubDate><description><![CDATA[首先看入口的 RateLimiterPlugin插件的doExecute方法


@Override
protected Mono&lt;Void&gt; doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {
    final String handle = rule.getHandle();
    final]]></description><category></category></item><item><title><![CDATA[【soul】网关之【ratelimiter】插件之初体验]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113666683</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113666683</guid><author>Ti_an_Di</author><pubDate>Fri, 05 Feb 2021 00:28:36 +0800</pubDate><description><![CDATA[ratelimiter是一款限流插件，限流的级别可以精确到接口级，参数级。

使用Redis的令牌桶算法

1. 启动【soul-admin】和【soul-bootstrap】

2.登录管理界面，开启rate-limiter插件



3. 配置用户测试的选择器【ratelimiter-test】



4. 配置规则【ratelimiter-test-rule】

5. 启动【soul-examples-http】

6. 访问 /http/order/findById


curl http://..]]></description><category></category></item><item><title><![CDATA[soul之hystrix源码分析]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113622995</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113622995</guid><author>Ti_an_Di</author><pubDate>Thu, 04 Feb 2021 01:26:48 +0800</pubDate><description><![CDATA[首先，阅读HystrixPlugin源码


@Slf4j
public class HystrixPlugin extends AbstractSoulPlugin {

    @Override
    protected Mono&lt;Void&gt; doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {]]></description><category></category></item><item><title><![CDATA[【soul】之【hystrix】初体验]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113534060</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113534060</guid><author>Ti_an_Di</author><pubDate>Tue, 02 Feb 2021 08:06:58 +0800</pubDate><description><![CDATA[1. 打开hystrix



2. 【soul-bootstrap】添加hystrix依赖


&lt;dependency&gt;
    &lt;groupId&gt;org.dromara&lt;/groupId&gt;
    &lt;artifactId&gt;soul-spring-boot-starter-plugin-hystrix&lt;/artifactId&gt;
    &lt;version&gt;${project.version}&lt;/version&gt;
&lt;/d]]></description><category></category></item><item><title><![CDATA[soul sofa 插件分析]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113449624</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113449624</guid><author>Ti_an_Di</author><pubDate>Sun, 31 Jan 2021 01:14:08 +0800</pubDate><description><![CDATA[主要分析SofaPlugin 的代码


protected Mono&lt;Void&gt; doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {
    String body = exchange.getAttribute(Constants.SOFA_PARAMS); // 获取请求体
    SoulC.]]></description><category></category></item><item><title><![CDATA[2021-01-30]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113409993</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113409993</guid><author>Ti_an_Di</author><pubDate>Sat, 30 Jan 2021 02:16:57 +0800</pubDate><description><![CDATA[1. 启动【soul-admin】

2. 登录管理界面，打开 sofa 插件



3. 在【soul-bootstrap】里添加如下依赖


&lt;dependency&gt;
    &lt;groupId&gt;com.alipay.sofa&lt;/groupId&gt;
    &lt;artifactId&gt;sofa-rpc-all&lt;/artifactId&gt;
    &lt;version&gt;${sofa.rpc.version}&lt;/version&gt;
&lt;]]></description><category></category></item><item><title><![CDATA[【soul-admin】SpringCloud元数据注册]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113362568</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113362568</guid><author>Ti_an_Di</author><pubDate>Fri, 29 Jan 2021 03:14:46 +0800</pubDate><description><![CDATA[在SoulClientController中提供了如下接口：


/**
* Register spring cloud string.
*
* @param springCloudRegisterDTO the spring cloud register dto
* @return the string
*/
@PostMapping("/springcloud-register")
public String registerSpringCloud(@RequestBody final SpringCl]]></description><category></category></item><item><title><![CDATA[soul数据上传之dubbo]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113283927</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113283927</guid><author>Ti_an_Di</author><pubDate>Thu, 28 Jan 2021 00:04:06 +0800</pubDate><description><![CDATA[【soul-admin】数据获取

【soul-admin】开放的dubbo注册接口


/**

* Register dubbo string.

*

* @param metaDataDTO the meta data dto

* @return the string

*/

@PostMapping("/dubbo-register")

public String registerRpc(@RequestBody final MetaDataDTO metaDataDTO) {

    r]]></description><category></category></item><item><title><![CDATA[soul数据上传-HTTP]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113215198</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113215198</guid><author>Ti_an_Di</author><pubDate>Wed, 27 Jan 2021 02:31:14 +0800</pubDate><description><![CDATA[@PostMapping("/springmvc-register")

    public String registerSpringMvc(@RequestBody final SpringMvcRegisterDTO springMvcRegisterDTO) {

        return soulClientRegisterService.registerSpringMvc(springMvcRegisterDTO);

    }

    @Override

    @Transac.]]></description><category></category></item><item><title><![CDATA[soul之http长轮询数据同步]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113154404</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113154404</guid><author>Ti_an_Di</author><pubDate>Tue, 26 Jan 2021 00:42:41 +0800</pubDate><description><![CDATA[1.【soul-admin】开始http长轮询数据同步


soul:
 sync:
  http:
   enabled: true


2.【soul-bootstrap】中添加http长轮询


&lt;dependency&gt;
  &lt;groupId&gt;org.dromara&lt;/groupId&gt;
  &lt;artifactId&gt;soul-spring-boot-starter-sync-data-http&lt;/artifactId&gt;
 ...]]></description><category></category></item><item><title><![CDATA[soul数据同步之nacos(2)]]></title><link>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113066042</link><guid>https://blog.youkuaiyun.com/Ti_an_Di/article/details/113066042</guid><author>Ti_an_Di</author><pubDate>Sun, 24 Jan 2021 03:55:59 +0800</pubDate><description><![CDATA[【soul-boostrap】如何更新数据

上节第3步开启了如下配置:


@Configuration
@ConditionalOnClass(NacosSyncDataService.class)
@ConditionalOnProperty(prefix = "soul.sync.nacos", name = "url")
@Slf4j
public class NacosSyncDataConfiguration {

    /**
     * Nacos sync data service.]]></description><category></category></item></channel></rss>