<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Stitch12的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Stitch12</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Stitch12]]></copyright><item><title><![CDATA[RocketMQ]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/137408074</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/137408074</guid><author>Stitch12</author><pubDate>Tue, 09 Apr 2024 21:12:14 +0800</pubDate><description><![CDATA[临时topic队列扩容，并提高消费者能力，但是如果增加Consumer数量，但是堆积的topic里面的message queue数量固定，过多的consumer不能分配到message。编写临时处理分发程序，从旧topic快速读取到临时新topic中，新topic的queue数量扩容多倍，然后再启动更多consumer进行在临时新的topic里消费。投递的日志需要保存，关键字段，投递时间、投递状态、重试次数、请求体、响应体。机器断电重启:异步刷盘，消息丢失;接口幂等性保障，消费端处理业务消息要保持幂等性。]]></description><category></category></item><item><title><![CDATA[skywalking 分布式链路追踪]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/135553326</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/135553326</guid><author>Stitch12</author><pubDate>Fri, 12 Jan 2024 20:59:31 +0800</pubDate><description><![CDATA[服务(Service)比如商品微服务实例(Instance)比如 机器1（192.12.41.4）端点(Endpoint)比如商品微服务对外提供的接口 /api/v1/product/list，就是端点用户的满意程度 Service Apdex全称 Application Performance Index，最大值就是 1， 是一个不断优化的方向分3个指标，T 值代表着用户对应用性能满意的响应时间界限或者说是“门槛”，假如T是0.5秒。]]></description><category></category></item><item><title><![CDATA[clickHouse]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/135422927</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/135422927</guid><author>Stitch12</author><pubDate>Sat, 06 Jan 2024 22:02:44 +0800</pubDate><description><![CDATA[列式存储ClickHouse的由来和应用场景俄罗斯Yandex在2016年开源，使用C++编写的列式存储数据库，近几年在OLAP领域大范围应用GitHub:特点和应用场景不依赖Hadoop 生态、安装和维护简单擅长对列的聚合、计数等统计操作性能强劲对列存储和压缩的采用更好的算法，更好节省成本拓展性强，在生产中经过实战测试，从单服务器部署到具有数千个节点的集群的线性水平可扩展性具有企业级安全功能和故障安全机制，可防止数据因应用程序错误和人为错误而损坏支持主流的大部分SQL语法和函数。]]></description><category></category></item><item><title><![CDATA[Kafka]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/135170359</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/135170359</guid><author>Stitch12</author><pubDate>Tue, 26 Dec 2023 19:44:29 +0800</pubDate><description><![CDATA[一、简介Kafka是最初由Linkedin公司开发，Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目，也是一个开源【分布式流处理平台】，由Scala和Java编写，（也当做MQ系统，但不是纯粹的消息系统），一种高吞吐量的分布式流处理平台，它可以处理消费者在网站中的所有动作流数据。比如 网页浏览，搜索和其他用户的行为等，应用于大数据实时处理领域特点高吞吐量、低延迟: 每秒可以处理几十万条消息高并发：几千个客户端同时读写。]]></description><category></category></item><item><title><![CDATA[XXL-JOB分布式调度]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/135086388</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/135086388</guid><author>Stitch12</author><pubDate>Tue, 19 Dec 2023 16:34:41 +0800</pubDate><description><![CDATA[这个是阿里早期开源的分布式任务调度系统，使用的是timer而不是线程池执行任务调度，使用timer在处理异常的时候是有缺陷的，但TBSchedule的作业类型比较单一，文档也缺失得比较严重。ScheduledExecutorService是基于线程池来进行设计的定时任务类，在这里每个调度的任务都会分配到线程池里的一个线程去执行该任务，并发执行，互不影响。xxl_job_info：调度扩展信息表，主要是用于保存xxl-job的调度任务的扩展信息，比如说像任务分组、任务名、机器的地址等等。]]></description><category></category></item><item><title><![CDATA[分库分表之Sharding-JDBC]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/134813495</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/134813495</guid><author>Stitch12</author><pubDate>Wed, 06 Dec 2023 19:49:25 +0800</pubDate><description><![CDATA[需求：商品表字段太多，每个字段访问频次不⼀样，浪费了IO资源，需要进⾏优化也就是“大表拆小表”，基于列字段进行的拆分原则⼀般是表中的字段较多，将不常⽤的或者数据较大，长度较长的拆分到“扩展表 如text类型字段访问频次低、字段⼤的商品描述信息单独存放在⼀张表中，访 问频次较⾼的商品基本信息单独放在⼀张表中垂直拆分原则把不常用的字段单独放在⼀张表;把text，blob等大字段拆分出来放在附表中;业务经常组合查询的列放在⼀张表技术负责人前瞻性思维需要提前考虑系统⼀年到两年左右的业务增⻓情况。]]></description><category></category></item><item><title><![CDATA[leader方法论]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/134761275</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/134761275</guid><author>Stitch12</author><pubDate>Sun, 03 Dec 2023 10:19:59 +0800</pubDate><description><![CDATA[AARRR是Acquisition、Activation、Retention、Revenue、Referral 五个单词的缩写，对应用户生命周期中的5个重要环节。官方：用来确定企业自身的竞争优势、劣势、外部市场的机会和威胁，从而将公司的战略与公司内部资源、外部环境有机地结合起来的一种科学的分析方法。指的是政治（Political）、经济（Economic）、社会（Social）和技术（Technological）威胁：项目的规范机制没有建立、项目的核心难点没有攻破、加班比较多（个人外部）]]></description><category></category></item><item><title><![CDATA[RabbitMQ]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/134290264</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/134290264</guid><author>Stitch12</author><pubDate>Mon, 13 Nov 2023 16:11:16 +0800</pubDate><description><![CDATA[MQTT：消息队列遥测传输（Message Queueing Telemetry Transport），一种协议，内存占用低，不支持长周期存储和转发，不允许分段消息（很难发送长消息），不安全建立连接，仅适用于性能结算不高的小型设备，例如扫地机器人，智能家具等，主要用于物联网（IOT）生产者投递消息后，如果Broker收到消息后，会给生产者⼀个ACK。开启消息确认机制以后，保证了消息的准确送达，但由于频繁的确认交互，rabbitmq 整体效率变低，吞吐量下降严重，不是非常重要的消息不建议用消息确认机制。]]></description><category></category></item><item><title><![CDATA[Docker]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/134244785</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/134244785</guid><author>Stitch12</author><pubDate>Mon, 06 Nov 2023 15:34:48 +0800</pubDate><description><![CDATA[什么是docker一个开源的应用容器引擎，让开发者可以打包他们的应用以及依赖包到一个可移植的容器中，然后发布到任何流行的 Linux 机器上，也可以实现虚拟化。容器是完全使用沙箱机制，相互之间不会有任何接口；使用go语言编写，在LCX（linux容器）基础上进行的封装，开箱即用，快速部署，可移植性强，环境隔离，简单来说分三点：1）就是可以快速部署启动应用2）实现虚拟化，完整资源隔离。]]></description><category></category></item><item><title><![CDATA[状态设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121703905</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121703905</guid><author>Stitch12</author><pubDate>Fri, 03 Dec 2021 17:50:37 +0800</pubDate><description><![CDATA[一、状态设计模式简介

状态设计模式(State Pattern)

对象的⾏为依赖于它的状态（属性），并且可以根据它的状态改变⽽改变它的相关⾏为 ,属于⾏为型模式
	允许⼀个对象在其内部状态改变时改变它的⾏为
	状态模式是策略模式的孪⽣兄弟，它们的UML图是⼀样的，但实际上解决的是不同情况的两种场景问题
	⼯作中⽤的不多，基本策略模式⽐较多
应用场景

⼀个对象的⾏为取决于它的状态, 并且它必须在运⾏时刻根据状态改变它的⾏为
	代码中包含⼤量与对象状态有关的条件语句 ，⽐如⼀个 操作中含有庞⼤的多分⽀的条]]></description><category></category></item><item><title><![CDATA[备忘录设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121700972</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121700972</guid><author>Stitch12</author><pubDate>Fri, 03 Dec 2021 17:04:56 +0800</pubDate><description><![CDATA[一、备忘录设计模式jianjie

备忘录设计模式(Memento Pattern)

在不破坏封闭的前提下，捕获⼀个对象的内部状态，保存对象的某个状态，以便在适当的时候恢复对象，⼜叫做快照模式，属于⾏为模式
	备忘录模式实现的⽅式需要保证被保存的对象状态不能被对象从外部访问
应用场景

玩游戏的时候肯定有存档功能，下⼀次登录游戏时可以从上次退出的地⽅继续游戏
	棋盘类游戏的悔棋、数据库事务回滚
	需要记录⼀个对象的内部状态时，为了允许⽤户取消不确定或者错误的操作，能够恢复到原先的状态
	提供⼀个可回滚的操]]></description><category></category></item><item><title><![CDATA[迭代器设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121699745</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121699745</guid><author>Stitch12</author><pubDate>Fri, 03 Dec 2021 16:00:55 +0800</pubDate><description><![CDATA[一、迭代器设计模式简介

迭代器设计模式（Iterator Pattern）

提供⼀种⽅法顺序访问⼀个聚合对象中各个元素, ⽽⼜⽆须暴露该对象的内部实现，属于⾏为型模式 应该是java中应⽤最多的设计模式之⼀
应用场景

⼀般来说，迭代器模式是与集合是共存的，只要实现⼀个集合，就需要同时提供这个集合的迭代器，就像java中的Collection，List、Set、Map等 都有自己的迭代器JAVA中的iterator迭代器
角色

抽象容器（Aggregate）：提供创建具体迭代器⻆⾊的接⼝，⼀般是接⼝，]]></description><category></category></item><item><title><![CDATA[命令设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121699349</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121699349</guid><author>Stitch12</author><pubDate>Fri, 03 Dec 2021 15:25:20 +0800</pubDate><description><![CDATA[一、命令设计模式简介

命令设计模式（Command Pattern）

请求以命令的形式包裹在对象中，并传给调⽤对象。调用对象寻找可以处理该命令的对象，并把该命令传给相应的对象执⾏命令，属于行为型模式
	命令模式是⼀种特殊的策略模式，体现的是多个策略执⾏的问题，⽽不是选择的问题
应用场景

只要是你认为是命令的地⽅，就可以采⽤命令模式
	日常每个界⾯、按钮、键盘 事件操作都是命令设计模 
角色

抽象命令(Command)：需要执⾏的所有命令都在这⾥声明
	具体命令(ConcreteCommand)...]]></description><category></category></item><item><title><![CDATA[责任链设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121680875</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121680875</guid><author>Stitch12</author><pubDate>Thu, 02 Dec 2021 19:56:54 +0800</pubDate><description><![CDATA[责任链设计模式(Chain of Responsibility Pattern)

客户端发出⼀个请求，链上的对象都有机会来处理这⼀请求，⽽客户端不需要知道谁是具体的处理对象
	让多个对象都有机会处理请求，避免请求的发送者和接收者之间的耦合关系，将这个对象连成⼀条调⽤链，并沿着这条链传递该请求，直到有⼀个对象处理它才终⽌
	有两个核心行为：⼀是处理请求，⼆是将请求传递到下⼀节点
应用场景

Apache Tomcat 对 Encoding 编码处理的处理， SpringBoot⾥⾯的拦截器、过滤器链
	在请]]></description><category></category></item><item><title><![CDATA[观察者设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121679929</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121679929</guid><author>Stitch12</author><pubDate>Thu, 02 Dec 2021 16:21:19 +0800</pubDate><description><![CDATA[一、观察者设计模式简介

观察者模式（Observer）

定义对象间⼀种⼀对多的依赖关系，使得每当⼀个对象改变状态，则所有依赖于它的对象都会得到通知并⾃动更新，也叫做发布订阅模式Publish/Subscribe，属于行为型模式
应用场景

消息通知⾥⾯：邮件通知、⼴播通知、微信朋友圈、微博私信等，就是监听观察事件
	当⼀个对象的改变需要同时改变其它对象，且它不知道具体有多少对象有待改变的时候，考虑使⽤观察者模式
角色

Subject主题：持有多个观察者对象的引⽤，抽象主题提供了⼀个接⼝可以增加和删..]]></description><category></category></item><item><title><![CDATA[模板方法设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121678697</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121678697</guid><author>Stitch12</author><pubDate>Thu, 02 Dec 2021 15:47:48 +0800</pubDate><description><![CDATA[一、模板方法设计模式简介

模板方法模式（Template Method）

定义⼀个操作中的算法⻣架，将算法的⼀些步骤延迟到子类中，使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤，属于行为型模式
应用创景

javaweb⾥⾯的Servlet，HttpService类提供了⼀个 service()⽅法
	有多个⼦类共有逻辑相同的⽅法，可以考虑作为模板⽅法
	设计⼀个系统时知道了算法所需的关键步骤，且确定了这些步骤的执⾏顺序，但某些步骤的具体实现还未知， 可以延迟到子类进⾏完成
角色
...]]></description><category></category></item><item><title><![CDATA[策略设计模式（行为型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121677830</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121677830</guid><author>Stitch12</author><pubDate>Thu, 02 Dec 2021 15:16:56 +0800</pubDate><description><![CDATA[一、策略设计模式简介

策略模式(Strategy Pattern)

定义⼀系列的算法,把它们⼀个个封装起来, 并且使它们可相互替换
	淘宝天猫双⼗⼀，正在搞活动有打折的、有满减的、有返利的等等，这些算法只是⼀种策略，并且是随时都可 能互相替换的, 我们就可以定义⼀组算法，将每个算法都封装起来，并且使它们之间可以互换
应用场景

计划外出旅游，可以选择骑⾃⾏⻋、坐汽⻋、⻜机等， 每⼀种旅⾏⽅式都是⼀个策略
	如果在⼀个系统⾥⾯有许多类，它们之间的区别仅在于它们的⾏为，那么可以使⽤策略模式
	不希望暴露复.]]></description><category></category></item><item><title><![CDATA[享元设计模式（结构型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121662978</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121662978</guid><author>Stitch12</author><pubDate>Wed, 01 Dec 2021 20:28:59 +0800</pubDate><description><![CDATA[一、享元设计模式简介

享元设计模式(Flyweight Pattern)

主要⽤于减少创建对象的数量，以减少内存占⽤和提⾼性能， 它提供了减少对象数量从⽽改善应⽤所需的对象结构的⽅式。
	享元模式尝试重⽤现有的同类对象，如果未找到匹配的对象，则创建新对象
应用场景

JAVA 中的 String，如果字符串常量池⾥有则返回，如果没有则创建⼀个字符串保存在字符串常量池⾥⾯
	数据库连接池、线程池等
	如果系统有⼤量相似对象，或者需要⽤需要缓冲池的时候可以使⽤享元设计模式，也就是⼤家说的池化技术
	如果发.]]></description><category></category></item><item><title><![CDATA[外观设计模式（结构型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121662680</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121662680</guid><author>Stitch12</author><pubDate>Wed, 01 Dec 2021 19:39:04 +0800</pubDate><description><![CDATA[一、外观设计模式的简介

外观设计模式 Facade Pattern

门面模式，隐藏系统的复杂性，并向客户端提供了⼀个 客户端可以访问系统的接⼝
	定义了⼀个⾼层接⼝，这个接⼝使得这系统更加容易使⽤
应用场景

各种第三⽅SDK⼤多会使⽤外观模式，通过⼀个外观 类，也就是整个系统的接⼝只有⼀个统⼀的⾼层接⼝， 这对⽤户屏蔽很多实现细节，外观模式经常⽤在封装API的常⽤⼿段
	对于复杂难以维护的⽼系统进⾏拓展，可以使⽤外观设计模式
	需要对⼀个复杂的模块或⼦系统提供⼀个外界访问的接⼝，外界对⼦系统的访问..]]></description><category></category></item><item><title><![CDATA[代理设计模式（结构型设计模式）]]></title><link>https://blog.youkuaiyun.com/Stitch12/article/details/121657110</link><guid>https://blog.youkuaiyun.com/Stitch12/article/details/121657110</guid><author>Stitch12</author><pubDate>Wed, 01 Dec 2021 15:54:29 +0800</pubDate><description><![CDATA[一、代理设计模式简介

代理设计模式（Proxy Pattern）

为其他对象提供⼀种代理以控制对这个对象的访问，属于结构型模式。
	客户端并不直接调⽤实际的对象，⽽是通过调⽤代理， 来间接的调⽤实际的对象
应用场景

各⼤数码专营店，代理⼚商进⾏销售对应的产品，代理商持有真正的授权代理书
	客户端不想直接访问实际的对象，或者访问实际的对象 存在困难，通过⼀个代理对象来完成间接的访问
	想在访问⼀个类时做⼀些控制，或者增强功能
角色

Subject: 抽象接⼝,真实对象和代理对象都要实现的⼀个 抽象接.]]></description><category></category></item></channel></rss>