<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[llyilo的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/llyilo</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; llyilo]]></copyright><item><title><![CDATA[浏览器输入URL后到服务器返回数据大体过程]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/127646458</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/127646458</guid><author>llyilo</author><pubDate>Wed, 02 Nov 2022 10:05:44 +0800</pubDate><description><![CDATA[浏览器请求服务器，到服务器返回具体数据的大体过程]]></description><category></category></item><item><title><![CDATA[InnoDB内存结构]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/123092649</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/123092649</guid><author>llyilo</author><pubDate>Wed, 23 Feb 2022 16:51:55 +0800</pubDate><description><![CDATA[InnoDB存储引擎支持事务，其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计、支持外键，并支持非锁定读，即默认读操作不会产生锁。
InnoDB通过使用多版本并发控制(MVCC)来获取高并发性，并且实现了SQL标准的4中隔离级别，默认为REPEATABLE级别。同时，使用一种被称为next-key-locking的策略来避免幻读现象的产生。除此之外，InnoDB存储引擎还提供了插入缓冲(insert buffer)、二次写(double write)、自适应哈希索引(adaptive ha]]></description><category></category></item><item><title><![CDATA[Spring-Gateway 路由配置]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/123053174</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/123053174</guid><author>llyilo</author><pubDate>Mon, 21 Feb 2022 18:51:04 +0800</pubDate><description><![CDATA[pring:
  cloud:
    gateway:
      routes:
      - id: before_route
        uri: http://localhost:8001
        predicates:
      # 在某个时间之前的请求才会被转发到 http://localhost:8001,
          - Before=2017-01-20T17:42:47.789-07:00[America/Denver]
      # 在某个时间之后的请求才.]]></description><category></category></item><item><title><![CDATA[MySQL体系结构]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122927420</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122927420</guid><author>llyilo</author><pubDate>Mon, 14 Feb 2022 16:45:27 +0800</pubDate><description><![CDATA[连接池组件：与mysql建立连接时，使用连接池。管理服务和工具组件：系统管理和控制工具，例如备份恢复、Mysql复制、集群等SQL接口组件：接受用户的SQL命令，并且返回用户需要查询的结果。比如select from就是调用SQL Interface查询分析器组件: SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的，是一个很长的脚本， 主要功能：
a . 将SQL语句分解成数据结构，并将这个结构传递到后续步骤，以后SQL语句的传递和处理就是基于这个结构的...]]></description><category></category></item><item><title><![CDATA[获取本地服务器信息]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122668905</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122668905</guid><author>llyilo</author><pubDate>Mon, 24 Jan 2022 15:46:09 +0800</pubDate><description><![CDATA[#!/bin/bash
# 获取本地服务器IP地址
IP=`ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'`
echo "IP地址："$IP
 
# 获取cpu总核数
cpu_num=`grep -c "model name" /proc/cpuinfo`
echo "cpu总核数："$cpu_num
 
# 1、获取CPU利用率
# 获取用户空间占用CPU百分比
cpu_user=`top -b -n 1 | gr.]]></description><category></category></item><item><title><![CDATA[GRPC 上下文传递数据]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122624319</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122624319</guid><author>llyilo</author><pubDate>Fri, 21 Jan 2022 16:47:16 +0800</pubDate><description><![CDATA[项目还是基于springcloud+nacos+grpc

场景：登录后，需要把userId进行上下文共享，也就是在整个微服务构架内，都可以使用，或都说通过header把基本数据进行传递。

1. 客户端传递数据

使用fegin进行服务间调用，可以使用如下方法

1.直接在请求方法上，加上@Headers(value={"ContentType=application/x-www-form-urlencoded","k=v"})
2.在需要调用的类上，增加拦截器，继承RequestInterceptor
]]></description><category></category></item><item><title><![CDATA[springcloud 集成nacos与GRPC]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122586659</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122586659</guid><author>llyilo</author><pubDate>Wed, 19 Jan 2022 18:26:41 +0800</pubDate><description><![CDATA[springcloud 集成nacos与GRPC，需要做如下准备

1. server端

2. client端

3. proto文件

4. 相应的pom

5. nacos服务器



springcloud 集成nacos与GRPC，其它就是普通的springcloud的项目，使用nacos作为注册中心与配置中心，然后引入GRPC协议。本身没什么难度，上手速度也比较快。

步骤1.

创建java maven工程，使用maven对Jar包进行管理，工程目录如下



步骤2.

在springclo]]></description><category></category></item><item><title><![CDATA[springboot 集成GRPC]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122554816</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122554816</guid><author>llyilo</author><pubDate>Tue, 18 Jan 2022 11:06:42 +0800</pubDate><description><![CDATA[springboot 集成GRPC，需要做如下准备

1. server端

2. client端

3. proto文件

4. 相应的pom



步骤1.

创建java maven工程，使用maven对Jar包进行管理，工程目录如下：



步骤2.

在pom.xml中添加相应的依赖，注意依赖的版本，不同的版本生成的代码可能不致，因为是示例demo，所以我把两个相应的包都放在了最外层的pom中，真正的项目中，两都是要分开在不同项目中，做到最小依赖;引入的POM并不是只有这一种方法，也可以单独引入s]]></description><category></category></item><item><title><![CDATA[java 普通工程使用GRPC]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122543894</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122543894</guid><author>llyilo</author><pubDate>Mon, 17 Jan 2022 17:34:48 +0800</pubDate><description><![CDATA[java 普通工程中使用GRPC，需要满足以下几点

1. server 服务端

2. client 服务调用端

3. proto文件，用于生成grpc需要的代码

4.相应的Jar包支持



步骤1.

创建java maven工程，使用maven对Jar包进行管理，工程目录如下：



步骤2.

在pom.xml中添加相应的依赖，注意依赖的版本，不同的版本生成的代码可能不致


&lt;dependencies&gt;
       &lt;dependency&gt;
            ]]></description><category></category></item><item><title><![CDATA[GRPC 简介]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/122540028</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/122540028</guid><author>llyilo</author><pubDate>Mon, 17 Jan 2022 14:58:29 +0800</pubDate><description><![CDATA[gRPC是一款RPC框架，也是本系列的主角，在性能和版本兼容上做了提升和让步：

Protobuf进行数据编码，提高数据压缩率
	使用HTTP2.0弥补了HTTP1.1的不足
	同样在调用方和服务方使用协议约定文件，提供参数可选，为版本兼容留下缓冲空间


protobuf是一款用C++开发的跨语言、二进制编码的数据序列化协议，以超高的压缩率著称。它和早期的RPC方案一样，需要双方维护一个协议约束文件，以.proto结尾，使用proto命令对文件进行解析，会生成对应的Stub程序，客户端和服务端都需要保存.]]></description><category></category></item><item><title><![CDATA[迭代器模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80266354</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80266354</guid><author>llyilo</author><pubDate>Thu, 10 May 2018 13:33:45 +0800</pubDate><description><![CDATA[这种模式用于顺序访问集合对象的元素，不需要知道集合对象的底层表示。优点： 1、它支持以不同的方式遍历一个聚合对象。2、迭代器简化了聚合类。3、在同一个聚合上可以有多个遍历。4、在迭代器模式中，增加新的聚合类和迭代器类都很方便，无须修改原有代码。缺点：由于迭代器模式将存储数据和遍历数据的职责分离，增加新的聚合类需要对应增加新的迭代器类，类的个数成对增加，这在一定程度上增加了系统的复杂性。应用：1、访...]]></description><category></category></item><item><title><![CDATA[享元模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80266337</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80266337</guid><author>llyilo</author><pubDate>Thu, 10 May 2018 13:31:47 +0800</pubDate><description><![CDATA[享元模式（FlyweightPattern）主要用于减少创建对象的数量，以减少内存占用和提高性能。这种类型的设计模式属于结构型模式，它提供了减少对象数量从而改善应用所需的对象结构的方式。 优点：大大减少对象的创建，降低系统的内存，使效率提高。缺点：提高了系统的复杂度，需要分离出外部状态和内部状态，而且外部状态具有固有化的性质，不应该随着内部状态的变化而变化，否则会造成系统的混乱。应用： 1、系统有...]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80127876</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80127876</guid><author>llyilo</author><pubDate>Sat, 28 Apr 2018 13:47:34 +0800</pubDate><description><![CDATA[组合模式（CompositePattern），又叫部分整体模式，是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象，用来表示部分以及整体层次。这种类型的设计模式属于结构型模式，它创建了对象组的树形结构。这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。 优点： 1、高层模块调用简单...]]></description><category></category></item><item><title><![CDATA[桥接模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80092537</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80092537</guid><author>llyilo</author><pubDate>Thu, 26 Apr 2018 13:18:27 +0800</pubDate><description><![CDATA[桥接（Bridge）是用于把抽象化与实现化解耦，使得二者可以独立变化。这种类型的设计模式属于结构型模式，它通过提供抽象化和实现化之间的桥接结构，来实现二者的解耦。 优点： 1、抽象和实现的分离。2、优秀的扩展能力。3、实现细节对客户透明。 缺点：桥接模式的引入会增加系统的理解与设计难度，由于聚合关联关系建立在抽象层，要求开发者针对抽象进行设计与编程。 应用：将抽象部分与实现部分分离，使它们都可以独...]]></description><category></category></item><item><title><![CDATA[外观模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80084805</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80084805</guid><author>llyilo</author><pubDate>Wed, 25 Apr 2018 20:02:16 +0800</pubDate><description><![CDATA[外观模式（FacadePattern）隐藏系统的复杂性，并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式，它向现有的系统添加一个接口，来隐藏系统的复杂性。 优点： 1、减少系统相互依赖。2、提高灵活性。3、提高了安全性。缺点：不符合开闭原则，如果要改东西很麻烦，继承重写都不合适。应用：降低访问复杂系统的内部子系统时的复杂度，简化客户端与之的接口。1、为复杂的模块或子系...]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/80051523</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/80051523</guid><author>llyilo</author><pubDate>Mon, 23 Apr 2018 15:50:43 +0800</pubDate><description><![CDATA[在代理模式（ProxyPattern）中，一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中，我们创建具有现有对象的对象，以便向外界提供功能接口。 优点： 1、职责清晰。2、高扩展性。3、智能化。 缺点： 1、由于在客户端和真实主题之间增加了代理对象，因此有些类型的代理模式可能会造成请求的处理速度变慢。2、实现代理模式需要额外的工作，有些代理模式的实现非常复杂。 应用：要访问...]]></description><category></category></item><item><title><![CDATA[装饰器模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/79980016</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/79980016</guid><author>llyilo</author><pubDate>Tue, 17 Apr 2018 20:11:28 +0800</pubDate><description><![CDATA[装饰器模式（DecoratorPattern）允许向一个现有的对象添加新的功能，同时又不改变其结构。这种类型的设计模式属于结构型模式，它是作为现有的类的一个包装。 优点：装饰类和被装饰类可以独立发展，不会相互耦合，装饰模式是继承的一个替代模式，装饰模式可以动态扩展一个实现类的功能。缺点：多层装饰比较复杂。使用：1.扩展一个类的功能。 2.动态增加功能，动态撤销。 实现代码public interf...]]></description><category></category></item><item><title><![CDATA[适配器模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/79935647</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/79935647</guid><author>llyilo</author><pubDate>Fri, 13 Apr 2018 22:52:58 +0800</pubDate><description><![CDATA[适配器模式（AdapterPattern）是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式，它结合了两个独立接口的功能。优点： 1、可以让任何两个没有关联的类一起运行。 2、提高了类的复用。 3、增加了类的透明度。 4、灵活性好。缺点： 1、过多地使用适配器，会让系统非常零乱，不易整体进行把握。比如，明明看到调用的是 A接口，其实内部被适配成了 B 接口的实现，一个系统如果太多出...]]></description><category></category></item><item><title><![CDATA[解释器模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/79892018</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/79892018</guid><author>llyilo</author><pubDate>Wed, 11 Apr 2018 09:59:52 +0800</pubDate><description><![CDATA[解释器模式（InterpreterPattern）提供了评估语言的语法或表达式的方式，它属于行为型模式。这种模式实现了一个表达式接口，该接口解释一个特定的上下文。这种模式被用在 SQL解析、符号处理引擎等。优点： 1、可扩展性比较好，灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。 缺点： 1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 4、解...]]></description><category></category></item><item><title><![CDATA[中介者模式]]></title><link>https://blog.youkuaiyun.com/llyilo/article/details/79862319</link><guid>https://blog.youkuaiyun.com/llyilo/article/details/79862319</guid><author>llyilo</author><pubDate>Mon, 09 Apr 2018 10:27:20 +0800</pubDate><description><![CDATA[用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类，该类通常处理不同类之间的通信，并支持松耦合，使代码易于维护。中介者模式属于行为型模式。    优点：        1、降低了类的复杂度，将一对多转化成了一对一。        2、各个类之间的解耦。        3、符合迪米特原则。    缺点：        中介者会庞大，变得复杂难以维护。    应用：        1、系统...]]></description><category></category></item></channel></rss>