凡事都在事上磨,这样才能精进,成长进步提高! ------ 博客园首页

08 2023 档案

摘要:用vue 2, or vue3 + css用tailwind 阅读全文
posted @ 2023-08-18 17:14 追风fc 阅读(16) 评论(0) 推荐(0) 编辑
摘要:如何设计出一个好的架构,不像数据公式或者定律,很难一概而就。很多时候是设计者(架构师)的各种设想,各种权衡折中而符合系统需求的智慧输出。但我们掌握前人总结的经验,让我们站在巨人的肩膀上高山远瞩。一些好的架构设计原则可以确保设计决策在一定程度上能够满足需求。 1、形成架构原则的过程 形成架构原则的过程 阅读全文
posted @ 2023-08-15 11:20 追风fc 阅读(82) 评论(0) 推荐(0) 编辑
摘要:N + 1设计。 回滚设计。 禁用设计。 监控设计。 设计多活数据中心。 使用成熟的技术。 异步设计。 无状态系统。 水平扩展而非垂直升级。 设计时至少要有两步前瞻性。 非核心则购买。 使用商品化硬件。 小构建、小发布和快试错。 隔离故障。 自动化。 阅读全文
posted @ 2023-08-14 23:43 追风fc 阅读(10) 评论(0) 推荐(0) 编辑
摘要:十年架构感悟 蔡超 大家好,我是汇量科技的蔡超,也是 QCon 的老朋友了。 以前我会给大家分享一些具体的技术,例如微服务,甚至我会带上笔记本跟大家一起写写代码、调调程序。这次不一样,我会给大家分享一些软性的内容,分享一下我做架构这十年来的感悟。 1.“提出问题”难于“解决问题” 跟大家分享的第一个 阅读全文
posted @ 2023-08-14 20:59 追风fc 阅读(60) 评论(0) 推荐(0) 编辑
摘要:分布式系统的架构思路 一、前言 在计算机领域,当单机性能达到瓶颈时,有两种方式可以解决性能问题,一是堆硬件,进一步提升配置,二是分布式,水平扩展。当然,两者都是一样的烧钱。今天聊聊我所理解的分布式系统的架构思路。 二、分布式系统的两种方式 平时接触到的分布式系统有很多种,比如分布式文件系统,分布式数 阅读全文
posted @ 2023-08-14 11:59 追风fc 阅读(96) 评论(0) 推荐(0) 编辑
摘要:1. 计算与存储分离 2. 接口幂等, 业务幂等 ,防重提交 3.功能性需求 ,非功能性需求 之间的取舍平衡 4. 数据的冷热分离 5. 高内聚,低耦合 , 模块化设计 ,分层,防腐层 ,DDD 6. 分布式系统,三大件 Redis , MQ , 分布式数据库(1. 满足事务处理简单 , 2. 能快 阅读全文
posted @ 2023-08-10 18:18 追风fc 阅读(28) 评论(0) 推荐(0) 编辑
摘要:算法名称算法链接刷题范围(leetcode) 排序算法 排序 56、147、220、 252 堆 最大堆,最小堆问题 215、253、347、 624、703 分治法 分治1 分治2 4、23、53、215、 240、327 回溯法 回溯1 回溯2 10、17、22、39、 46(经典回溯)、 12 阅读全文
posted @ 2023-08-10 15:36 追风fc 阅读(8) 评论(0) 推荐(0) 编辑
摘要:参考链接 图的算法 https://github.com/wangzheng0822/algo/blob/master/java/30_graph/Graph.java 基础数据结构参考样例: http://gitbook.net/java/util/treeset_ceiling.html BFS 阅读全文
posted @ 2023-08-10 09:56 追风fc 阅读(14) 评论(0) 推荐(0) 编辑
摘要:网上也看到一些防腐层的优秀文章,在实际的开发项目中,不可避免的,我们也使用到了防腐层,对防腐层,简单总结一下: 1. 防腐层的意义是什么? 防腐层隔离上游的功能,防腐层通过已有接口和外部系统交互,在内部做己方和他方模型的转换。 简单来说,防腐层一般为了隔离两个系统之间的变化,防止一个系统的微小变化会 阅读全文
posted @ 2023-08-09 14:08 追风fc 阅读(250) 评论(0) 推荐(0) 编辑
摘要:系统与子系统 系统:泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能独立完成的工作能力的群体。子系统:也是由一群关联的个体组成的系统,多半是在更大的系统中的一部分。例如:汽车与发动机 模块与组件都是系统的组成部分,从不同角度拆分系统而已。模块是逻辑单元,组件是物理单元。模块就是从逻辑 阅读全文
posted @ 2023-08-09 12:18 追风fc 阅读(133) 评论(0) 推荐(0) 编辑
摘要:labuladong/fucking-algorithm: 刷算法全靠套路,认准 labuladong 就够了!English version supported! Crack LeetCode, not only how, but also why. (github.com) 阅读全文
posted @ 2023-08-07 20:50 追风fc 阅读(8) 评论(0) 推荐(0) 编辑
摘要:F1:截图;F3:截图确认;CTRL+C:复制图层;CTRL+V:粘贴图层;ESC:退出图层。 阅读全文
posted @ 2023-08-03 10:52 追风fc 阅读(117) 评论(0) 推荐(0) 编辑
摘要:jdk1.5后,提供了Condition接口,主要常用的实现类是AQS里的ConditionObject;常用的方法await(),single()刚好对应Object类的wait(),notify();区别在于前者能指定唤醒阻塞的线程,看ArrayBlockedList源码可以看到,其阻塞的实现就 阅读全文
posted @ 2023-08-03 10:20 追风fc 阅读(25) 评论(0) 推荐(0) 编辑
摘要:ReentrantLock重入锁可以显示的加锁释放锁,且可以配合Condition指定阻塞和唤醒线程,相比synchronized更加灵活。并且已api接口形式提供给开发,我们可以直接阅读源码,看下底层是如何进行锁的实现。 一. ReentrantLock 1.1 成员变量和构造方法 Sync是Re 阅读全文
posted @ 2023-08-03 10:20 追风fc 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Spring启动时,可以加载application.yml配置文件,读取到内存,方面后续项目里直接取用,很方便。下面主要从应用层面说明下如何使用。 一. 加载顺序 1.当前项目目录下找到config目录,加载里面的application.yml文件 2.当前项目目录下,加载application.y 阅读全文
posted @ 2023-08-03 10:17 追风fc 阅读(1577) 评论(0) 推荐(0) 编辑
摘要:CountDownLatch是编程过程中保持线程同步的一种常用方式。英文直译过来就是计数门闩,看下下面的举例用法就一目了然了。 执行的打印结果为: thread1 do bussinessthread2 do bussinessthread3 do bussiness 线程3要等线程1和2释放锁才能 阅读全文
posted @ 2023-08-03 10:10 追风fc 阅读(25) 评论(0) 推荐(0) 编辑
摘要:同上一遍的CountDownLatch一样,CyclicBarrier也用于控制多线程之间的同步,但比CountDownLatch稍微复杂一些,Cyclic(可循环)使用是其一大特定。 下面还是先举例其简单的使用,再按照例子分析执行流程。 最后的执行结果: thread1 do somethingt 阅读全文
posted @ 2023-08-03 10:09 追风fc 阅读(23) 评论(0) 推荐(0) 编辑
摘要:在我们springMVC项目中,一个客户端请求到达DispatcherServlet前会依次经过过滤器(Filter)和拦截器(Interceptor),所以有必要了解下过滤器和拦截器分别做了啥以及项目中该如何配置。 一. Filter package javax.servlet 1. 三个方法 1 阅读全文
posted @ 2023-08-02 17:48 追风fc 阅读(115) 评论(0) 推荐(0) 编辑
摘要:Http是一种无状态的应用层传输协议。可以理解成请求之间没有联系。但是很多场景,比如需要知道上次是哪个用户登录了。这时就要用到cookie和session了。 一. Cookie Cookie是一种客户端技术,可以理解成用户信息存储在客户端。客户端第一次请求服务器时,如果需要记录用户状态,就用res 阅读全文
posted @ 2023-08-02 17:43 追风fc 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1、堆内存划分 在JDK7以及其前期的JDK版本中,堆内存通常被分为三块区域Nursery内存(young generation)、长时内存(old generation)、永久内存(Permanent Generation for VM Matedata),显示如下图: jdk7之前 堆内存不够最 阅读全文
posted @ 2023-08-02 16:55 追风fc 阅读(122) 评论(0) 推荐(0) 编辑
摘要:一、基础命令 1、ls-lh:以可读性较高的形式显示所有的文档 h表示可读性高 2、mkdir -p:创建多层文件夹 3、cp -r:复制文件夹 r表示递归 4、mv:移动或者重命名 5、rm -rf:强制删除文件夹 r表示递归 f表示强制 6、> >>:输出重定向 >覆盖输出 >>追加输出 7、c 阅读全文
posted @ 2023-08-02 15:07 追风fc 阅读(61) 评论(0) 推荐(0) 编辑
摘要:​流的作用,将原先命令式的编程思想转换成声明式编程,是编程思想的改变,应尽快学习利用。 流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算。涉及到以上四种,都可以试着用流处理。 流的作用:中间操作和终端操作 中间 阅读全文
posted @ 2023-08-02 14:52 追风fc 阅读(22) 评论(0) 推荐(0) 编辑
摘要:流的作用,将原先命令式的编程思想转换成声明式编程,是编程思想的改变,应尽快学习利用。 流是从支持数据处理操作的源生成的元素序列,源可以是数组、文件、集合、函数。流不是集合元素,它不是数据结构并不保存数据,它的主要目的在于计算。涉及到以上四种,都可以试着用流处理。 流的作用:中间操作和终端操作 中间操 阅读全文
posted @ 2023-08-02 14:38 追风fc 阅读(11) 评论(0) 推荐(0) 编辑
摘要:--多线程处理 CompletableFuture<Object> future2 = ThreadUtil.supplyAsyncWithContext(() -> { // 进行中 状态的活动 getAndUpdateCurrentNextAccounts(currentNextAccountL 阅读全文
posted @ 2023-08-02 14:26 追风fc 阅读(71) 评论(0) 推荐(0) 编辑
摘要:package com.cytc.test; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.CompletableFuture; impo 阅读全文
posted @ 2023-08-02 14:24 追风fc 阅读(45) 评论(0) 推荐(0) 编辑
摘要:List uniqueList = groupIds.stream().distinct().collect(Collectors.toList()); // 分组后的list List<List<String>> groupedIdList = Lists.partition(uniqueList 阅读全文
posted @ 2023-08-02 12:24 追风fc 阅读(50) 评论(0) 推荐(0) 编辑
摘要:常用的四大函数式接口如下: Function: R apply(T t) ->有入参和返回 Consumer: void accept(T t) ->有入参无返回 Supplier: T get(); ->无入参有返回 Predicate: boolean test(T t) ->有入参返回bool 阅读全文
posted @ 2023-08-02 12:12 追风fc 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示