- 博客(10)
- 收藏
- 关注
原创 笔记篇(六):Mafka的理解
学习自https://wangjunfei.com/2021/04/15/%E7%BE%8E%E5%9B%A2%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97Mafka/
2025-04-06 17:12:42
1255
原创 笔记篇(五):Kafka消息队列的学习
Kafka的主要组件有生产者、消费者、zk、broker、topic、partition等等。消息存储、分区Leader选举、副本同步生产者按Topic发布消息,消费者按Topic订阅宏观来说的话生产者就是(1)生产者一开始先去zk里面找topic的partition leader在哪个broker里,(2)然后将消息按照topic分发这个broker中的对应topic的partition leader,
2025-04-05 19:45:58
817
原创 笔记篇(四):OCTO 2.0各组件的理解(iptables、Istio、Envoy、k8s)
左边绿色是网卡,中间黄色是内核空间,右边蓝色是用户空间。iptable涉及四表五链。四表(filter,nat,mangle,raw)五链(PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING)对应五个“hook point”
2025-04-03 16:35:44
1182
原创 笔记篇(一):Oceanus、ABTestingGateway的学习与理解
Oceanus通过组合多种属性的方式扩展策略数,也避免了对配置文件的修改,直接再sql修改定时拉去到redis就好;也继续使用了AB的解耦方式,不过是在redis与oceanus,提高了灵活性;而且使用了timer定时拉取mysql的策略到redis,双buffer解决了竞态问题,在服务实例节点更新上使用了zkwatcher的事件驱动机制,通知Oceanus内存里的服务实例(上线或下线)。有机会接触源码的话,我觉得可以画个全局的框架图好理解一些,虽然整体也还是AB框架上改。
2025-04-01 17:30:20
1115
原创 Linux指令复习
chmod u=rwx,g=rx,o= file.txt # 所有者=rwx,组=rx,其他人无权限。不带任何参数下,后面用到的时候再深入补。查看文件内容 cat file.txt。切换目录,譬如cd到d:目录下。查看系统负载,得到如c。
2025-03-30 21:57:18
299
原创 AQS下的常用锁和Synchronized的差异性理解
AQS理解为一个毛坯房(框架),我们可以选择多种装修风格对他进行改造,譬如现代风(reentrantlock)、北欧风(semaphore)、复古风.(countdownlatch).....相信各位看到这里,大概对AQS是什么有了一定的概念,言归正传。AQS是JUC并发包下的一个核心框架,用来构建锁和同步器的,他提供了两种机制,分别是独享锁和共享锁。譬如reentrantlock就是用的独享,而semphore用的共享(根据信号的数量)。
2025-03-02 11:49:29
716
原创 设计模式的不同比喻和理解
譬如工厂方法只造车,那么我有两个接口,一个car的接口,我后面可以bmw implements car和benz implements car,然后一个factory接口,后面bmwfactory implements factory等等,通过factory工厂创建子工厂bmwfactory来生成bmw;而如果是抽象工厂的话,factory接口除了createCar(),还包括createEngine()的声明,通过factory工厂创建子工厂bmwfactory和bmwengine这两种关联的产品。
2025-03-01 11:44:02
843
原创 java反射的作用、特点和思考
譬如说我现在开炼铁的门店,专门为客户锻造铁器,每天我就在那敲啊敲;有一天突然想到有没有可能我可以锻造一个机器,用这个机器来为我打客户需要的铁?这个辅助机器就是反射。数据的单位是毫秒(ms),对比直接调用的话其实的确性能上相差很大。但谁会无缘无故在开发时这么玩呢,感觉这个是方便我们造轮子,要使用在合适的情况下。隐藏在我们日常开发中间,譬如Spring使用反射创建bean,动态代理使用反射获取类的方法进行调用等等。先拿到class对象,然后通过constructor、method、field等方法操作。
2025-02-28 13:42:16
346
原创 select、epoll和poll的特点和浅见
线程与连接是一对一,十分传统,应对不了高并发。,线程与连接是一对多处理,netty,redis等等都有设计,前者是eventloop与IO进行绑定,借此来监听多个channel;后者则是单线程监听多个IO请求操作数据库,这样子还能避免上下文的切换导致额外开销。我的理解是因为BIO是在效率太低了,每个线程都要阻塞等待IO事件的结束。譬如说我现在有一个线程正在执行业务,突然要去读一个磁盘资源,就要发起IO请求,那么线程就会一直啥也不做的等待,等他读取完资源之后回来继续运行;
2025-02-27 22:08:03
184
原创 JUC底层下_AQS的基本概念
我理解的是首先有一个线程a进来想要获取锁,随后判断state的状态原来是0,那么cas修改state为1后直接拿到锁;之后线程b来了,想拿锁,发现state是1表示现在锁被拿了,再看一下当前是独占模式(资源只有一个),随后他想插队偷鸡,因为当前是非公平锁,他插入等待队列的时候一直自旋偷鸡,没想到在临界点线程a释放锁恢复state后,真被线程b插队拿到锁了,然后线程b就改state执行自己的业务了。如果是公平锁,那就判断我前一个节点是否头结点,不然自旋的意义不大,因为只有头结点的下一个节点才有机会争取到锁。
2025-02-27 14:19:03
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