<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[X_T_X_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/X_T_X_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; X_T_X_]]></copyright><item><title><![CDATA[将用户添加到docker组]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/136208466</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/136208466</guid><author>X_T_X_</author><pubDate>Wed, 21 Feb 2024 12:42:12 +0800</pubDate><description><![CDATA[通过这个命令，您向其他用户授予了对Docker套接字的读写权限，这意味着其他用户可以通过该套接字与Docker守护进程进行通信，而不需要通过sudo命令获取root权限。因为只在当前会话有效，所以执行完该命令后，我们在当前终端中实行docker的命令，不需要添加sudo，但是如果打开一个新的终端，执行docker images还是会提示权限不足。上网查了资料，如何关闭了终端或者重新登录后，仍然可以不使用sudo执行docker命令，尝试了注销再次重新登录，重启虚拟机，都没有用。1.查看docker用户组。]]></description><category></category></item><item><title><![CDATA[使用idea远程开发maven项目遇到的问题]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/136194517</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/136194517</guid><author>X_T_X_</author><pubDate>Tue, 20 Feb 2024 17:04:39 +0800</pubDate><description><![CDATA[通过问同学是否有remote development选项，他的版本是2022，webstorm是2022，至少都不是2021，也都有远程开发的选项，于是尝试升级idea版本。查看文件夹的权限是否是可写的，如果是只读的，要修改权限）在setting中查看maven的设置，发现不是之前下载好的3.6.0版本的maven，setting.xml和repository的路径也不对。的，不是maven没有拉取依赖，而是无法写入到你所指定的文件夹中。之后项目一直在加载，maven拉取依赖一直在加载。]]></description><category></category></item><item><title><![CDATA[SQL中的AVG函数]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/135860709</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/135860709</guid><author>X_T_X_</author><pubDate>Fri, 26 Jan 2024 10:47:59 +0800</pubDate><description><![CDATA[使用distinct关键字，avg函数仅计算字段中的唯一的值。默认使用all关键字，avg函数将获取计算字段中的所有值。）的行的数量，然后除以总行数，得到条件为真的行的比例。eg：一组集合number（1，2，3，3，4）函数时，它首先会计算条件表达式为真（即非空的。完整示例代码，对应力扣题号：550。]]></description><category></category></item><item><title><![CDATA[日期和时间函数datediff和timestampdiff的区别]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/135822421</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/135822421</guid><author>X_T_X_</author><pubDate>Wed, 24 Jan 2024 14:58:49 +0800</pubDate><description><![CDATA[datediff(日期1，日期2)：得到的结果，返回值是日期1和日期2相差的天数（日期1 - 日期2）。结果datediff1 是 1，datediff2是 -1。]]></description><category></category></item><item><title><![CDATA[布隆过滤器]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/135672128</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/135672128</guid><author>X_T_X_</author><pubDate>Thu, 18 Jan 2024 13:36:38 +0800</pubDate><description><![CDATA[应用场景，用来判断一个元素是否存在与包含大量元素的集合中。我们可以把布隆过滤器当成由一个较大的bit array（）和几个组成的数据结构。]]></description><category></category></item><item><title><![CDATA[TCP三次握手和四次挥手]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/135581871</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/135581871</guid><author>X_T_X_</author><pubDate>Sun, 14 Jan 2024 12:34:28 +0800</pubDate><description><![CDATA[举个例⼦：A 和 B 建立连接。第一次握手：客户端发送位码为SYN=1，随机产生seq number=client_isn的数据包到服务端，服务端由SYN=1知道，客户端要求建立连接（第二次握手：服务端收到请求后需要确认连接信息，向客户端发送ack number=（客户端的seq + 1），随机产生seq number=server_isn的包（]]></description><category></category></item><item><title><![CDATA[StringBuffer为什么比String快]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/135577003</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/135577003</guid><author>X_T_X_</author><pubDate>Sat, 13 Jan 2024 22:25:07 +0800</pubDate><description><![CDATA[修改字符串：StringBuilder：建议单线程使用、速度快StringBuffer：线程安全，速度略慢与StringBuilder，远大于StringStringBuffer为啥比String快 - huangwu - 博客园 (cnblogs.com)]]></description><category></category></item><item><title><![CDATA[@RequestBody的作用]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/134406214</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/134406214</guid><author>X_T_X_</author><pubDate>Tue, 14 Nov 2023 19:33:37 +0800</pubDate><description><![CDATA[总的来说，在处理GET请求时，通常使用`@RequestParam`来提取URL参数，而不使用`@RequestBody`注解。`@RequestBody`更适用于处理POST、PUT等请求方法，其中请求体中包含需要处理的数据。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Docker学习]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131502241</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131502241</guid><author>X_T_X_</author><pubDate>Sun, 02 Jul 2023 17:35:14 +0800</pubDate><description><![CDATA[黑马笔记。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Gateway网关学习]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131357845</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131357845</guid><author>X_T_X_</author><pubDate>Sat, 24 Jun 2023 17:16:03 +0800</pubDate><description><![CDATA[区别在于GatewayFilter通过配置定义，处理逻辑是固定的。而GlobalFilter的逻辑需要自己写代码实现。GlobalFilter的作用也是处理一切进入网关的请求和微服务响应，与GatewayFliter的作用一样。对所有路由都生效的过滤器，并且可以自定义处理逻辑。2.添加@Order注解或实现Ordered接口。1.实现GlobalFilter接口。1.身份认证和权限校验。2.服务路由、负载均衡。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ 为什么还要使用Feign来代替RestTemplate]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131354967</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131354967</guid><author>X_T_X_</author><pubDate>Fri, 23 Jun 2023 23:50:58 +0800</pubDate><description><![CDATA[Feign是一个声明式的http客户端，（要实现发送http请求不好发，只需要把发请求所需要的信息声明出来，剩下的事情就不需要管了，由Feign帮你来做）其作用就是帮助我们优雅的实现http请求的发送，解决上面提到的问题。可读性差：上面的一段代码，是一个http请求的代码，有url路径，又有复杂的请求方式，对于没有接触过远程调用的人来讲，这段代码根本看不懂。太优雅了，只需要一行代码，并且也符合学习springboot时候编写代码的习惯，先注入再调用。请求路径：/user/{id}请求参数：Long id。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Nacos实现配置的热更新/多环境配置共享]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131352837</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131352837</guid><author>X_T_X_</author><pubDate>Fri, 23 Jun 2023 18:20:50 +0800</pubDate><description><![CDATA[prefix中的内容表示，使用配置文件中前缀为pattern的属性的值初始化该bean定义产生的bean实例的同名属性。在使用这个bean时，其属性dateformat会是配置文件中的值。通过@Value注解注入，需要在@Value注入的变量所在类上添加注解@RefreshScope。方式二：通过添加配置类，使用@ConfigurationProperties注解来实现。Nacos中的配置文件变更后，微服务无需重启就可以感知。这个图解释的很清楚。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Nacos配置管理]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131304364</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131304364</guid><author>X_T_X_</author><pubDate>Tue, 20 Jun 2023 12:32:44 +0800</pubDate><description><![CDATA[在原本没有Nacos配置文件的时候，我们项目启动只需要读取本地配置文件，但是现在我们需要加入Nacos配置文件的读取。操作如上图，但是在读取nacos配置文件的时候需要一些信息：1. 去哪里读取，2.读取什么信息。所以在读取nacos文件之前，首先需要知道nacos的地址，但是nacos的地址写在本地配置文件中，所以需要提前知道nacos的地址。这时候就需要bootstrap.yml文件了。这个文件的优先级要比application.yml文件高很多。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Eureka和Nacos的对比]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131301219</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131301219</guid><author>X_T_X_</author><pubDate>Tue, 20 Jun 2023 10:27:56 +0800</pubDate><description><![CDATA[④ Nacos集群默认采用AP模式（强调数据的可用性），当集群中存在非临时实例时，采用CP模式（强调数据的可靠性和一致性）临时实例采用心跳模式，非临时实例采用主动检测模式。③ Nacos支持服务列表变更的消息推送模式，服务列表更新更及时。② 临时实例心跳不正常会被剔除，非临时实例则不会被剔除。Eureka采用AP模式，不会切换。②都支持服务提供者心跳方式做健康检测。① 都支持服务注册和服务拉取。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Redis的持久化RDB / AOF]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131203885</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131203885</guid><author>X_T_X_</author><pubDate>Wed, 14 Jun 2023 13:44:15 +0800</pubDate><description><![CDATA[先使用redis-cli连接Redis，再执行save命令，就会执行RDB的备份操作了。但是该执行的操作是由Redis的主进程来完成的，我们知道Redis又是单线程的。因为主进程在忙着执行RDB的，而RDB操作是需要把数据写到磁盘当中，而磁盘的IO往往是比较慢的。Redis执行save操作，是在主动停机Redis的时候执行，但是如果我们的Redis服务器执行了一个月，没有来得及save，突然宕机了，数据就丢失了。#  开启子进程执行RDB，避免主进程受到影响（适用于在Redis执行的过程中去执行）]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Redis中哨兵的作用]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131186802</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131186802</guid><author>X_T_X_</author><pubDate>Tue, 13 Jun 2023 14:11:06 +0800</pubDate><description><![CDATA[（redis客户端需要去访问集群，实现数据的读写，但是因为做了读写分离，需要在主节点做写操作，需要在从节点做读操作。所以通知的意思就是我们的Java客户端，在赵主从地址的时候，不是直接去找主从节点集群，而是去找sentinel，由sentinel去告诉客户端主从地址是什么。将来一旦主从发生了切换，sentinel会立即将服务的状态变更，并通知Java客户端，使得Java客户端知道新的主和新的从是谁了，从而就能改变自己的节点访问的地址了。当故障实例恢复后也为新的master为主。黑马redis学习笔记。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Java基础面试]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/131018739</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/131018739</guid><author>X_T_X_</author><pubDate>Sat, 03 Jun 2023 11:03:23 +0800</pubDate><description><![CDATA[标识符就是给变量、方法，类起的名字，但是有一些标识符，Java已经赋予了特殊的含义，这些被赋予特殊含义的标识符就叫关键字。对于int类型左移/右移大于32位，会先对位移的位数做求余操作，再进行位移操作，比如需要位移32位，32%32=0，就表示不需要进行位移操作；2.C++支持方法的重载和操作符的重载，但是Java仅支持方法的重载，因为操作符的重载增加了复杂性，与Java最初的设计思想不符。1.Java的类是单继承的，C++的类是可以多继承的，但Java的接口可以多继承。Java和C++的区别是什么？]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Java基础面试]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/130999873</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/130999873</guid><author>X_T_X_</author><pubDate>Fri, 02 Jun 2023 09:08:38 +0800</pubDate><description><![CDATA[在一个Java进程开始运行或，虚拟机就开始实例化了，有多个进程就会启动多个虚拟机实例。进程退出或关闭，则虚拟机实例就会消亡，在多个虚拟机实例之间不能共享数据。每种操作系统的解释器都是不同的，但基于解释器实现的虚拟机是相同的，这也是Java能够跨平台的愿因了。首先我们也知道一个命令Javap，这个是Java自带的反解析编译器，可以查看Java编译器生成的字节码。3.机器码调用相应操作系统的本地方法库执行相应的方法。2.JVM将字节码文件编译成相应的操作系统机器码。1.Java源文件被编译器编译成字节码文件。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ SpringCloud 23/05/28]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/130915320</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/130915320</guid><author>X_T_X_</author><pubDate>Sun, 28 May 2023 20:23:24 +0800</pubDate><description><![CDATA[1.单一职责：微服务拆分粒度更小，每一个服务都对应唯一的业务能力，做到单一职责，避免重复业务开发。（会员服务，用户服务，积分服务，这些都属于会员模块中的功能，但是我们不能把他们都包含在一起，应该进一步拆分为单独的模块，这样每一个服务业务更少了，影响的范围更少了。2.面向服务：微服务对外暴露服务接口。（但是属于同一功能模块之间的服务需要互相调用，就需要对外暴露服务接口。3.自治团队独立：一个小团队开发一个服务技术独立：一个团队负责一个服务，技术可以根据业务去选择合适的，也可选择自己熟练的技术。数据独立。]]></description><category></category></item><item><title><![CDATA[＜学习笔记＞ Redis为什么单线程还这么快？]]></title><link>https://blog.youkuaiyun.com/X_T_X_/article/details/130913979</link><guid>https://blog.youkuaiyun.com/X_T_X_/article/details/130913979</guid><author>X_T_X_</author><pubDate>Sun, 28 May 2023 17:39:20 +0800</pubDate><description><![CDATA[Redis是基于内存操作，CPU不是Redis性能的瓶颈，Redis的瓶颈是根据机器的内存和网络带宽，既然可以使用单线程来实现，就是使用单线程了，所以就使用单线程了。（狂神redis课）？？？听完感觉是：因为这样，所以这样。看完我的想法是：那多线程上下文切换和访问共享资源会浪费时间，那多线程好在哪？再看问题：redis单线程为什么那么快，意思是单线程按理说比多线程慢。知道了多线程和CPU的关系，CPU早期是单核，并且一次执行完一个线程再执行下一个。现在是多核CPU，一核执行一个线程。]]></description><category></category></item></channel></rss>