<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>一叶知秋</title><link>https://www.zhiqiu.top/</link><description>Good Luck To You!</description><item><title>微积分梯度算法</title><link>https://www.zhiqiu.top/?id=265</link><description>&lt;pre style=&quot;font-family:&amp;#39;JetBrains Mono&amp;#39;,monospace;font-size:9.8pt;&quot;&gt;import&amp;nbsp;numpy&amp;nbsp;as&amp;nbsp;np
#&amp;nbsp;损失函数：均方误差(MSE)
def&amp;nbsp;mse_loss(y_true,&amp;nbsp;y_pred):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;np.mean((y_true&amp;nbsp;-&amp;nbsp;y_pred)&amp;nbsp;**&amp;nbsp;2)

#&amp;nbsp;梯度计算：损失函数对参数w的偏导数
def&amp;nbsp;compute_gradient(X,&amp;nbsp;y,&amp;nbsp;w):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;L&amp;nbsp;=&amp;nbsp;(1/n)&amp;nbsp;*&amp;nbsp;Σ(y&amp;nbsp;-&amp;nbsp;wX)²
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;dL/dw&amp;nbsp;=&amp;nbsp;-(2/n)&amp;nbsp;*&amp;nbsp;Σ(y&amp;nbsp;-&amp;nbsp;wX)&amp;nbsp;*&amp;nbsp;X
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n&amp;nbsp;=&amp;nbsp;len(y)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;计算样板在向量方向的预估值，w是X的同列数的一维数组
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;predictions&amp;nbsp;=&amp;nbsp;X.dot(w)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;计算实际值y和预测值的差值，并计算出X每列特在在本次计算时的损失量，即X的行列转行并进行差值进行点积
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gradient&amp;nbsp;=&amp;nbsp;-(2/n)&amp;nbsp;*&amp;nbsp;X.T.dot(y&amp;nbsp;-&amp;nbsp;predictions)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;gradient

