<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ecloud_developer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ecloud_developer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ecloud_developer]]></copyright><item><title><![CDATA[移动端自适应]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329164</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329164</guid><author>ecloud_developer</author><pubDate>Tue, 29 Oct 2024 14:43:29 +0800</pubDate><description><![CDATA[这些框架已经经过测试和优化，可以确保在各种设备上呈现良好的效果。移动端自适应是前端开发中一个很重要的问题，因为移动设备的尺寸和分辨率多种多样。这意味着我们需要对不同的设备进行适配，以确保我们的网站或应用程序在各种设备上都能正常运行。总之，在解决移动端自适应问题时，我们需要使用各种方法，以确保页面在各种设备上都能正常运行。在移动端开发中，我们可以使用相对单位（例如 em、rem、vw、vh 等）来代替绝对单位（例如 px）。我们可以根据设备的宽度和高度来设置 CSS 样式，以适应不同的设备。]]></description><category></category></item><item><title><![CDATA[Flink CDC 如何简化实时数据入湖入仓]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329135</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329135</guid><author>ecloud_developer</author><pubDate>Tue, 29 Oct 2024 14:42:40 +0800</pubDate><description><![CDATA[在上图左侧的 SQL 中，我们可以将 MySQL 中的实时产品表、实时订单表和 PostgreSQL 中的实时物流信息表进行实时关联，即 Streaming Join，关联后的结果实时更新到 Hudi 中，非常轻松地完成异构数据源的数据湖构建。Flink CDC 基于数据库日志的 Change Data Caputre 技术，实现了全量和增量的一体化读取能力，并借助 Flink 优秀的管道能力和丰富的上下游生态，支持捕获多种数据库的变更，并将这些变更实时同步到下游存储。这种简洁的架构有着明显的优势。]]></description><category></category></item><item><title><![CDATA[Vue-CLI项目启动和打包优化]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329111</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329111</guid><author>ecloud_developer</author><pubDate>Tue, 29 Oct 2024 14:42:04 +0800</pubDate><description><![CDATA[如果使用 Vue-CLI 创建的项目启动和打包过程过慢，可以尝试以下几种优化方法。]]></description><category></category></item><item><title><![CDATA[云网络订单模块流量染色功能浅谈]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329093</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329093</guid><author>ecloud_developer</author><pubDate>Tue, 29 Oct 2024 14:41:30 +0800</pubDate><description><![CDATA[现在有这样一种情况：当有v2工程有订购类接口被调用时，工程会请求mop，然后mop下发mq消息B，消息B无法区分接受方是v1还是v2工程，此时就会存在抢消息现象，导致消息无法被发送消息的工程消费，导致订单出错。所以，考虑给在mop发送过来的消息中加上userid信息，在下发至工程前，通过feign调用订单工程的方式，并在请求头中塞入userid，再经过ha至ingress分流，最后到对应的工程，及v1消费消息A，v2消费消息B，互不影响。]]></description><category></category></item><item><title><![CDATA[java中list与map的互转与去重]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329050</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/143329050</guid><author>ecloud_developer</author><pubDate>Tue, 29 Oct 2024 14:40:28 +0800</pubDate><description><![CDATA[Person person = personList.stream().filter(s -> s.getName().equals("张三")).findFirst().orElse(null);List<Person> person = personList.stream().filter(s -> s.getName().equals("张三")).collect(1、将List转换为Map，以name作为key，age作为value。8、将list中的age组成新的list。]]></description><category></category></item><item><title><![CDATA[Disconf简介]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597991</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597991</guid><author>ecloud_developer</author><pubDate>Fri, 27 Sep 2024 17:01:42 +0800</pubDate><description><![CDATA[Disconf是一套完整的基于zookeeper的分布式配置统一解决方案，它通过disconf-web管理配置信息，然后将配置的key在Zookeeper上建立节点，disconf-client启动后拉取自身需要的配置信息并监听Zookeeper的节点。（2）服务启动时，通过扫描，获取哪些类、哪些属性需要获取分布式的配置，根据注解知道分布式配置项和配置文件。（2）注解式编程，极简的使用方式：通过简单的标注+极简单的代码撰写，即可完成复杂的配置分布式化；（1）支持配置（配置项+配置文件）的分布式化管理；]]></description><category></category></item><item><title><![CDATA[Dragonfly-一个基于p2p的高效文件传输系统]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597903</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597903</guid><author>ecloud_developer</author><pubDate>Fri, 27 Sep 2024 16:58:49 +0800</pubDate><description><![CDATA[Dragonfly 是阿里开源的一款基于 P2P 的智能镜像和文件分发工具。它旨在提高文件传输的效率和速率，最大限度地利用网络带宽。尤其是在分发大量数据时，例如应用分发、缓存分发、日志分发和镜像分发。它能让所有类型的文件、镜像或数据分发变得简单而经济。]]></description><category></category></item><item><title><![CDATA[如何在 Kubernetes 中使用 APISIX Ingress 实现 gRPC 代理服务]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597878</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597878</guid><author>ecloud_developer</author><pubDate>Fri, 27 Sep 2024 16:57:57 +0800</pubDate><description><![CDATA[gRPC 是一个高性能、开源、通用的远程过程调用（RPC）框架，其支持基于 HTTP/2 协议的双向流传输，并且支持多语言。gRPC 使用 Protocol Buffers（Protobuf）作为数据序列化格式，这使得它比其他序列化方案更快和更小。通过 APISIX Ingress，我们能够在 Kubernetes 中代理 gRPC 服务，实现对 gRPC 协议的支持。]]></description><category></category></item><item><title><![CDATA[VictoriaMetrics安装部署手册]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597831</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597831</guid><author>ecloud_developer</author><pubDate>Fri, 27 Sep 2024 16:56:16 +0800</pubDate><description><![CDATA[概要：VictoriaMetrics是一个开源的时序数据库和监控系统。它是为大规模的时序数据而设计的，可以扩展到数十亿数据点，具有高可用性和高性能。VictoriaMetrics的主要特点包括： 高性能：VictoriaMetrics采用了一些优化技术，如块存储、压缩、索引等，可以在不牺牲查询性能的情况下，大大减少存储空间。高可用性：VictoriaMetrics具有多副本的数据复制机制，可以保证数据的可靠性和高可用性。]]></description><category></category></item><item><title><![CDATA[解决ETCD mvcc: database space exceeded问题]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597769</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/142597769</guid><author>ecloud_developer</author><pubDate>Fri, 27 Sep 2024 16:54:13 +0800</pubDate><description><![CDATA[etcd的官方文档常见问题（FAQ）版块针对这个场景有明确的说明，这个报错信息是etcd服务端返回的，用来提示应用etcd服务端空间不足了。etcd服务默认不会开启自动压缩参数，如果变更频繁，会导致空间和内存的浪费，最终将耗尽etcd的存储空间，Etcd v3 的默认的存储空间是2GB，如果不压缩，超过这个限制后，就会报错：”mvcc: database space exceeded”，导致数据无法写入。查询etcd节点状态，发现"NOSPACE"的告警信息，并且DB SIZE=2.1G。]]></description><category></category></item><item><title><![CDATA[canal现网部署方案]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327986</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327986</guid><author>ecloud_developer</author><pubDate>Mon, 19 Aug 2024 16:05:32 +0800</pubDate><description><![CDATA[其中example为server名称，若新建server名，需在conf下创建server名称的文件夹，并将example下的instance.properties拷贝入新文件夹下待修改。canal 模拟 MySQL slave 的交互协议，伪装自己为 MySQL slave ，向 MySQL master 发送dump 协议。对于自建 MySQL , 需要先开启 Binlog 写入功能，配置 binlog-format 为 ROW 模式，my.cnf 中配置如下。]]></description><category></category></item><item><title><![CDATA[Webflux使用]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327951</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327951</guid><author>ecloud_developer</author><pubDate>Mon, 19 Aug 2024 16:04:39 +0800</pubDate><description><![CDATA[List 集合或者 Set 集合都可以直接搞一个流出来。]]></description><category></category></item><item><title><![CDATA[Linux系统四层端口连通性测试方法汇总]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327909</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327909</guid><author>ecloud_developer</author><pubDate>Mon, 19 Aug 2024 16:03:29 +0800</pubDate><description><![CDATA[如果显示Connection timed out.表示连接超时，一般为主机不可达；如果显示Connection refused.表示主机可达，但是端口号不通；通常url就为服务端IP:PORT，必要时可以加-m参数来设置超时时间。通常若包含 Connected to ...信息，则说明连接成功。-c date表示收到请求时执行date命令打印当前系统时间。UDP端口连通性正常的话可以从服务端收到一定字节数的报文。ncat默认IPv4和IPv6服务会同时开启。ncat默认IPv4和IPv6服务会同时开启。]]></description><category></category></item><item><title><![CDATA[Actor 模型及 Akka 简介（三）：EventBus简介]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327869</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327869</guid><author>ecloud_developer</author><pubDate>Mon, 19 Aug 2024 16:02:10 +0800</pubDate><description><![CDATA[要使用 Akka EventBus， 首先要实现一个 EventBus 接口。type EventEvent 就是需要发布到总线上的事件Classifier 分类器用于对订阅者进行绑定和筛选Subscriber 注册到总线上的订阅者。所幸的是，我们不需要要从头实现 EventBus 接口，Akka 提供了一个 LookupClassification 帮助我们实现 Pub-Sub 模式，我们要做的最主要就是实现 publish 方法。subscriber!event// 其他方法...]]></description><category></category></item><item><title><![CDATA[Linux进程打开文件数量限制修改]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327810</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/141327810</guid><author>ecloud_developer</author><pubDate>Mon, 19 Aug 2024 16:00:48 +0800</pubDate><description><![CDATA[因此我们通过ulimit修改bash进程的打开文件数量后，在这个bash进程启动的子进程也会修改，但是这个是临时的，重新登录或者换一个shell就失效了。如何永久修改这个进程打开文件数量呢？可以看到在成功打开两个文件后tail再打开的文件就会报错（Too many open files），因为进程默认都会打开标准输入、输出和错误三个文件。已运行的进程无法直接修改打开文件数量，需要修改shell下进程打开文件数量后重新启动原来的程序才行，]]></description><category></category></item><item><title><![CDATA[DNS域名解析]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721131</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721131</guid><author>ecloud_developer</author><pubDate>Fri, 26 Jul 2024 17:30:30 +0800</pubDate><description><![CDATA[正是因为有这种本地DNS解析的规程，所以有黑客就可能通过修改用户的域名来把特定的域名解析到他指定的IP地址上，导致这些域名被劫持。Mail Exchange，就是可以将某个域名下的邮件服务器指向自己的 MailServer，如taobao.com域名的A记录IP地址是115.238.25.xxx，如果将MX记录设置为115.238.25.xxx，即xxx@taobao.com的邮件路由，DNS会将邮件发送到115.238.25.xxx所在的服务器，而正常通过Web请求的话仍然解析到A记录的IP地址。]]></description><category></category></item><item><title><![CDATA[PowerMockito使用详解]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721103</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721103</guid><author>ecloud_developer</author><pubDate>Fri, 26 Jul 2024 17:29:37 +0800</pubDate><description><![CDATA[说明：当使用PowerMockito.whenNew方法时，必须加注解@PrepareForTest和@RunWith。注解@PrepareForTest里写的类是需要mock的new对象代码所在的类。说明： 当需要mock final方法的时候，必须加注解@PrepareForTest和@RunWith。注解@PrepareForTest里写的类是final方法所在的类。说明：当需要mock静态方法的时候，必须加注解@PrepareForTest和@RunWith。说明：注解里写的类是私有方法所在的类。]]></description><category></category></item><item><title><![CDATA[Redis如何优化大key]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721061</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721061</guid><author>ecloud_developer</author><pubDate>Fri, 26 Jul 2024 17:28:37 +0800</pubDate><description><![CDATA[通过优化数据结构设计、设定合理的数据过期策略、优化系统架构和配置，以及渐进式删除大Key等方法，我们可以有效地解决和预防大Key问题，从而提高Redis系统的稳定性和性能。启用Redis的内存淘汰策略，例如LRU（Least Recently Used，最近最少使用），以便在内存不足时自动淘汰最近最少使用的数据，防止大Key长时间占用内存。Redis大key问题指的是某个key对应的value值所占的内存空间比较大，导致Redis的性能下降、内存不足、数据不均衡以及主从同步延迟等问题。设置合理的过期时间。]]></description><category></category></item><item><title><![CDATA[Java进程笔记]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721043</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721043</guid><author>ecloud_developer</author><pubDate>Fri, 26 Jul 2024 17:28:01 +0800</pubDate><description><![CDATA[isInterrupted判断的是调用此方法的线程，如果设置了线程中断标志，则返回true，并不表示线程真正的被中断。根据volatile的happend-before原则，volatile的写必须对后续的volatile读内存 可见，也就是说每次写volatile变量的时候，把它刷新到内存，每次读volatile变量的时候都从内存读取。根据synchronized的happend-before原则，锁的释放happend-before锁的获取，现在在释放锁的时候，会将修改的值刷新到内存。]]></description><category></category></item><item><title><![CDATA[Go中变量的生命周期]]></title><link>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721017</link><guid>https://blog.youkuaiyun.com/ecloud_developer/article/details/140721017</guid><author>ecloud_developer</author><pubDate>Fri, 26 Jul 2024 17:27:16 +0800</pubDate><description><![CDATA[生命周期指变量在程序执行过程中存在的时间段。包级别变量的生命周期是整个程序的执行时间。相反，局部变量有一个动态的生命周期：每次执行声明语句时创建一个新的实体，变量一直生存到它变得不可访问，此时它占用的存储空间被回收。函数的参数和返回值也是局部变量，它们在其闭包函数被调用的时候创建。在如上代码片段中，变量t在每次for循环的开始创建，变量x和y在循环的每次迭代中创建。那么垃圾回收器如何知道一个变量是否应该被回收？]]></description><category></category></item></channel></rss>