<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[我是传奇]]></title><description><![CDATA[专注互联网和大数据，发奋进取，努力成为一代大家]]></description><link>https://blog.youkuaiyun.com/li1987by</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; li1987by]]></copyright><item><title><![CDATA[prometheus对接注意事项]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/103298614</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/103298614</guid><author>li1987by</author><pubDate>Thu, 28 Nov 2019 18:17:43 +0800</pubDate><description><![CDATA[使用prometheus监控时，被监控服务的度量http资源路径开启状态，
既

metrics_path:  | default = /metrics

被监控服务不能对该路径有如所限制，如登录拦截等。
另外prometheus端点返回mediaType为text/plain,所以被监控服务应该有该消息转换器注册，如：
@Configuration
public class Applicatio...]]></description><category></category></item><item><title><![CDATA[解决同注册中心下服务跨机器无法访问问题]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/103298175</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/103298175</guid><author>li1987by</author><pubDate>Thu, 28 Nov 2019 18:03:33 +0800</pubDate><description><![CDATA[一、Environment
System information:
服务B、注册中心部署在服务器端
服务A本地
注册中心：
org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:2.0.0.RELEASE
一、原因
A通过@feignClient中name属性找到服务B
二、解析
通过跟踪发现从注册中心获取到B服务...]]></description><category></category></item><item><title><![CDATA[apollo找不到相应的namespace]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/103139550</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/103139550</guid><author>li1987by</author><pubDate>Tue, 19 Nov 2019 12:19:17 +0800</pubDate><description><![CDATA[本地应用没有问题，但是部署到服务器后，要命找不到namespace了。
排查过程，检查配置是否正确（yml空格极易出现问题）–》apollo client包是否引用 -cp --》本地缓存是否存在namespace缓存 (默认/opt/data/)
这里发现有缓存文件，但是不是本服务的，并且查看启动日志发现，servername一直另外服务名字（根据artifactid产生）。
后来才发现，apo...]]></description><category></category></item><item><title><![CDATA[scg断言种类及POST请求多次处理body解决版本]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/103136226</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/103136226</guid><author>li1987by</author><pubDate>Tue, 19 Nov 2019 12:05:03 +0800</pubDate><description><![CDATA[一、版本
sc版本：Greenwich.RELEASE
相应scg版本：spring-cloud-starter-gateway:2.1.0.RELEASE
二、断言种类   

其中ReadBodyPredicatechaFactory也是实现RoutePredicateFactory,继承图如下：

三、ReadBodyPredicateFactory配置方式
查看官网介绍,2.1.x和2.2...]]></description><category></category></item><item><title><![CDATA[apollo容器部署时踩过的坑--Could not complete get operation]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/102399116</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/102399116</guid><author>li1987by</author><pubDate>Tue, 08 Oct 2019 18:08:13 +0800</pubDate><description><![CDATA[apollo踩坑–各个docker网络设置
一、背景
近期微服务架构中的配置中心选型为携程的apollo。主要基于它诸多有点，类似修改热发布、界面化配置、配置继承、修改和发布可以不同人操作、配置版本管理等。
在config service\admin service\portal service\db几个基础服务，在容器中同一网络构建后，客户端访问meta service，提示报错，无法连接

L...]]></description><category></category></item><item><title><![CDATA[微服务选型]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/95357227</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/95357227</guid><author>li1987by</author><pubDate>Wed, 10 Jul 2019 17:54:57 +0800</pubDate><description><![CDATA[一、	什么是微服务
所谓的微服务是SOA架构下的最终产物，该架构的设计目标是为了肢解业务，使得服务能够独立运行。
二、	背景
随着Internet的快速发展，Web应用程序的规模不断扩大，最终我们发现传统的垂直架构（单片机）无法再处理这个问题。分布式服务架构和流量计算架构势在必行，迫切需要一个治理系统来确保架构的有序演进。


单片架构
当流量非常低时，只有一个应用程序，所有功能都部署在一起，以减...]]></description><category></category></item><item><title><![CDATA[策略上传同步下载流程]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/94741453</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/94741453</guid><author>li1987by</author><pubDate>Fri, 05 Jul 2019 16:59:21 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[RabbitMQ消费端消费机制]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90449921</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90449921</guid><author>li1987by</author><pubDate>Wed, 22 May 2019 22:30:27 +0800</pubDate><description><![CDATA[一、确认机制
第一种
 public static void getMessage() throws Exception {
        Connection connection = ConnectionUtil.getConnection();
        final Channel channel = connection.createChannel();
        // ch...]]></description><category></category></item><item><title><![CDATA[RabbitMQ获取消息源码解析]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90419609</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90419609</guid><author>li1987by</author><pubDate>Wed, 22 May 2019 00:18:04 +0800</pubDate><description><![CDATA[一、问题场景描述
利用springboot+rabbitmq结合，在消费端消费时，发现直接接受String类型的消息，发现消息是字节数组
 @RabbitListener(queues = "testQueue")
    public void get(String message ){
        System.out.println(message);
        System.ou...]]></description><category></category></item><item><title><![CDATA[Rabbitmq发送消息确认机制]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90417041</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90417041</guid><author>li1987by</author><pubDate>Tue, 21 May 2019 23:41:14 +0800</pubDate><description><![CDATA[一、场景
消息发送的时候，有可能消息无法正常发送到rabbitmq情况。例如电商项目中，用户下了订单，订单系统处理完成后，将订单消息发送到消息中间件，待库存系统消费，结果这个消息没有发送到消息中间件，这时候就会造成订单系统处理了消息，而库存系统没有处理的情况。
二、问题

针对消息发送，主要有两类问题
1.消息未能发送到交换机
2.消息未能路由到队列
三、解决方案
1.消息未能发送到交换机，主要通...]]></description><category></category></item><item><title><![CDATA[RabbitMQ与Springboot结合]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90322063</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90322063</guid><author>li1987by</author><pubDate>Sat, 18 May 2019 23:17:00 +0800</pubDate><description><![CDATA[业务场景描述：
客户端发起订单请求到订单系统，订单系统处理完订单后，将消息转发到消息中间件，然后库存系统监听该消息中间件相应的队列。

一、依赖
主项目为maven项目，在主项目上新增两个module，分别为生产者和消费者
主项目pom文件，主要定义spring-boot-start-parent
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;p...]]></description><category></category></item><item><title><![CDATA[RabbitMq解析1]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90314101</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90314101</guid><author>li1987by</author><pubDate>Sat, 18 May 2019 13:20:04 +0800</pubDate><description><![CDATA[一、介绍
号称

RabbitMQ is lightweight and easy to deploy on premises and in the cloud. It supports multiple messaging protocols. RabbitMQ can be deployed in distributed and federated configurations to meet...]]></description><category></category></item><item><title><![CDATA[主流的AMQP对比]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90313897</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90313897</guid><author>li1987by</author><pubDate>Sat, 18 May 2019 12:46:59 +0800</pubDate><description><![CDATA[主流的Mq对比




特性
ActiveMQ
RabbitMQ
RocketMQ
Kafka




单机吞吐量
万级，比RocketMQ、Kafka 低一个数量级
同ActiveMQ
10 万级，支撑高吞吐
10 万级高吞吐，一般配合大数据类的系统来进行实时数据计算、日志采集等场景


topic数量对吞吐量的影响
–
–
topic 可以达到几百/几千的级别，吞吐量会有较小幅度的下降，这是R...]]></description><category></category></item><item><title><![CDATA[AMQP解析1]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/90311906</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/90311906</guid><author>li1987by</author><pubDate>Sat, 18 May 2019 12:12:47 +0800</pubDate><description><![CDATA[一、消息中间件
1.介绍
模拟一个场景，我们客户端发送一个下单请求给订单系统，订单系统发送了一个请求给我们的库存系统，告诉它我已经下单了，需要更改库存了。然后将结果返回客户端，下单是否成功。每个请求可以认为是个消息。

这里有个问题，就是用户下订单，必须要经过库存模块的处理，但是订单模块和库存模块应该是相互独立，而不应该在用户下订单时，非要处理完库存结果，才能把用户是否下单成功结果返回。
我们发现...]]></description><category></category></item><item><title><![CDATA[二叉树解析]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89866752</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89866752</guid><author>li1987by</author><pubDate>Mon, 06 May 2019 00:50:46 +0800</pubDate><description><![CDATA[一、二叉树介绍
二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”（left subtree）和“右子树”（right subtree）。二叉树常被用于实现二叉查找树和二叉堆。
二、顺序二叉树
利用数组实现顺序二叉树，数组的一个元素不参与二叉树，依此将数组元素摆放到左右子树上。
三、顺序二叉树实现堆排序
1.堆排序介绍
堆是一个近似完全二叉树的结构，并同时满足堆积的性质：即子节点的键...]]></description><category></category></item><item><title><![CDATA[递归解析]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89820267</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89820267</guid><author>li1987by</author><pubDate>Sun, 05 May 2019 00:02:57 +0800</pubDate><description><![CDATA[一、介绍
递归通过拆分成各个基本元素，然后再将基本元素组合运算结果作为下一层的中间值。
递归算法效率不高，并且代码可读性差，主要应用于数的遍历场景。
二、几种应用
1.斐波拉契数列
1)利用循环实现
num1 + num2 = num3
num2 + num3 = num4
num4 + num5 = num6
…
依此类推
可以总结出来
这里运算几次，就是循环几次，然后每次将两者运算结果作为中间...]]></description><category></category></item><item><title><![CDATA[利用栈和队列实现简单的四则运算]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89814404</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89814404</guid><author>li1987by</author><pubDate>Sat, 04 May 2019 15:55:22 +0800</pubDate><description><![CDATA[一、介绍
简单的四则运算，只是包含整数和加减乘除和左右括号的运算。
利用队列先进先出的特性，存储整个运算公式各个元素。
利用栈后进先出的特性，存储数字和运算符
二、过程
1.整个运算公式的各个元素入队列。
2.队列中的元素出栈
1）如果是数字，进入数字栈，再次队伍元素出队。
这里插入左右括号的处理。
如果是左括号符号，该左括号入符号栈，再次队列元素出队。
如果是右括号符号，就需要不断将符号栈中的元...]]></description><category></category></item><item><title><![CDATA[集合解析]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89786933</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89786933</guid><author>li1987by</author><pubDate>Fri, 03 May 2019 13:14:38 +0800</pubDate><description><![CDATA[一、前瞻
程序是数据结构+算法
数据结构是相互之间存在一种或者多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
数据结构包含逻辑结构和物理结构。
逻辑结构：人为认为的数据元素之间的关系。
物理结构：数据在内存中存储方式。
逻辑结构包括：
1）集合：在一个集合中的数据元素之间没有关系，只是同属于这个集合
2）线性结构：1对1的关系
3）树形结构：1对多的关系
4）图：多对多的关系
物理结构...]]></description><category></category></item><item><title><![CDATA[大数阶乘]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89761349</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89761349</guid><author>li1987by</author><pubDate>Thu, 02 May 2019 14:26:56 +0800</pubDate><description><![CDATA[一、背景
阶乘比较多的时候，很难用普通的数据类型来存储中间结果。
二、解决办法
当然可以用java自带的BigDecimal来存储。但是这里介绍的是用普通的int[]来存储。
三、实现

...]]></description><category></category></item><item><title><![CDATA[排序算法]]></title><link>https://blog.youkuaiyun.com/li1987by/article/details/89743378</link><guid>https://blog.youkuaiyun.com/li1987by/article/details/89743378</guid><author>li1987by</author><pubDate>Thu, 02 May 2019 11:13:39 +0800</pubDate><description><![CDATA[几种排序算法实现
一、冒泡排序
1.介绍
一种简单的排序算法，每次循环遍历都会找到极值。
2.过程
1）第一层循环 ，设变量 i ： 从0 ~ 所有数数量-1。从前到后，找出极值不断放到后面。后面放好的极值是有序，不能再动
2）第二层循环，设变量j：从0~到所有数数量-1-i。注意，随着第一层循环的进行，第二层循环比较次数减少。
3.复杂度
1）时间复杂度
基本语句为最内层的交换处理，数量级为O(...]]></description><category></category></item></channel></rss>