<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[azurelaker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/azurelaker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; azurelaker]]></copyright><item><title><![CDATA[如何基于HTTP设计一个加密解密系统]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/121303122</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/121303122</guid><author>azurelaker</author><pubDate>Sat, 13 Nov 2021 19:04:26 +0800</pubDate><description><![CDATA[对方的

]]></description><category></category></item><item><title><![CDATA[使用python程序抓取天眼查，企查查和爱企查上的企业基本信息]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/120394516</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/120394516</guid><author>azurelaker</author><pubDate>Mon, 20 Sep 2021 20:12:45 +0800</pubDate><description><![CDATA[的方式

]]></description><category></category></item><item><title><![CDATA[如何基于OAuth2授权框架实现授权服务器（使用Node.js设计开发）]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/120393540</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/120393540</guid><author>azurelaker</author><pubDate>Mon, 20 Sep 2021 19:30:41 +0800</pubDate><description><![CDATA[OAuth是一个安全授权框架，支持在不同程序(或者微服务)间的资源访问，也可以在OAuth体系下实现单点登录的功能。OAuth安全框架中包括四个角色：资源拥有者，授权服务器，资源服务器，客户端程序。OAuth安全框架主要说明了这四个角色间的交互流程，以及授权服务器应该具有的能力。OAuth框架是非常灵活和高度可扩展的，一些组件，如token结构组件或者加密算法都是可插拔，可以根据场景需求进行集成。OAuth框架由众多的RFC协议定义，其核心是授权服务器的能力和token的使用，由于其灵活性，其适用范围比较广]]></description><category></category></item><item><title><![CDATA[关于Android Q平台的support库的配置]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/100710944</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/100710944</guid><author>azurelaker</author><pubDate>Mon, 16 Sep 2019 21:41:25 +0800</pubDate><description><![CDATA[目前Google已经释放了Android Q平台的SDK, 有OEM手机厂商在新机器中已经使用了Android Q的系统, 一些App应用也已经开始适配了Android Q系统.本文档主要说明在Android Studio工程中,如果Target SDK适配的是Android Q系统, support library的配置选择.
理论上support library的版本号可以低于target的版...]]></description><category></category></item><item><title><![CDATA[如何使用uiautomator测试框架的Python API对Android应用进行测试]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/93118694</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/93118694</guid><author>azurelaker</author><pubDate>Thu, 20 Jun 2019 23:08:30 +0800</pubDate><description><![CDATA[uiautomator测试框架可以对Android应用进行黑盒测试, 通过获得当前窗口视图(View)体系结构中的组件,对指定的组件进行操作,可以跨APP进行测试.通常在写测试功能逻辑代码时, 可以利用uiautomatorviewer工具获得待操作组件的属性,比如class name, resource ID或者text等等,uiautomator可以使用这些属性获得对应的组件,以便对其进行操作...]]></description><category></category></item><item><title><![CDATA[如何在Scala的for comprehension中使用Future]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/89604689</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/89604689</guid><author>azurelaker</author><pubDate>Sun, 05 May 2019 09:56:00 +0800</pubDate><description><![CDATA[Scala语言中

]]></description><category></category></item><item><title><![CDATA[如何生成Android批量包,配置Appsflyer Pre-Install Campaign]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/89604915</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/89604915</guid><author>azurelaker</author><pubDate>Sat, 27 Apr 2019 19:02:35 +0800</pubDate><description><![CDATA[在Android应用集成Appsflyer SDK后, 可以跟踪App在不同场景下的使用信息.本文对Pre-Install Campaign配置, 使用自动化程序,批量生成APK包.关于Appsflyer Pre-Install Campaign的配置请参考其官网说明,根据其官网说明, Pre-Install Campaign配置可以有几种不同的方式,可以通过其SDK的API进行设置,也可以在An...]]></description><category></category></item><item><title><![CDATA[RabbitMQ的consumer预取(prefetch)行为]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/89047742</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/89047742</guid><author>azurelaker</author><pubDate>Sat, 06 Apr 2019 21:29:22 +0800</pubDate><description><![CDATA[RabbitMQ

]]></description><category></category></item><item><title><![CDATA[如何使用RabbitMQ中的死信交换器(dead letter exchange)]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/88990790</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/88990790</guid><author>azurelaker</author><pubDate>Fri, 05 Apr 2019 20:17:42 +0800</pubDate><description><![CDATA[RabbitMQ

]]></description><category></category></item><item><title><![CDATA[Java动态代理执行细节]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/88996497</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/88996497</guid><author>azurelaker</author><pubDate>Wed, 03 Apr 2019 21:24:30 +0800</pubDate><description><![CDATA[Java SDK中提供了在运行其生成动态代理类的机制. 被代理类通过定义接口规范, 代理类可以执行接口规范中的函数调用.使用动态代理机制时, 涉及到几个不同的角色:被代理类, 代理类,InvocationHandler类以及Proxy类. 他们的功能说明如下:

...]]></description><category></category></item><item><title><![CDATA[Hadoop分布式文件系统(HDFS)架构概述及基本概念]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/88658673</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/88658673</guid><author>azurelaker</author><pubDate>Tue, 02 Apr 2019 22:25:36 +0800</pubDate><description><![CDATA[Hadoop

]]></description><category></category></item><item><title><![CDATA[ZeroMQ和RabbitMQ的对比]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/88914272</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/88914272</guid><author>azurelaker</author><pubDate>Sat, 30 Mar 2019 18:49:55 +0800</pubDate><description><![CDATA[在分布式架构的不同程序间以及程序的不同模块间进行消息传递是通用的业务场景. 消息服务框架为消息处理提供语义清晰的API, 为基于消息的程序架构提供解耦以提高可扩展性,也可能提供某种形式的高可用性.关于消息服务的简单概述请参考https://en.wikipedia.org/wiki/Message_queue,每种消息服务框架有共同之处也有各自的特点.
ZeroMQ和RabbitMQ均提供了消息服...]]></description><category></category></item><item><title><![CDATA[如何使用MongoDB Atlas的免费存储服务]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/86756768</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/86756768</guid><author>azurelaker</author><pubDate>Sun, 03 Feb 2019 20:14:31 +0800</pubDate><description><![CDATA[Mongo

]]></description><category></category></item><item><title><![CDATA[Thrift的JSON protocol的设计思想]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/86576855</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/86576855</guid><author>azurelaker</author><pubDate>Mon, 21 Jan 2019 18:33:44 +0800</pubDate><description><![CDATA[Thrift的分层实现
Thrift作为RPC的一种实现机制, 封装了内部处理细节, 执行远程的一个服务调用, 其格式就像本地的函数调用一样简洁.Thrift可以看成一个分层的实现,和TCP/IP分层实现有所区别的是, 在使用thrift的时候,仍然需要为每层进行配置, 也就是说, 选择每个分层具体的实现方式. thrift的分层网络栈如下图所示:

Transport是最底层的传输层.是对底层网...]]></description><category></category></item><item><title><![CDATA[Ubuntu系统下编译thrift 0.11.0源代码工程]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/86515522</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/86515522</guid><author>azurelaker</author><pubDate>Thu, 17 Jan 2019 16:37:32 +0800</pubDate><description><![CDATA[基于Thrift RPC机制开发时, 需要有.thrift文件的编译器(compiler),该compiler将根据我们自定义的.thrift文件生成指定语言的源代码.Apache的thrift官网为Windows平台提供了编译好的compiler可执行文件.在Linux系统下需要根据thrift源代码工程编译compiler执行文件.

...]]></description><category></category></item><item><title><![CDATA[关于java集合类的遍历器Iterator及其ConcurrentModificationException的细节]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/85797925</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/85797925</guid><author>azurelaker</author><pubDate>Fri, 11 Jan 2019 16:53:48 +0800</pubDate><description><![CDATA[java

]]></description><category></category></item><item><title><![CDATA[深入理解Redis数据缓存的LRU实现机制]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/85045245</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/85045245</guid><author>azurelaker</author><pubDate>Wed, 26 Dec 2018 20:40:34 +0800</pubDate><description><![CDATA[redis

]]></description><category></category></item><item><title><![CDATA[深入理解Redis的发布/订阅机制(pub/sub)]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/85045183</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/85045183</guid><author>azurelaker</author><pubDate>Sun, 23 Dec 2018 22:11:55 +0800</pubDate><description><![CDATA[Redis

]]></description><category></category></item><item><title><![CDATA[深入理解Redis事务]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/85045220</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/85045220</guid><author>azurelaker</author><pubDate>Sat, 22 Dec 2018 21:36:37 +0800</pubDate><description><![CDATA[redis

]]></description><category></category></item><item><title><![CDATA[Redis事件处理库]]></title><link>https://blog.youkuaiyun.com/azurelaker/article/details/85045686</link><guid>https://blog.youkuaiyun.com/azurelaker/article/details/85045686</guid><author>azurelaker</author><pubDate>Mon, 17 Dec 2018 16:58:03 +0800</pubDate><description><![CDATA[原文链接:https://redis.io/topics/internals-rediseventlib
Redis执行自己的事件库,其相关实现在文件ae.c中.
理解Redis事件库如何工作的最好办法是理解Redis是如何使用事件库的.
事件循环初始化
文件redis.c中的函数initServer初始化了redisServer结构变量的很多字段,其中就包括事件循环字段el:
aeEventLo...]]></description><category></category></item></channel></rss>