#&amp;nbsp;参数更新：沿梯度反方向移动，y是实际值，X是样本，w是向量即预测的评分体系，learning_rate是学习率，iterations是迭代次数
def&amp;nbsp;gradient_descent(X,&amp;nbsp;y,&amp;nbsp;w,&amp;nbsp;learning_rate,&amp;nbsp;iterations):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;i&amp;nbsp;in&amp;nbsp;range(iterations):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;计算本地迭代的梯度情况
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;grad&amp;nbsp;=&amp;nbsp;compute_gradient(X,&amp;nbsp;y,&amp;nbsp;w)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;根据梯度情况调整向量值，每次调整的比例是学习度
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;w&amp;nbsp;=&amp;nbsp;w&amp;nbsp;-&amp;nbsp;learning_rate&amp;nbsp;*&amp;nbsp;grad
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;i&amp;nbsp;%&amp;nbsp;100&amp;nbsp;==&amp;nbsp;0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;计算函数损失，也就是向量调整到什么情况，方差越小向量越准确，即按照向量方向进行预测越贴近实际值
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;loss&amp;nbsp;=&amp;nbsp;mse_loss(y,&amp;nbsp;X.dot(w))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;print(f&amp;quot;Iteration&amp;nbsp;{i}:&amp;nbsp;loss&amp;nbsp;=&amp;nbsp;{loss:.4f}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;w&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: nowrap;&quot;&gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 26 Feb 2026 17:10:59 +0800</pubDate></item><item><title>uv 的使用</title><link>https://www.zhiqiu.top/?id=264</link><description>&lt;p&gt;安装&lt;/p&gt;&lt;p&gt;pip install uv&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;
uv&amp;nbsp;init：创建新的&amp;nbsp;Python&amp;nbsp;项目。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;add：向项目添加依赖项。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;remove：从项目中删除依赖项。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;sync：将项目的依赖项与环境同步。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;lock：为项目的依赖项创建一个&amp;nbsp;lockfile。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;run：在项目环境中执行命令。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;tree：查看项目的依赖关系树。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;build：将项目构建到分发存档中。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;publish：将项目发布到包索引。

uv&amp;nbsp;python&amp;nbsp;install：安装&amp;nbsp;Python&amp;nbsp;版本。
uv&amp;nbsp;python&amp;nbsp;list：查看可用的&amp;nbsp;Python&amp;nbsp;版本。
uv&amp;nbsp;python&amp;nbsp;find：查找已安装的&amp;nbsp;Python&amp;nbsp;版本。
uv&amp;nbsp;python&amp;nbsp;pin：固定当前项目以使用特定的&amp;nbsp;Python&amp;nbsp;版本。
uv&amp;nbsp;python&amp;nbsp;uninstall：卸载&amp;nbsp;Python&amp;nbsp;版本。

uv&amp;nbsp;run：运行脚本。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
uv&amp;nbsp;add&amp;nbsp;--script：向脚本添加依赖项。&amp;nbsp;
uv&amp;nbsp;remove&amp;nbsp;--script：从脚本中删除依赖项。&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 14 Jul 2025 18:28:14 +0800</pubDate></item><item><title>信创麒麟主机下py服务import git时卡死问题</title><link>https://www.zhiqiu.top/?id=263</link><description>&lt;p&gt;操作系统信息如下&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/12/202412261735203002336092.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;Kylin操作系统，版本略低。&lt;/p&gt;&lt;p&gt;python服务启动时一直处于卡住的状态&lt;br/&gt;定位到服务代码 import git 的地方&lt;/p&gt;&lt;p&gt;看看git 这个依赖包有什么神奇之处&lt;/p&gt;&lt;p&gt;通过调试程序卡到了git 包的使用Popen的地方了&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/12/202412261735203166414911.jpg&quot; alt=&quot;img_v3_02hu_9bf2a256-e90c-47d1-aeb5-2b594c564efg.jpg&quot;/&gt;有问题的参数close_fds的值is_posix 这个测试是Ture&lt;/p&gt;&lt;p&gt;这个也是import 过来的&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/12/202412261735203436780330.png&quot; alt=&quot;image.png&quot;/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #333333; font-family: &amp;quot;pingfang SC&amp;quot;, &amp;quot;helvetica neue&amp;quot;, arial, &amp;quot;hiragino sans gb&amp;quot;, &amp;quot;microsoft yahei ui&amp;quot;, &amp;quot;microsoft yahei&amp;quot;, simsun, sans-serif; white-space: pre-wrap; background-color: #FFFFFF;&quot;&gt;close_fds=True，此时除了文件描述符为0 , 1 and 2，其他子进程都要被杀掉。
1、kylin操作系统在python句柄继承应该是有问题的或者操作系统的接口不符合POSIX标准但python程序中被告知符合&lt;/span&gt;&lt;/p&gt;</description><pubDate>Thu, 26 Dec 2024 16:48:44 +0800</pubDate></item><item><title>流水线构建镜像，已安装却不见的依赖包 jemalloc</title><link>https://www.zhiqiu.top/?id=262</link><description>&lt;p&gt;记录问题和处理过程已经解决的方式，非最佳解决方案&lt;/p&gt;&lt;p&gt;前言：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在Dockerfile 中 已经执行apt-get install -y&amp;nbsp;&lt;span style=&quot;white-space-collapse: preserve;&quot;&gt;libjemalloc-dev ，但是在后续执行命令：./configure --prefix=/usr/local/ruby --with-jemalloc 是提示没&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;jemalloc.h登相关内容&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;猜测安装失败。单独一步一步的执行Dockefile中的内容，无问题。&lt;/p&gt;&lt;p&gt;然后在Dockerfile中执行完apt-get install 后增加执行 source /etc/profile 、export、 ldconfig等命令&lt;/p&gt;&lt;p&gt;发现未生效。&lt;/p&gt;&lt;p&gt;继续测试。单独安装&lt;span style=&quot;text-wrap: wrap;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;libjemalloc-dev ，发现可以了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;</description><pubDate>Wed, 11 Sep 2024 16:29:36 +0800</pubDate></item><item><title>numpy学习地址</title><link>https://www.zhiqiu.top/?id=261</link><description>&lt;p style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://c.biancheng.net/numpy/io.html&quot; target=&quot;_self&quot; title=&quot;numpy学习&quot;&gt;numpy 学习&amp;nbsp;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 18 Jul 2024 16:29:22 +0800</pubDate></item><item><title>Jenkins启动服务时环境变量的缺失问题</title><link>https://www.zhiqiu.top/?id=260</link><description>&lt;p&gt;k8s部署的服务&lt;/p&gt;&lt;p&gt;背景：Jenkins启动的服务在获取指定环境变量时出现非预想结果&lt;/p&gt;&lt;p&gt;不是环境变量确实，是Jenkins在对环境变量为空的内容，不作为环境变量。&lt;/p&gt;&lt;p&gt;当获取时，结果是None&lt;/p&gt;&lt;p&gt;虽然在pod中手动获取环境变量是空字符串，echo $test 环境变量也是存在且为空字符串。&lt;br/&gt;但是Jenkins启动的py程序在获取环境变量&lt;/p&gt;&lt;div style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt; white-space-collapse: preserve;&quot;&gt;os.environ.get(&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;&lt;span style=&quot;color:#cc7832;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;#39;qwer&amp;#39;&lt;/span&gt;)&lt;/div&gt;&lt;p&gt;发现并不是空字符串，而是qwer，即test环境变量在启动时是不存在的 Node&lt;/p&gt;&lt;p&gt;修改为&lt;/p&gt;&lt;div style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt; white-space-collapse: preserve;&quot;&gt;os.environ.get(&lt;span style=&quot;color:#a5c261;&quot;&gt;&amp;#39;test&amp;#39;&lt;/span&gt;)&lt;/div&gt;&lt;p&gt;并调整判断条件。&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 15 Jul 2024 16:03:01 +0800</pubDate></item><item><title>k8s 服务流量流转</title><link>https://www.zhiqiu.top/?id=259</link><description>&lt;p&gt;1、首先是域名解析，解析到指定服务器ip，即k8s的mater的节点；&lt;/p&gt;&lt;p&gt;2、k8s 会通过&amp;nbsp;gateway 来解析流量&lt;/p&gt;&lt;p&gt;查看gateway（kubectl.exe get gateway -n test）&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/07/202407151721029128208401.png&quot; alt=&quot;image.png&quot; width=&quot;386&quot; height=&quot;257&quot; style=&quot;width: 386px; height: 257px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;例如域名是test.zhiqiu.top&lt;/p&gt;&lt;p&gt;端口默认是80，当然48080端口也是可以过来的（业务逻辑不同）&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;通过k8s 的gateway，即统一入口后流量打入到当前ns中&lt;/p&gt;&lt;p&gt;3、然后k8s 通过vs 解析路由并分发到指定的service中&lt;/p&gt;&lt;p&gt;查看vs(kubectl.exe get vs -n test)&lt;br/&gt;&lt;/p&gt;&lt;p&gt;查看vs详细内容&amp;nbsp;kubectl.exe edit vs zhiqiu-vs&amp;nbsp; -n test&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/07/202407151721029520865547.png&quot; alt=&quot;image.png&quot; width=&quot;436&quot; height=&quot;257&quot; style=&quot;width: 436px; height: 257px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;满足要求的路径将会被转发到front-new.test.svc.cluster.local 及 ns=test的svc为front-new的服务中&lt;/p&gt;&lt;p&gt;4、我这边的&lt;span style=&quot;text-wrap: wrap;&quot;&gt;front-new是一个前端服务，是一个nginx服务，对于来的流量进行&lt;span style=&quot;text-wrap: wrap;&quot;&gt;再次&lt;/span&gt;路由解析转发到指定的服务中。&lt;br/&gt;因为我这边是多个服务，前端有多个。这里的nginx服务解析完毕后会把流量转发给我们的统一鉴权服务。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: wrap;&quot;&gt;&lt;img src=&quot;https://www.zhiqiu.top/zb_users/upload/2024/07/202407151721030072429830.png&quot; alt=&quot;image.png&quot; width=&quot;467&quot; height=&quot;210&quot; style=&quot;width: 467px; height: 210px;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: wrap;&quot;&gt;5、统一鉴权服务根据鉴权结果，转发或者转登录。正常转发到路由对应的服务中（ps：当前我们所有的服务启动时都会请求统计鉴权服务进行注册服务路由，即我们自己的gateway服务）根据注册的路由信息进行转发到指定的服务中。&lt;br/&gt;6、svc将流量给到pod（这个就是k8s自己的分流策略了，这里没研究不在说了。一般是均分流量到多个pod）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 15 Jul 2024 15:33:28 +0800</pubDate></item><item><title>spring boot 删除kafka没有消费者的消费组</title><link>https://www.zhiqiu.top/?id=258</link><description>&lt;p&gt;背景： 服务使用k8s 部署，服务逻辑是广播消费，即每个服务（pod）都会起一个消费组&lt;br/&gt;因为每个pod都是一样的，无法固定消费组。同时每次更新或者重启pod时消费组就会增多。&lt;br/&gt;时间旧了消费组就会消息堆积，消费组也会越来越多。&lt;/p&gt;&lt;p&gt;在项目中启动一个定时任务删除无消费者的消费组&lt;/p&gt;&lt;p&gt;直接看代码&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-java&quot;&gt;package&amp;nbsp;org.osc.scan.codesearch.service.impl;

import&amp;nbsp;lombok.extern.slf4j.Slf4j;
import&amp;nbsp;org.apache.kafka.clients.admin.AdminClient;
import&amp;nbsp;org.apache.kafka.clients.admin.AdminClientConfig;
import&amp;nbsp;org.apache.kafka.clients.admin.ConsumerGroupListing;
import&amp;nbsp;org.apache.kafka.clients.admin.ListConsumerGroupsResult;
import&amp;nbsp;org.apache.kafka.common.KafkaFuture;
import&amp;nbsp;org.apache.kafka.common.config.SaslConfigs;
import&amp;nbsp;org.osc.scan.codesearch.service.DeleteKafkaGroups;
import&amp;nbsp;org.springframework.beans.factory.annotation.Value;
import&amp;nbsp;org.springframework.stereotype.Service;

import&amp;nbsp;java.util.Arrays;
import&amp;nbsp;java.util.Collection;
import&amp;nbsp;java.util.HashMap;
import&amp;nbsp;java.util.Map;

@Slf4j
@Service
public&amp;nbsp;class&amp;nbsp;DeleteKafkaGroupsImpl&amp;nbsp;implements&amp;nbsp;DeleteKafkaGroups&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Value(&amp;quot;${spring.kafka.bootstrap-servers}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;bootstrapServers;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Value(&amp;quot;${spring.kafka.properties.security.protocol}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;protocol;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Value(&amp;quot;${spring.kafka.properties.sasl.mechanism}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;saslMechanism;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Value(&amp;quot;${spring.kafka.properties.sasl.jaas.config}&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;private&amp;nbsp;String&amp;nbsp;jaasConfig;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;@Override
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;public&amp;nbsp;void&amp;nbsp;deleteGroupIds()&amp;nbsp;{

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Map&amp;lt;String,&amp;nbsp;Object&amp;gt;&amp;nbsp;props&amp;nbsp;=&amp;nbsp;new&amp;nbsp;HashMap&amp;lt;&amp;gt;(1);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG,bootstrapServers);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props.put(AdminClientConfig.SECURITY_PROTOCOL_CONFIG,&amp;nbsp;protocol);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props.put(SaslConfigs.SASL_MECHANISM,&amp;nbsp;saslMechanism);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;props.put(SaslConfigs.SASL_JAAS_CONFIG,&amp;nbsp;jaasConfig);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;创建一个kafka的admin客户端，执行高级操作
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;AdminClient&amp;nbsp;adminClient&amp;nbsp;=&amp;nbsp;AdminClient.create(props);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取消费组
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ListConsumerGroupsResult&amp;nbsp;listConsumerGroupsResult&amp;nbsp;=&amp;nbsp;adminClient.listConsumerGroups();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;获取所有消费组
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Collection&amp;lt;ConsumerGroupListing&amp;gt;&amp;nbsp;consumerGroupListings&amp;nbsp;=&amp;nbsp;listConsumerGroupsResult.all().get();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;遍历消费组
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for&amp;nbsp;(ConsumerGroupListing&amp;nbsp;consumerGroupListing&amp;nbsp;:&amp;nbsp;consumerGroupListings)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;String&amp;nbsp;groupId&amp;nbsp;=&amp;nbsp;consumerGroupListing.groupId();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;根据消费组的前缀(避免删除其他服务正在使用的消费组)&amp;nbsp;和&amp;nbsp;消费组没有消费者
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;(groupId.contains(&amp;quot;LatchGroup-&amp;quot;)&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;adminClient.describeConsumerGroups(Arrays.asList(groupId)).all().get().get(groupId).members().size()&amp;nbsp;==&amp;nbsp;0){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;找到要删除的groupID:{}&amp;quot;,&amp;nbsp;groupId);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;执行删除操作
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;KafkaFuture&amp;lt;Void&amp;gt;&amp;nbsp;resultFuture&amp;nbsp;=&amp;nbsp;adminClient.deleteConsumerGroups(Arrays.asList(groupId)).all();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;try&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;执行
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resultFuture.get();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.info(&amp;quot;成功删除groupID:{}&amp;quot;,&amp;nbsp;groupId);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(InterruptedException&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;catch&amp;nbsp;(Exception&amp;nbsp;e)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;e.printStackTrace();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;adminClient.close();


&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 21 Mar 2024 09:42:32 +0800</pubDate></item><item><title>go启动时遇见的问题和操作</title><link>https://www.zhiqiu.top/?id=257</link><description>&lt;p&gt;go env -w GOARCH=amd64&lt;/p&gt;&lt;p&gt;设置环境为amd64&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;go env&amp;nbsp; ==&amp;nbsp;&amp;nbsp;&lt;span style=&quot;text-wrap: wrap;&quot;&gt;go environment&lt;/span&gt;&lt;/p&gt;&lt;p&gt;查询环境变量&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;go get -u github.com/gin-gonic/gin&lt;/p&gt;&lt;p&gt;安装gin框架&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;go help environment&lt;/p&gt;&lt;p&gt;go 帮助文档 环境变量&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;go proxy&amp;nbsp;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;go代码，很多包需要代理下载&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;go mod vendor&amp;nbsp;&lt;/p&gt;&lt;p&gt;通过modues.txt 下载依赖到本地的vendor文件夹中&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Thu, 22 Feb 2024 11:22:02 +0800</pubDate></item><item><title>java pom 引入的依赖中  标签</title><link>https://www.zhiqiu.top/?id=256</link><description>&lt;div style=&quot;background-color: rgb(43, 43, 43); color: rgb(169, 183, 198); font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt; white-space-collapse: preserve;&quot;&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;dependency&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &amp;nbsp; &amp;nbsp;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/groupId&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &amp;nbsp; &amp;nbsp;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-starter-test&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/artifactId&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt; &amp;nbsp; &amp;nbsp;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/scope&amp;gt;&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color:#e8bf6a;&quot;&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;表示这个包只在test中生效&lt;/p&gt;</description><pubDate>Mon, 29 Jan 2024 13:49:14 +0800</pubDate></item></channel></rss>