<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CoderZS的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/zhang18024666607</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zhang18024666607]]></copyright><item><title><![CDATA[工具类-企业微信自助QA机器人接入]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/132241387</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/132241387</guid><author>zhang18024666607</author><pubDate>Fri, 11 Aug 2023 23:18:46 +0800</pubDate><description><![CDATA[获取用户相关（企微机器人只能通过聊天信息拿到userid，如果需要通过userid获取用户信息，需要申请企微应用然后调用企微通讯录相关api来获取，企微应用可以在流程中心进行企微应用申请，然后联系it的同学获取更多信息）在企业当中，经常会被多次问到相同的问题，而我们都有自己的其他需求需要做，于是为了提高办公效率，缩短沟通成本，我们可以在企业微信里面拉一个群，创建一个机器人，通过@企业机器人自助问答的方式获取想要的结果；3.4 配置 接收消息配置 信息。3.2 给机器人取个名字。3.3 点击配置说明。]]></description><category></category></item><item><title><![CDATA[seata 1.4安装与配置]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118599</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118599</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 16:02:27 +0800</pubDate><description><![CDATA[1. 下载：https://github.com/seata/seata/releases
解压，注意看下里面有个README-zh.md，相关的一些脚本可以在这个文件的链接找到，因为不同的seata版本，脚本可能有差异，需要注意下。我这里把1.4.0的这个文件内容补充在下面：
脚本说明
client

存放用于客户端的配置和SQL


at: AT模式下的 undo_log 建表语句
conf: 客户端的配置文件
saga: SAGA 模式下所需表的建表语句
spring: SpringBoot 应用支持]]></description><category></category></item><item><title><![CDATA[钉钉机器人开发]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118522</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118522</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 16:01:57 +0800</pubDate><description><![CDATA[钉钉机器人开发文档API
一，先创建一个钉钉群


二，添加自定义机器人

三，安全设置（3选1）

四， 复制webhook作为发送通知的url

剩下的就是在代码里实现了
因为要发送网络请求 我这边使用的是hutool工具
添加maven
&lt;!--糊涂工具--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;cn.hutool&lt;/groupId&gt;
    &lt;artifactId&gt;hutool-all&lt;/artifactId&gt;
]]></description><category></category></item><item><title><![CDATA[Kafka优化]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118470</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118470</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 16:01:20 +0800</pubDate><description><![CDATA[一 ， broker优化：


优化处理消息的最大线程数 默认是3 可以调成CPU数+1


broker处理磁盘IO线程数 CUP数*2


调整log的文件刷盘策略 10000条或者1秒


日志保存策略调整为72小时 不建议过多


副本机制调整为2-3


根据业务量调整合适的partition数量


二，Producer优化：


调整未发送出去消息的缓冲区大小


默认发送不压缩，可以配置合适的压缩方式（Snappy）


三， Consumer优化：
1.启动consumer的线程数适当的增]]></description><category></category></item><item><title><![CDATA[nacos集群部署]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118409</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118409</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 16:00:48 +0800</pubDate><description><![CDATA[Nacos 致力于发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集，快速实现动态服务发现、服务配置、服务元数据及流量管理
官方链接: https://nacos.io/zh-cn/docs/what-is-nacos.html
下载编译好的压缩包：https://github.com/alibaba/nacos/releases
一、Nacos环境搭建(单节点)
上传资源包至Linux目录
解压至/usr/local/目录
tar -zxvf nacos-server-1.2.1.tar.gz]]></description><category></category></item><item><title><![CDATA[SpringBoot整合kafka集群]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118353</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118353</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 16:00:18 +0800</pubDate><description><![CDATA[本文整合基于Springboot2.0+，kafka版本kafka_2.12-2.3.0，使用org.springframework.kafka来做的整合

项目目录结构

pom.xml依赖
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.kafka&lt;/groupId&gt;
    &lt;artifactId&gt;spring-kafka&lt;/artifactId&gt;
    &lt;version&gt;2.2.6.]]></description><category></category></item><item><title><![CDATA[SpringBoot整合ES集群]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118288</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118288</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 15:59:48 +0800</pubDate><description><![CDATA[本文整合基于Springboot2.0+，es版本6.2.2，使用spring-boot-starter-data-elasticsearch来做的整合demo
项目结构

pom.xml 引入依赖
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance]]></description><category></category></item><item><title><![CDATA[ElasticSearch读写底层原理及性能调优]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118187</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118187</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 15:58:32 +0800</pubDate><description><![CDATA[##一，读写底层原理
Elasticsearch写人数据的过程
1）客户端选择一个node发送请求过去，这个node就是coordinating node（协调节点）
2）coordinating node，对document进行路由，将请求转发给对应的node（有primary shard）
3）实际的node上的primary shard处理请求，然后将数据同步到replica node
4）coordinating node，如果发现primary node和所有replica node都搞定之后，就]]></description><category></category></item><item><title><![CDATA[Java自定义注解原理及实现]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118148</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/113118148</guid><author>zhang18024666607</author><pubDate>Mon, 25 Jan 2021 15:57:59 +0800</pubDate><description><![CDATA[本章主要内容：1.了解注解原理，2,自定义注解（根据实际应用自定义注解打印每个接口的请求日志）

一, 了解注解原理
元注解
元注解的作用就是注解其他注解，一般我们使用自定义注解时，就需要用元注解来标注我们自己的注解，一共有以下四个元注解

1.@Target： 说明了Annotation被修饰的范围，可被用于 packages、types（类、接口、枚举、Annotation类型）、类型成员（方法、构造方法、成员变量、枚举值）、方法参数和本地变量（如循环变量、catch参数）。在Annotation类.]]></description><category></category></item><item><title><![CDATA[SpringBoot日志框架logback]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796679</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796679</guid><author>zhang18024666607</author><pubDate>Tue, 18 Jun 2019 17:21:41 +0800</pubDate><description><![CDATA[目录一，简单日志配置1.1 配置控制台日志的debug级别1.2 在生产环境环境下，你可以通过命令行进行配置日志的debug级别1.3 配置logging.level 来具体输出哪些包的日志级别1.4 将日志输出到文件中二， logback的介绍及配置2.1，Logback介绍2.2，Logback优点2.3，Logback优点Logback的配置介绍三、Logback的使用3.1，Logback...]]></description><category></category></item><item><title><![CDATA[ConcurrentHashMap底层实现原理((JDK1.7&1.8))]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796400</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796400</guid><author>zhang18024666607</author><pubDate>Tue, 18 Jun 2019 17:10:18 +0800</pubDate><description><![CDATA[目录前言ConcurrentHashMap （JDK1.7的实现）初始化put操作get操作size操作ConcurrentHashMap （JDK1.8的实现）NodeTreeNodeTreeBinput操作get操作size操作总结与思考
前言
我们都知道HashMap在多线程情况下，在put的时候，插入的元素超过了容量（由负载因子决定）的范围就会触发扩容操作，就是rehash，这个会重新将原...]]></description><category></category></item><item><title><![CDATA[ThreadLocal 深度解析]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796259</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796259</guid><author>zhang18024666607</author><pubDate>Tue, 18 Jun 2019 17:03:52 +0800</pubDate><description><![CDATA[目录一，对ThreadLocal的理解二 ，深入解析ThreadLocal类get()方法：set()方法remove()方法ThreadLocalMap类Hash冲突怎么解决ThreadLocalMap的问题三.ThreadLocal的应用场景四，总结
一，对ThreadLocal的理解
ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射，各个...]]></description><category></category></item><item><title><![CDATA[使用邮件通知方式实现异常报警功能]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796085</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/92796085</guid><author>zhang18024666607</author><pubDate>Tue, 18 Jun 2019 16:57:42 +0800</pubDate><description><![CDATA[目录邮件的发送接收过程一，开通SMTP协议二，代码实现1.引入依赖2.代码编写邮件的发送接收过程1.开通SMTP协议二，代码实现1.引入依赖2.代码编写
首先我们需要了解一下邮件发送(SMTP)和邮件接收(POP3)的协议:
SMTP（Simple MailTransfer Protocol）即简单邮件传输协议， 它是一组用于由源地址到目的地址传送邮件的规则，由它来控制邮件的中转方式。 SMTP协...]]></description><category></category></item><item><title><![CDATA[Redis 几种数据类型及应用场景]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/89702911</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/89702911</guid><author>zhang18024666607</author><pubDate>Tue, 30 Apr 2019 09:01:54 +0800</pubDate><description><![CDATA[Redis支持5种数据类型：string（字符串），hash（哈希），list（列表），set（集合）及zset(sorted set：有序集合)。何时使用Redis呢?
先通过一张图了解下Redis内部内存管理中是如何描述这些不同数据类型的：

首先Redis内部使用一个redisObject对象来表示所有的key和value，redisObject最主要的信息如上图所示：type代表一个val...]]></description><category></category></item><item><title><![CDATA[使用python写一个线程安全的单例]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/89702904</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/89702904</guid><author>zhang18024666607</author><pubDate>Tue, 30 Apr 2019 09:01:04 +0800</pubDate><description><![CDATA[单例在各种编程语言开发中都很常见，前面我们使用Java OC swift 分别对单例进行了探讨，下面我们使用python写一个线程安全的单例。
import threading


def synchronized(func):
    func.__lock__ = threading.Lock()

    def lock_func(*args, **kwargs):
        wit...]]></description><category></category></item><item><title><![CDATA[MyBatis中$和#的区别]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/89290704</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/89290704</guid><author>zhang18024666607</author><pubDate>Sat, 13 Apr 2019 23:15:23 +0800</pubDate><description><![CDATA[动态 SQL 是 mybatis 的强大特性之一，也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前，会对 sql 进行动态解析，解析为一个 BoundSql 对象，也是在此处对动态 SQL 进行处理的。在动态 SQL 解析阶段， #{ } 和 会有不同的表现1.都可以获取对象中的属性值,{ } 会有不同的表现
1.都可以获取对象中的属性值,会有不同的表现...]]></description><category></category></item><item><title><![CDATA[java反射机制]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/89290677</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/89290677</guid><author>zhang18024666607</author><pubDate>Sat, 13 Apr 2019 23:13:38 +0800</pubDate><description><![CDATA[####一、概述
Java反射机制定义

Java反射机制是在运行状态中，对于任意一个类，都能够知道这个类中的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。枚举除外

** 反射机制的功能**


在运行时判断任意一个对象所属的类。




在运行时构造任意一个类的对象。


在运行时判断任意一个类所具...]]></description><category></category></item><item><title><![CDATA[python 定时任务框架APScheduler]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/89095265</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/89095265</guid><author>zhang18024666607</author><pubDate>Mon, 08 Apr 2019 16:37:52 +0800</pubDate><description><![CDATA[1、 简介
APScheduler的全称是Advanced Python Scheduler。它是一个轻量级的 Python 定时任务调度框架。APScheduler 支持三种调度任务：固定时间间隔，固定时间点（日期），Linux 下的 Crontab 命令。同时，它还支持异步执行、后台执行调度任务。
2、 安装
使用 pip 包管理工具安装 APScheduler 是最方便快捷的。

pip i...]]></description><category></category></item><item><title><![CDATA[基于python实现FTP文件上传与下载（ftp&sftp协议）]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/88996813</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/88996813</guid><author>zhang18024666607</author><pubDate>Wed, 03 Apr 2019 15:33:15 +0800</pubDate><description><![CDATA[前言 FTP(File Transfer Protocol)是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时，它也是一个应用程序（Application）。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连，访问服务器上的大量程序和信息。如果用户需要将文件从自己的计算机上发送到另一台计算机上，可使用FTP上传（upload）或（put）操作，而更多种的情况是...]]></description><category></category></item><item><title><![CDATA[Kafka实战]]></title><link>https://blog.youkuaiyun.com/zhang18024666607/article/details/88996727</link><guid>https://blog.youkuaiyun.com/zhang18024666607/article/details/88996727</guid><author>zhang18024666607</author><pubDate>Wed, 03 Apr 2019 15:30:20 +0800</pubDate><description><![CDATA[1. Kafka介绍
1.1 主要功能
根据官网的介绍，ApacheKafka是一个分布式流媒体平台，它主要有3种功能：
1：It lets you publish and subscribe to streams of records.发布和订阅消息流，这个功能类似于消息队列，这也是kafka归类为消息队列框架的原因
2：It lets you store streams of records ...]]></description><category></category></item></channel></rss>