<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Wulawuba的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Wulawuba</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Wulawuba]]></copyright><item><title><![CDATA[Https加密过程]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/126648422</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/126648422</guid><author>Wulawuba</author><pubDate>Thu, 01 Sep 2022 17:48:07 +0800</pubDate><description><![CDATA[Https加密过程]]></description><category></category></item><item><title><![CDATA[数据库与redis缓存一致性问题]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/126648357</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/126648357</guid><author>Wulawuba</author><pubDate>Thu, 01 Sep 2022 17:45:02 +0800</pubDate><description><![CDATA[数据库与redis缓存一致性问题]]></description><category></category></item><item><title><![CDATA[代码分析sychronied和Mark Word的关系]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/126136006</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/126136006</guid><author>Wulawuba</author><pubDate>Wed, 03 Aug 2022 10:48:22 +0800</pubDate><description><![CDATA[锁状态升级过程为：无锁状态--> 偏向锁状态--->轻量级锁状态--->重量级锁状态]]></description><category></category></item><item><title><![CDATA[多线程模型下的生产者消费者模式]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/125085485</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/125085485</guid><author>Wulawuba</author><pubDate>Wed, 01 Jun 2022 16:13:09 +0800</pubDate><description><![CDATA[多线程模型下的生产者消费者模式]]></description><category></category></item><item><title><![CDATA[lambda表达式与流优化代码]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/125044626</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/125044626</guid><author>Wulawuba</author><pubDate>Mon, 30 May 2022 13:06:58 +0800</pubDate><description><![CDATA[lambda表达式与流优化代码
1 代码应用示例
java8以前对集合进行排序用得比较多的，比如需要按照某个集合的时间对集合进行排序
Collections.sort(payList, new Comparator&lt;ErpContractPay&gt;() {
            @Override
            public int compare(ErpContractPay o1, ErpContractPay o2) {
                System.out.pr]]></description><category></category></item><item><title><![CDATA[建立高可用的数据库]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/125003860</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/125003860</guid><author>Wulawuba</author><pubDate>Fri, 27 May 2022 14:55:09 +0800</pubDate><description><![CDATA[数据库性能优化
1、主从模式
1.1、为什么要设置主从同步

读写分离，减轻数据库负担。在开发工作中，有时候会遇见某个sql 语句需要锁表，导致暂时不能使用读的服务，这样就会影响现有业务，使用主从复制，让主库负责写，从库负责读，这样，即使主库出现了锁表的情景，通过读从库也可以保证业务的正常运作
数据库实时备份。当系统中某个节点发生故障时，可以方便的故障切换(主从切换)。
高可用
随着系统中业务访问量的增大，如果是单机部署数据库，就会导致I/O访问频率过高。有了主从复制，增加多个数据存储节点，将负载分布在多个]]></description><category></category></item><item><title><![CDATA[JVisualVM初步使用]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124993165</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124993165</guid><author>Wulawuba</author><pubDate>Thu, 26 May 2022 21:33:02 +0800</pubDate><description><![CDATA[Jconsole: 为jdk自带，功能简单，但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。
JProfiler：商业软件，需要付费。功能强大。
VisualVM：JDK自带，功能强大，与JProfiler类似。其能够监控线程，内存情况，查看方法的CPU时间和内存中的对 象，已被GC的对象，反向查看分配的堆栈等功能。

]]></description><category></category></item><item><title><![CDATA[分布式事务--seata初步使用]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124820067</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124820067</guid><author>Wulawuba</author><pubDate>Tue, 17 May 2022 13:55:45 +0800</pubDate><description><![CDATA[分布式事务seata基本使用
官网连接：https://seata.io/zh-cn/，推荐看一下官方文档，比绝大多数的seata使用案例更清晰明了。
1、下载安装
下载链接：https://github.com/seata/seata/releases/tag/v1.4.2

2、注册中心与配置中心配置
下载后，在conf文件夹下的registry.conf配置注册中心。以nacos注册中心为例，配置ip端口，以及nacos的用户名与密码。（使用其他的注册中心类似配置ip、port、用户名、密码）
reg]]></description><category></category></item><item><title><![CDATA[一致性协议比较]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124689401</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124689401</guid><author>Wulawuba</author><pubDate>Tue, 10 May 2022 15:22:33 +0800</pubDate><description><![CDATA[常见的一致性协议 有二阶段提交（2PC）、三阶段提交（3PC）、Paxos、Raft等算法，在本文将介绍他们中的一部分。
2PC
2PC即Two-Phase Commit，二阶段提交。广泛应用在数据库领域，为了使得基于分布式架构的所有节点可以在进行事务处理时能够保持原子性和一致性。绝大部分关系型数据库，都是基于2PC完成分布式的事务处理。
顾名思义，2PC分为两个阶段处理，


阶段一：提交事务请求

事务询问。协调者向所有参与者发送事务内容，询问是否可以执行提交操作，并开始等待各参与者进行响应；
执行事务]]></description><category></category></item><item><title><![CDATA[微服务部署，前端post请求出现UTF-8错误]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124319128</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124319128</guid><author>Wulawuba</author><pubDate>Thu, 21 Apr 2022 13:25:12 +0800</pubDate><description><![CDATA[一、问题描述：
技术栈：nacos，gateway，security，auth2，swagger，mybatis，Spring Boot、Spring Cloud &amp; Alibaba、Vue、Element
环境：
JDK &gt;= 1.8 (推荐1.8版本)
Mysql &gt;= 5.7.0 (推荐5.7版本)
Redis &gt;= 3.0
Maven &gt;= 3.0
Node &gt;= 12
nacos &gt;= 2.x.x 
sentinel &gt;= 1.6.0

本地在id]]></description><category></category></item><item><title><![CDATA[并发编程---写入时复制COW]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124212352</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124212352</guid><author>Wulawuba</author><pubDate>Sat, 16 Apr 2022 13:32:39 +0800</pubDate><description><![CDATA[写入时复制（copy on write）
作为使用频率很高的List和Set，JUC提供了相应的线程安全集合，就是Copy-On-Write。分别为CopyOnWriteArrayList和CopyOnWriteArraySet。
1、应用场景
Copy-On-Write并发容器用于读多写少的并发场景。


比如Nacos的注册中心同步方式，用的是copyonwrite,就是复制一份副本，写入后直接替换。注册中心的实时性并没有那么高，所以使用cow来保证数据的一致性。


Redis的COW

Redis在]]></description><category></category></item><item><title><![CDATA[日常小习惯养成]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/124000167</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/124000167</guid><author>Wulawuba</author><pubDate>Wed, 06 Apr 2022 21:28:59 +0800</pubDate><description><![CDATA[1.日常小习惯—转换时间
将前台传递过来的日期格式的字符串，自动转化为Date类型
public class BaseController {
    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
    /**
     * 将前台传递过来的日期格式的字符串，自动转化为Date类型
     */
    @InitBinder
    public void initBinder(WebDataBind]]></description><category></category></item><item><title><![CDATA[erp微服务项目---nacos数据库池化]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123972497</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123972497</guid><author>Wulawuba</author><pubDate>Tue, 05 Apr 2022 17:20:22 +0800</pubDate><description><![CDATA[1、配置系统环境nacos，redis，node，jdk，maven，mysql等
2、配置nacos的持久化数据库
在nacos文件目录下，nacos-&gt;data-&gt;config-data文件夹下，保存着对nacos的配置信息,但是删除掉data文件夹，nacos的配置信息就会丢失掉，此时如果能将nacos的配置信息存储到数据库中，那么就算data文件夹丢失，nacos的配置信息仍然存在。

2.1 导入Nacos数据库依赖的sql文件
导入nacos 解压包下cofig目录下的nacos-m]]></description><category></category></item><item><title><![CDATA[security初步使用（2）]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123943584</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123943584</guid><author>Wulawuba</author><pubDate>Sun, 03 Apr 2022 20:23:36 +0800</pubDate><description><![CDATA[6 web权限方案

认证
授权

6.1 设置登录的用户名和密码
方式1：配置文件
spring:
    datasource:
        url: jdbc:mysql://xxx.xx.xx.xx:xxxx/xxxx?useUnicode=true&amp;characterEncoding=utf8&amp;zeroDateTimeBehavior=convertToNull&amp;useSSL=true&amp;serverTimezone=GMT%2B8
        usernam]]></description><category></category></item><item><title><![CDATA[Security初步使用]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123940080</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123940080</guid><author>Wulawuba</author><pubDate>Sun, 03 Apr 2022 16:48:52 +0800</pubDate><description><![CDATA[1.添加依赖
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-security&lt;/artifactId&gt;
&lt;/dependency&gt;

2.启动时会提供一个默认密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SH8php0b-1648975626290)(C]]></description><category></category></item><item><title><![CDATA[@PostConstruct注解----解决非service层注入service的空指针问题]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123848946</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123848946</guid><author>Wulawuba</author><pubDate>Wed, 30 Mar 2022 16:02:49 +0800</pubDate><description><![CDATA[@PostConstruct注解----解决非service层注入service的空指针问题
Java中该注解的说明：@PostConstruct该注解被用来修饰一个非静态的void（）方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行，并且只会被服务器执行一次。PostConstruct在构造函数之后执行，init（）方法之前执行。
@PostConstruct注解 该注解的方法在整个Bean初始化中的执行顺序：
Constructor(构造方法) -&gt; @Auto]]></description><category></category></item><item><title><![CDATA[java（springboot）+elementui实现多文件上传到本地服务器]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123839749</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123839749</guid><author>Wulawuba</author><pubDate>Wed, 30 Mar 2022 10:38:17 +0800</pubDate><description><![CDATA[java（springboot）+elementui实现多文件上传到本地服务器
垃圾代码，自行理解
1 java
1.1 yml配置（properties同）
max-xxx-xxx设置文件最大接受值
# Spring
spring:
  servlet:
    multipart:
      enabled: true
      max-file-size: 200MB
      max-request-size: 200MB

1.2 controller
MultipartFile为文件，其他]]></description><category></category></item><item><title><![CDATA[java+vue多文件打包zip下载]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123835721</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123835721</guid><author>Wulawuba</author><pubDate>Wed, 30 Mar 2022 00:03:52 +0800</pubDate><description><![CDATA[java+vue实现多文件打包下载
前端传过下载文件编号，在数据库中根据编号查出对应文件存储的路径，根据路径将文件写入到HttpServletResponse中，设置文本传输类型为二进制流response.setContentType("APPLICATION/OCTET-STREAM")，将其返回给前端。
1.java后台
1.1.controller
@GetMapping("/download/{contractId}")
    public void download(@PathVariable(]]></description><category></category></item><item><title><![CDATA[按时间区间查询数据，并取interval间隔时间的第一条]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123795677</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123795677</guid><author>Wulawuba</author><pubDate>Mon, 28 Mar 2022 15:02:03 +0800</pubDate><description><![CDATA[1、按时间区间查询数据，并取interval间隔时间的第一条
用多了MP，mybatis语句的这种sql语句不太熟练，记录一下
需求：接口说明：
查询某一条船的历史轨迹
地址：
GET /xxxx/xxxx/xxxx
参数：




参数名
类型
说明
范围
是否必需




shipName
字符串
船名
“001”-”100”
是


date
时间戳
日期
最近一周的某一天，默认当日的前一天
否


interval
字符串
时间间隔
“1”-”60”，默认间隔5分钟，最短间隔1分钟，最长间隔60分钟]]></description><category></category></item><item><title><![CDATA[Redis指令]]></title><link>https://blog.youkuaiyun.com/Wulawuba/article/details/123115219</link><guid>https://blog.youkuaiyun.com/Wulawuba/article/details/123115219</guid><author>Wulawuba</author><pubDate>Thu, 24 Feb 2022 16:37:44 +0800</pubDate><description><![CDATA[1.基于内存的key-value数据库
2.基于c语言编写的，可以支持多种语言的api //set每秒11万次，取get 81000次
3.支持数据持久化
4.value可以是string，hash， list， set, sorted set
使用场景

去最新n个数据的操作
排行榜，取top n个数据 //最佳人气前10条
精确的设置过期时间
计数器
实时系统， 反垃圾系统
pub， sub发布订阅构建实时消息系统
构建消息队列
缓存

cmd访问redis
redis-cli.exe -h 127.0]]></description><category></category></item></channel></rss>