<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[x37558670的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/x37558670</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; x37558670]]></copyright><item><title><![CDATA[springboot引入websocket的问题]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/128827346</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/128827346</guid><author>x37558670</author><pubDate>Wed, 01 Feb 2023 10:10:01 +0800</pubDate><description><![CDATA[Springboot引入websocket踩坑]]></description><category></category></item><item><title><![CDATA[RocketMQ-4.7.1（一）基础概念]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123903610</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123903610</guid><author>x37558670</author><pubDate>Fri, 01 Apr 2022 17:57:52 +0800</pubDate><description><![CDATA[基本概念
消息模型（Message Model）
RocketMQ主要由 Producer、Broker、Consumer 三部分组成，其中Producer 负责生产消息，Consumer 负责消费消息，Broker 负责存储消息。Broker 在实际部署过程中对应一台服务器，每个 Broker 可以存储多个Topic的消息，每个Topic的消息也可以分片存储于不同的 Broker。Message Queue 用于存储消息的物理地址，每个Topic中的消息地址存储于多个 Message Queue 中。Co]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata(五) 微服务间调用的事务处理]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123876260</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123876260</guid><author>x37558670</author><pubDate>Thu, 31 Mar 2022 16:23:51 +0800</pubDate><description><![CDATA[项目结构
|-- demo
  |-- entity 实体对象(为了让其他服务拥有所有服务对象)
  |-- order 订单 (pom导入了 entity )
  |-- stock 库存 (pom导入了 entity )
  |-- user 用户 (pom导入了 entity )


项目依赖
entity
    &lt;properties&gt;
        &lt;mybatis-plus&gt;3.3.1.tmp&lt;/mybatis-plus&gt;
        &lt;db-d]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata(四) 多数据源事务]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123873679</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123873679</guid><author>x37558670</author><pubDate>Thu, 31 Mar 2022 16:19:10 +0800</pubDate><description><![CDATA[项目搭建
我搭建的是一个最基础的用户下单，减库存，减用户金额，创建订单的一个微服务框架。因为后面需要测试微服务下的分布式事务，这里测试的是 多数据源 下的分布式事务。
项目结构如下:
|-- demo
  |-- entity 实体对象(为了让其他服务拥有所有服务对象)
  |-- order 订单 (pom导入了 entity )
  |-- stock 库存 (pom导入了 entity )
  |-- user 用户 (pom导入了 entity )

这里使用了mybatis-plus的相关技术，不]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata(三) Seata搭建]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123867244</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123867244</guid><author>x37558670</author><pubDate>Thu, 31 Mar 2022 15:22:53 +0800</pubDate><description><![CDATA[搭建 seata-server
在搭建之前，大家一定要理解 seata 的核心角色以及之间的通信关系，Seata分TC、TM和RM三个角色，TC（Server端）为单独服务端部署，TM和RM（Client端）由业务系统集成。

TC (Transaction Coordinator) - 事务协调者，维护全局和分支事务的状态，驱动全局事务提交或回滚。
TM (Transaction Manager) - 事务管理器，定义全局事务的范围：开始全局事务、提交或回滚全局事务。
RM (Resource Manag]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata(二) 理解什么是AT、TCC、Saga]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123865811</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123865811</guid><author>x37558670</author><pubDate>Thu, 31 Mar 2022 11:19:49 +0800</pubDate><description><![CDATA[AT 模式
AT 模式是一种无侵入的分布式事务解决方案。阿里seata框架，实现了该模式。
在 AT 模式下，用户只需关注自己的“业务 SQL”，用户的 “业务 SQL” 作为一阶段，Seata 框架会自动生成事务的二阶段提交和回滚操作。

AT 模式如何做到对业务的无侵入
一阶段：
在一阶段，Seata 会拦截“业务 SQL”，首先解析 SQL 语义，找到“业务 SQL”要更新的业务数据，在业务数据被更新前，将其保存成“before image”，然后执行“业务 SQL”更新业务数据，在业务数据更新之后，]]></description><category></category></item><item><title><![CDATA[分布式事务 Seata(一) 理解什么是XA 2PC、3PC]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/123844319</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/123844319</guid><author>x37558670</author><pubDate>Thu, 31 Mar 2022 10:40:01 +0800</pubDate><description><![CDATA[数据库事务的概念
在讲述分布式事务的概念之前，我们先来回顾下事务相关的一些概念。
事务的基本概念：
就是一个程序执行单元，里面的操作要么全部执行成功，要么全部执行失败，不允许只成功一半另外一半执行失败的事情发生。例如一段事务代码做了两次数据库更新操作，那么这两次数据库操作要么全部执行成功，要么全部回滚。
事务的基本特性：
我们知道事务有4个非常重要的特性，即我们常说的（ACID）。
Atomicity（原子性）:
是说事务是一个不可分割的整体，所有操作要么全做，要么全不做；只要事务中有一个操作出错，回滚到事]]></description><category></category></item><item><title><![CDATA[微信小程序自定义navigation-bar导航栏(自适应安卓苹果)]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/116524026</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/116524026</guid><author>x37558670</author><pubDate>Sat, 08 May 2021 13:07:21 +0800</pubDate><description><![CDATA[json：
加上"navigationStyle": "custom"把原有导航去掉
{
  "usingComponents": {},
  "navigationStyle": "custom"
}

wxml：
&lt;view class="body"&gt;
	&lt;view class="header"&gt;
		&lt;!-- 官方自定义导航栏抽取出来的模块 --&gt;
		&lt;view class="navigation"&gt;
			&lt;view class="weui-.]]></description><category></category></item><item><title><![CDATA[zuul网关请求异常，java.net.SocketTimeoutException: Read timed out]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115870324</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115870324</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:54:47 +0800</pubDate><description><![CDATA[调用文件上传服务，由于文件过大，导致在一定时间内无法完成大文件的操作，报错
zuul.fallback.consumerfallback：java.net.SocketTimeoutException: Read timed out

Hystrix异常排除
Hystrix默认的超时时间是1秒，如果超过这个时间尚未响应，将会进入fallback代码。而首次请求往往会比较慢（由于Ribbon是懒加载的，在首次请求时，才会开始初始化相关类），这个响应时间可能就大于1秒了。知道原因后，我们来总结一下解决方案。以f]]></description><category></category></item><item><title><![CDATA[JAVA面试十九——JVM]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115701179</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115701179</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:39:52 +0800</pubDate><description><![CDATA[194. 说一下 jvm 的主要组成部分？及其作用？

类加载器（ClassLoader）
运行时数据区（Runtime Data Area）
执行引擎（Execution Engine）
本地库接口（Native Interface）

组件的作用： 首先通过类加载器（ClassLoader）会把 Java 代码转换成字节码，运行时数据区（Runtime Data Area）再把字节码加载到内存中，而字节码文件只是 JVM 的一套指令集规范，并不能直接交个底层操作系统去执行，因此需要特定的命令解析器执行引]]></description><category></category></item><item><title><![CDATA[JAVA面试十八——Redis]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115701001</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115701001</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:39:39 +0800</pubDate><description><![CDATA[179. redis 是什么？都有哪些使用场景？
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库，并提供多种语言的API。
Redis 使用场景：

数据高并发的读写
海量数据的读写
对扩展性要求高的数据

180. redis 有哪些功能？


数据缓存功能


分布式锁的功能


支持数据持久化


支持事务


支持消息队列


181. redis 和 memecache 有什么区别？
memcached所有的值均是简单的字符串，re]]></description><category></category></item><item><title><![CDATA[JAVA面试十七——Mysql]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115700820</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115700820</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:39:29 +0800</pubDate><description><![CDATA[164. 数据库的三范式是什么？
第一范式：强调的是列的原子性，即数据库表的每一列都是不可分割的原子数据项。
第二范式：要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性。
第三范式：任何非主属性不依赖于其它非主属性。
165. 一张自增表里面总共有 7 条数据，删除了最后 2 条数据，重启 mysql 数据库，又插入了一条数据，此时 id 是几？
表类型如果是 MyISAM ，那 id 就是 8。
表类型如果是 InnoDB，那 id 就是 6。
InnoDB 表只会把自]]></description><category></category></item><item><title><![CDATA[JAVA面试十六——Zookeeper]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115700736</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115700736</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:39:19 +0800</pubDate><description><![CDATA[157. zookeeper 是什么？
zookeeper 是一个分布式的，开放源码的分布式应用程序协调服务，是 google chubby 的开源实现，是 hadoop 和 hbase 的重要组件。它是一个为分布式应用提供一致性服务的软件，提供的功能包括：配置维护、域名服务、分布式同步、组服务等。
158. zookeeper 都有哪些功能？
集群管理：监控节点存活状态、运行请求等。
主节点选举：主节点挂掉了之后可以从备用的节点开始新一轮选主，主节点选举说的就是这个选举的过程，使用 zookeeper 可]]></description><category></category></item><item><title><![CDATA[JAVA面试十五——Kafka]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115700678</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115700678</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:39:09 +0800</pubDate><description><![CDATA[152. kafka 可以脱离 zookeeper 单独使用吗？为什么？
kafka 不能脱离 zookeeper 单独使用，因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。
153. kafka 有几种数据保留的策略？
kafka 有两种数据保存策略：按照过期时间保留和按照存储的消息大小保留。
154. kafka 同时设置了 7 天和 10G 清除数据，到第五天的时候消息达到了 10G，这个时候 kafka 将如何处理？
这个时候 kafka 会执行数据清除工作，时间和]]></description><category></category></item><item><title><![CDATA[JAVA面试十四——RabbitMQ]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115699472</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115699472</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:38:53 +0800</pubDate><description><![CDATA[135. rabbitmq 的使用场景有哪些？
①. 跨系统的异步通信，所有需要异步交互的地方都可以使用消息队列。就像我们除了打电话（同步）以外，还需要发短信，发电子邮件（异步）的通讯方式。
②. 多个应用之间的耦合，由于消息是平台无关和语言无关的，而且语义上也不再是函数调用，因此更适合作为多个应用之间的松耦合的接口。基于消息队列的耦合，不需要发送方和接收方同时在线。在企业应用集成（EAI）中，文件传输，共享数据库，消息队列，远程过程调用都可以作为集成的方法。
③. 应用内的同步变异步，比如订单处理，就可以]]></description><category></category></item><item><title><![CDATA[JAVA面试十三——Mybatis]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115699187</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115699187</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:38:43 +0800</pubDate><description><![CDATA[125. mybatis 中 #{}和 ${}的区别是什么？
#{}是预编译处理，KaTeX parse error: Expected ‘EOF’, got ‘#’ at position 21: …串替换； Mybatis在处理#̲{}时，会将sql中的#{}替…{}时，就是把${}替换成变量的值；
使用#{}可以有效的防止SQL注入，提高系统安全性。
126. mybatis 有几种分页方式？
数组分页
sql分页
拦截器分页
RowBounds分页
128. mybatis 逻辑分页和物理分页的区别]]></description><category></category></item><item><title><![CDATA[JAVA面试十二——Hibernate]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115698993</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115698993</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:38:31 +0800</pubDate><description><![CDATA[113. 为什么要使用 hibernate？

对JDBC访问数据库的代码做了封装，大大简化了数据访问层繁琐的重复性代码。
Hibernate是一个基于JDBC的主流持久化框架，是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作
hibernate使用Java反射机制，而不是字节码增强程序来实现透明性。
hibernate的性能非常好，因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库，从一对一到多对多的各种复杂关系。

114. 什么是 ORM 框架？
对象-关系映射（Object-R]]></description><category></category></item><item><title><![CDATA[JAVA面试十一——Spring Boot / Spring Cloud]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115698615</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115698615</guid><author>x37558670</author><pubDate>Mon, 19 Apr 2021 17:37:51 +0800</pubDate><description><![CDATA[104. 什么是 spring boot？
在Spring框架这个大家族中，产生了很多衍生框架，比如 Spring、SpringMvc框架等，Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术，而是一种思想，在操作方面是指在spring配置文件中创建，依赖注入即为由spring容器为应用程序的某个对象提供资源，比如 引用对象、常量数据等。
SpringBoot是一个框架，一种全新的编程规范，他的产生简化了框架的使用，所谓简化是指简化了Spring众多框架中所需的大量且]]></description><category></category></item><item><title><![CDATA[JAVA面试十——Spring / Spring MVC]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115698587</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115698587</guid><author>x37558670</author><pubDate>Wed, 14 Apr 2021 14:45:33 +0800</pubDate><description><![CDATA[90. 为什么要使用 spring？
1.简介

目的：解决企业应用开发的复杂性
功能：使用基本的JavaBean代替EJB，并提供了更多的企业应用功能
范围：任何Java应用

简单来说，Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.轻量　
从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外，Spring是非侵入式的：典型地，Spring应用中的对象不依赖于]]></description><category></category></item><item><title><![CDATA[JAVA面试九——设计模式]]></title><link>https://blog.youkuaiyun.com/x37558670/article/details/115697462</link><guid>https://blog.youkuaiyun.com/x37558670/article/details/115697462</guid><author>x37558670</author><pubDate>Wed, 14 Apr 2021 14:40:19 +0800</pubDate><description><![CDATA[88. 说一下你熟悉的设计模式？


单例模式
简单点说，就是一个应用程序中，某个类的实例对象只有一个，你没有办法去new，因为构造器是被private修饰的，一般通过getInstance()的方法来获取它们的实例。
getInstance()的返回值是一个对象的引用，并不是一个新的实例，所以不要错误的理解成多个对象。


观察者模式
对象间一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新。


装饰者模式
对已有的业务逻辑进一步的封装，使其增加额外的功能，如Java]]></description><category></category></item></channel></rss>