<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/lingdu_789</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; lingdu_789]]></copyright><item><title><![CDATA[Redis数据库与实现]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/129816837</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/129816837</guid><author>lingdu_789</author><pubDate>Tue, 28 Mar 2023 17:06:31 +0800</pubDate><description><![CDATA[redis的数据库保存在redisServer结构体总的db数组中,而db数组的元素则是由redisDb结构体描述。redisserver中的dbNum代表了所能创建的最多的数据库，由配置项database决定，默认为16个。]]></description><category></category></item><item><title><![CDATA[Redis 基础数据类型]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/129532776</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/129532776</guid><author>lingdu_789</author><pubDate>Tue, 14 Mar 2023 18:57:27 +0800</pubDate><description><![CDATA[主要解决C语言不支持字符串功能，对C语言字符数组进行扩充增加字符串属性与方法。]]></description><category></category></item><item><title><![CDATA[提高mysql性能：设计阶段]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128774456</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128774456</guid><author>lingdu_789</author><pubDate>Sat, 28 Jan 2023 12:10:11 +0800</pubDate><description><![CDATA[避免太多的列太多的列会导致mysql从行缓存中将编码过的列转换为行数据时花费大量大代价。减少太多的关联为减少太多的关联造成解析和查询的性能影响，应该将单表的关联控制在12个之内。合理使用枚举枚举只适用于值相对固定，且同时只有一个值的情况，修改枚举值会造成Alter table，阻塞用户操作谨慎地使用NULLNULL应尽量减少使用，使用时需要在减少性能影响、降低业务数据复杂度中做权衡选择。]]></description><category></category></item><item><title><![CDATA[2万字系统总结，帮你实现 Linux 命令自由]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128766482</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128766482</guid><author>lingdu_789</author><pubDate>Thu, 26 Jan 2023 17:20:57 +0800</pubDate><description><![CDATA[Linux 的学习对于一个程序员的重要性是不言而喻的。前端开发相比后端开发，接触Linux机会相对较少，因此往往容易忽视它。但是学好它却是程序员必备修养之一。如果本文对你有所帮助，请点个👍 吧。作者使用的是阿里云服务器ECS（最便宜的那种）CentOS 7.764位。当然你也可以在自己的电脑安装虚拟机，虚拟机中再去安装CentOS系统（这就完全免费了）。至于它的安装教程可以去谷歌搜索下，相关教程非常多。Linux系统内核指的是由负责维护，提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。]]></description><category></category></item><item><title><![CDATA[VisualVM详解(手把手教你分析监控使用)]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128765049</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128765049</guid><author>lingdu_789</author><pubDate>Thu, 26 Jan 2023 13:26:16 +0800</pubDate><description><![CDATA[VisualVM详解(手把手教你分析监控使用)]]></description><category></category></item><item><title><![CDATA[JVM堆内存分配策略（深入理解Java虚拟机第三章）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128741957</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128741957</guid><author>lingdu_789</author><pubDate>Fri, 20 Jan 2023 18:41:11 +0800</pubDate><description><![CDATA[原因本人觉得，是由于目前以Spring为主流的的动态代理、反射的大量使用，导致永久代的空间需求和用途已经发生非常大的改变，移除到直接内存中，可以简化JVM垃圾回收，内存管理的工作，也扩展了永久代的占用空间，操作使用更加的便捷。新建对象一般会存放于Eden分区。如果Eden分区空间不足，则执行MinorGC，进行垃圾回收，如果依然无法存放，将放置到Survivor分区，如果Survivor分区依然空间不足，则会将Survivor分区的对象通过分配担保机制提前转移到老年代。]]></description><category></category></item><item><title><![CDATA[JVM 垃圾回收（深入理解Java虚拟机第三章）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128739568</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128739568</guid><author>lingdu_789</author><pubDate>Fri, 20 Jan 2023 15:05:21 +0800</pubDate><description><![CDATA[采用根搜索算法，使用虚拟机栈帧中的本地变量表的引用对象、方法区类静态属性引用对象、方法去常量引用对象、Native方法引用对象作为GC Root,向下搜索，两次未找到则标记为垃圾数据后进行回收处理。第一次标记：标记并覆盖finalize方法，且从未调该方法的对象，放置到F-queue队列。将内存分为两部分，第一部分内存用完时，将存活对象复制到第二部分，再全部清除第一部分。每个对象增加引用计数器，引用加一，失效减一，为零判定为垃圾数据。标记过期对象，清除过期对象，将存活对象对齐，保证占用空间连续。]]></description><category></category></item><item><title><![CDATA[了解过 JDK8 中常量池吗？说说运行时的常量池！]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128729653</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128729653</guid><author>lingdu_789</author><pubDate>Wed, 18 Jan 2023 19:35:31 +0800</pubDate><description><![CDATA[反过来说明，前面之所以返回true的原因在于new创建好"helloWorld"后，当调用intern方法时，不会重新创建一个新的"helloWorld"，而是会将创建好的"helloWorld"存入运行时常量池中，此时intern()实际上只是做了一个地址引用（这个结论应该不正确，因为gc也会导致对象移动，我估摸着是真正的将对象移动到了Old区的字符串常量池，关于字符串常量的位置见文章：java8以后字符串常量池的位置，以及元空间的探秘，使用VisualVM进行实战验证）。也就是下面"java"。]]></description><category></category></item><item><title><![CDATA[JVM–基础–25–JDK7和JDK8的JVM内存模型]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128729630</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128729630</guid><author>lingdu_789</author><pubDate>Wed, 18 Jan 2023 19:33:44 +0800</pubDate><description><![CDATA[而且应该为PermGen分配多大的空间很难确定，因为PermSize的大小依赖于很多因素，比如JVM加载的class总数，常量池的大小，方法的大小等。元空间的本质和永久代类似，都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于：元数据空间并不在虚拟机中，而是使用本地内存。官方文档：移除永久代是为融合HotSpot JVM与 JRockit VM而做出的努力，因为JRockit没有永久代，不需要配置永久代。元数据区取代了永久代，就是JDK8没有了PermSize相关的参数配置了。]]></description><category></category></item><item><title><![CDATA[JVM内存区域与异常（深入理解Java虚拟机第二章）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128722720</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128722720</guid><author>lingdu_789</author><pubDate>Wed, 18 Jan 2023 09:13:09 +0800</pubDate><description><![CDATA[.程序计数器
保存当前线程执行的虚拟机字节码指令地址。

异常：没有异常]]></description><category></category></item><item><title><![CDATA[理解 static （深入了解JAVA虚拟机）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128682155</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128682155</guid><author>lingdu_789</author><pubDate>Wed, 18 Jan 2023 07:59:07 +0800</pubDate><description><![CDATA[栈(stack):是一个先进后出的数据结构 通常用于保存方法(c:函数)中的参数 局部变量八种基本类型和自定义对象的引用（c：指针）被执行的方法也会到栈中 执行完会出栈]]></description><category></category></item><item><title><![CDATA[理解 static （深入了解JAVA虚拟机）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128682165</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128682165</guid><author>lingdu_789</author><pubDate>Sat, 14 Jan 2023 09:21:40 +0800</pubDate><description><![CDATA[首先 static是个修饰符 被static修饰的变量我们统称为静态变量也叫类变量（为什么叫类变量呢 ？因为我们可以直接使用类来调用被static修饰的变量）
static 不可以修饰局部变量！牢记
再和大家说一下另一种变量 也同样是成员变量 但是没有被static修饰 我们叫它全局变量也是很多人嘴里的动态变量（c中的叫法]]></description><category></category></item><item><title><![CDATA[干货 | 使用 OIDC 进行身份验证的工作原理]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128371282</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128371282</guid><author>lingdu_789</author><pubDate>Mon, 19 Dec 2022 12:43:41 +0800</pubDate><description><![CDATA[之后，用户需要通过某种保密的途径悄悄告诉 IdP 自己的私密信息，IdP 确认无误后，就可以将当前正在进行请求的用户和用户目录中的身份信息对应起来，如此一来，用户在 IdP 上的认证过程就完成了。也正因如此，密码模式中让用户确认权限是没有意义的，SP 获取的一定是用户资源的完全访问权限。《身份云动态 | 认证和授权，都离不开的 OIDC 协议》一文中提到，OIDC 诞生的场景是 —— 被授权的主体不再是用户，而是「想要访问用户资源的第三者」，而颁发权限的主体也不再是管理员，而是用户自己。]]></description><category></category></item><item><title><![CDATA[JSON Web Token 入门教程]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/128371232</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/128371232</guid><author>lingdu_789</author><pubDate>Mon, 19 Dec 2022 12:40:18 +0800</pubDate><description><![CDATA[JSON Web Token（缩写 JWT）是目前最流行的跨域认证解决方案，本文介绍它的原理和用法。]]></description><category></category></item><item><title><![CDATA[万字长文：读懂微服务编排利器Zeebe]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/125103315</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/125103315</guid><author>lingdu_789</author><pubDate>Thu, 02 Jun 2022 16:41:00 +0800</pubDate><description><![CDATA[1.工作流与微服务编排 1.1工作流提到工作流，印象里都是OA系统各种请假审批流。事实上，广义上的工作流是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。简单理解，我们为了实现某个业务目标，抽象拆解出来的一系列步骤及这些步骤之间的协作关系，就是工作流。例如订单发货流、程序构建流等。业界通常用BPMN流程图来描述一个工作流。1.1.1没有工作流时的任务协作以实现一个用户购买逻辑为例，如果不应用工作流模型，我们串联多个任务(步骤)一般是通过显示的代码调用：校验、支付、发货一气呵成，流畅自然。正喝着枸杞红]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/124302300</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/124302300</guid><author>lingdu_789</author><pubDate>Wed, 20 Apr 2022 17:11:07 +0800</pubDate><description><![CDATA[SIP攻击很常见，特别是各大云服务器，基本上开了个公网IP绑定到实例机器就会被外国IP一遍怼。

防范也容易，就是把外国IP禁掉。

实现：iptables+ipset，只允许中国IP访问本机，也就实现了封禁国外IP的效果。

优点：匹配迅速，免去iptables单链匹配。

具体操作如下：




#安装ipset：
RedHat：yum install ipset
Debian：apt-get install ipset
#建表
ipset create china hash:net hashsize ]]></description><category></category></item><item><title><![CDATA[centos6.8 安装freeswitch错误：libopus-dev]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/124297430</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/124297430</guid><author>lingdu_789</author><pubDate>Wed, 20 Apr 2022 14:43:33 +0800</pubDate><description><![CDATA[You must install libopus-dev to build mod_opus. Stop.

解决：

   安装libopus-devel rmp包： https://centos.pkgs.org/6/linuxtech/libopus-devel-1.1-1.el6.i686.rpm.html

  1.Create the repository config file /etc/yum.repos.d/linuxtech.repo:

  [linuxtech]
 ...]]></description><category></category></item><item><title><![CDATA[Harbor]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/116889968</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/116889968</guid><author>lingdu_789</author><pubDate>Wed, 20 Apr 2022 14:42:31 +0800</pubDate><description><![CDATA[一：简介

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各个组件，并通过docker-compose工具进行启停。

docker的registry是用本地存储或者s3都是可]]></description><category></category></item><item><title><![CDATA[SIP中继对接]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/124296846</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/124296846</guid><author>lingdu_789</author><pubDate>Wed, 20 Apr 2022 14:41:32 +0800</pubDate><description><![CDATA[freeswitch与各种设备对接的成功配置，需要的请参考，有错误的地方请指导。

1、对接华为softco

中继配置

\sip_profiles\external\


&lt;include&gt;
&lt;gatewayname="softco5816"&gt;
&lt;paramname="proxy"value="172.16.100.248:5060"/&gt;
&lt;paramname="realm"value="$${local_ip_v4}"/&gt;
&lt;...]]></description><category></category></item><item><title><![CDATA[Freeswitch在阿里云服务器语音不通问题小记（FS的NAT 穿透）]]></title><link>https://blog.youkuaiyun.com/lingdu_789/article/details/124297158</link><guid>https://blog.youkuaiyun.com/lingdu_789/article/details/124297158</guid><author>lingdu_789</author><pubDate>Wed, 20 Apr 2022 14:41:22 +0800</pubDate><description><![CDATA[我原来都是在公司的服务器或自己的开发环境安装FS，这次必须在阿里云上安装，自己觉得没问题，但安装好就就发现问题出来了。。
语音不通，压根就没声音！
本地PC上抓包一看，怎么回事，所有RTP包都发给了阿里云的私网地址，那当然不会通了，而后，再看SDP，服务器发过来的就是私网地址，怎么会这样呢？
—其实也很简单，因为阿里云的服务器地址就只有私网地址，他的公网地址是NAT映射的！也就是这是NAT穿透问题了！

我去阿里云下工单找技术支持，询问NAT穿透的问题，结果得到的答复是阿里云的专有网络默认是不能支持SIP的]]></description><category></category></item></channel></rss>