- 博客(79)
- 收藏
- 关注
原创 雷军做程序员时写的博客,的确强大!
大二时学习PC知识,随后一学期,我开始在老师的实验室帮忙,期间编写了后来许多人使用的 RI(RAMinit,一款清内存的小工具),看来我也算是最早一批编写共享软件的人。刚开始编程时,学得多的人写得更好,但到了一定阶段,大家都提升了一个层次,谁写得好就取决于这个人的细心、毅力和悟性。我接触电脑纯属偶然,儿时的好友选择了计算机专业,为了与好友有更多交流,我也步入了计算机系,就此踏上了编程之路。编程是一项极其耗费脑力和体力的工作,但我对此情有独钟,我确信这将是我终身的事业,尽管我并未打算一生只专注于这一件事。
2024-10-15 09:29:11 517
转载 放棄以考試為終點,才是學習的起點──留學日本後我明白台灣教育弱在哪
和大部分的台灣學生一樣,幼稚園到高中都在社區的公立學校讀書。對於習慣台灣升學教育制度的人來說,考試最不可或缺的就是唯一的正確答案。誰能回答出更多的正確答案,就可以受到更多的尊重或是進到更好的大學。來到日本留學之後,雖然還是鄰近的亞洲國家,但由於英文授課的關係,班上的同學都來自不同國家,遍及五大洲。考…和大部分的台灣學生一樣,幼稚園到高中都在社區的公立學校讀書。對於習慣台灣升學教育制度的人來說,考試最不可或缺的就是唯一的正確答案。誰能回答出更多的正確答案,就可以受到更多的尊重或是進到更好的大學。來到日本
2024-10-03 02:08:27 35
原创 服务优雅下线
文章目录问题背景描述优雅下线要解决的问题Springboot对优雅关闭的支持为什么tomcat默认不会优雅关闭?jetty的优雅关闭有什么问题?Springboot内嵌容器优雅停机的处理方案Spring Boot 2.3 及以上版本,开箱即用Spring Boot 2.3 以下版本问题背景描述运维同事反馈上线滚动发布,旧实例接收的请求发生业务中断,没有处理完成, 为保证服务质量,期望发布时旧实例将已有请求处理完成再回收。先说可能会带来的影响:(1)业务处理中断导致数据不完整,属于致命危害。举例:
2022-04-18 18:18:28 2047
原创 Netty4框架原理
文章目录EventLoopGroup与ReactorChannel与ChannelPipelineChannelPipeline 的初始化ChannelHandler修改ChannelPipeline布局能力ChannelPipeline中的触发事件ChannelHandlerContext接口head 和 tail (ChannelHandler&ChannelHandlerContext)使用 ChannelHandlerContext为什么会想要从 ChannelPipeline 中的某个特定
2022-03-24 12:03:00 1778
原创 Netty3框架原理
文章目录客户端BootStrapNioSocketChannel的创建Pipeline的初始化EventLoop的初始化Channel注册到selectorHandler的添加过程客户端发起连接请求服务端ServerBootStrapNioServerSocketChannel的创建ChannelPipeline初始化服务端channel注册到selectorbossGroup与workGroup服务端selector事件轮询netty解决JDK空轮训bugnetty对Selector中KeySet的优化H
2022-03-23 16:18:49 526
原创 netty框架2
文章目录Netty为何高性能高性能的3个主题Netty高性能之道高性能之道 --> 1 异步非阻塞通信高性能之道 -->2 零拷贝高性能之道 -->3 内存池高性能之道 -->4 高效的Reactor线程模型高性能之道 -->5 无锁化的串行设计理念高性能之道 -->6 高效的并发编程高性能之道 -->7 高性能的序列化框架高性能之道 -->8 灵活的TCP参数配置能力插曲深入了解netty的运行机制,掌握NIOEventLoop、Pipeline、Byte
2022-03-16 13:48:40 723
原创 netty框架1
文章目录Netty与NIO的关系Buffer缓冲区Buffer基本原理缓冲区的分配缓冲区分片只读缓冲区直接缓冲区(直接内存开辟缓冲区)内存映射选择器Selector通道Channel使用NIO读取(写入)数据反应堆ReactorNetty架构图Netty与NIO的关系在NIO中有几个核心对象需要掌握:缓冲区 Buffer选择器 Selector信道 ChannelBuffer缓冲区缓冲区实际上是一个容器对象,更直接的说,其实就是一个数组。在NIO库中,所有数据都是用缓冲区处理的。在读
2022-03-09 09:07:06 396
原创 K8S组件及集群搭建
文章目录Kubernetes核心组件和架构图Kubernetes核心组件和架构图(1)先以container为起点,k8s既然是容器编排工具,那么一定会有container。(2)那k8s如何操作这些container呢?从感性的角度来讲,得要有点逼格,k8s不想直接操作 container,因为操作container的事情是docker来做的,k8s中要有自己的最小操作单位,称之为 Pod说白了,Pod就是一个或多个Container的组合看看官网怎么描述的 :https://kuber
2022-03-03 18:32:39 493 1
原创 mysql索引原理2
文章目录索引索引类型索引模型推演二分法查找二叉查找树平衡二叉树(AVL Tree)(左旋、右旋)多路平衡查找树(B Tree)(分裂、合并)B+树 (加强版多路平衡查找树)为什么不用红黑树索引方式:真的只有B+Tree吗InnoDB聚集索引聚集索引(聚簇索引)索引使用规则列的离散度联合索引最左匹配什么时候用不到索引索引数据是以文件的形式存放在磁盘上,每一行数据都有它的磁盘地址。如果没有索引的话,我们从500万条数据检索一条数据,只能依次遍历这张表的全部数据,直到找到这条数据。有了索引以后,只需要去索引
2022-03-03 09:21:24 1677 1
原创 mysql事务与锁3
文章目录事务原子性隔离性持久性一致性事务并发带来的问题(隔离性)事务mysql只有InnoDB支持事务,这也是它默认存储引擎的原因。事务的ACID十大特性。原子性简单说一条或多条sql语句,要么全部成功,要么全部失败。原子性,在InnoDB中通过undo log来实现的。一旦中途发生异常,可以用undo log实现回滚。隔离性数据库层面有4种隔离级别来保证。持久性持久性,指的是事务一旦提交成功,就会持久化到磁盘。不会因为宕机、重启而丢数据。持久性是通过redo log和双写缓冲来保证的
2022-03-03 08:42:03 1114
原创 mysql架构1
文章目录存储引擎存储引擎比较执行引擎Mysql体系结构连接层服务层存储引擎一条更新的SQL是如何执行的缓冲池Buffer PoolRedo logredo log 有什么特点undo logInnoDB总体架构系统表空间system tablespace独占表空间file-per-table tablespaces通用表空间 general tablespaces临时表空间undo log tablespacebinlog存储引擎5.5以前默认存储引擎是myisam,5.5以后默认的存储引擎是InnoD
2022-03-03 06:11:08 917
原创 Redis基础2
文章目录Redis分布式集群主从复制sentinel集群哨兵机制的不足Codis代理集群Redis Clustercluster数据分布Redis cluster特点Redis分布式集群redis支持集群架构。集群有主节点master和从节点slave。slave通过复制技术,自动同步master的数据。主从复制redis主从复制分为2类,一种叫全量复制。第二种叫增量复制。如果新加入的slave节点就需要全量复制。master通过bgsave命令在本地生成一个RDB快照发给slave节点。如果
2022-03-01 22:41:31 566
原创 kafka原理2
文章目录生产者原理拦截器序列化路由指定消息累加器数据可靠性保证ACKACK应答机制kafka Broker存储原理存储总结高可用架构controller选举主从同步follower故障kafka消费者原理消费策略kafka为什么这么快生产者原理消息发送的整体流程。生产端主要有两个线程协调运行。这两条线程分别为main线程和sender线程(发送线程)。拦截器拦截器的作用实现消息的定制化(类似于Spring Intercepter)拦截器的代码定义在生产者代码中,实现ProducerIntercep
2022-02-28 06:54:11 1176
原创 Kafka原理1
文章目录KafkaKafka使用场景消息传递 Messagingwebsite Activity tracking 网站活动跟踪Log Aggregation 日志聚合应用指标监控数据集成+流式计算Kafka的安装Kafka架构分析Broker消息生产者消费者TopicPartition与ClusterPartition 副本 Replica机制SegmentConsumer GroupConsumer Offsetkafka开发kafka+canal消息的幂等性kafka生产者事务kafka与Rabbit
2022-02-28 03:53:29 2233 2
原创 Java中的BIO和NIO区别
文章目录Java中的NIO和BIOBIO原理NIO原理select()与epoll()select()与epoll()、poll的区别select()缺点epoll()优点Java中的NIO和BIO首先我们先了解一下,阻塞(Block)和非阻塞(Non-Block).阻塞:往往需要等待数据缓冲区的数据准备好以后才处理其它事情,否则一致等待在哪里。非阻塞:当进程访问我们的数据缓冲区的时候,如果数据没有准备好就立即返回,不会等待。如果数据以及准备好,也直接返回。阻塞和非阻塞是进程在访问数据缓冲区的时
2022-02-27 09:56:42 985
原创 JVM基础3
JVM常用命令jps查看java进程The jps command lists the instrumented Java HotSpot VMs on the targetsystem. The command is limited to reporting information on JVMs forwhich it has the access permissions.jinfo(1)实时查看和调整JVM配置参数The jinfo command prints Java con
2022-02-27 05:03:18 300
原创 JVM基础2
文章目录JVM基础Method Area(方法区)Heap(堆)Java Virtual Machine Stacks(虚拟机栈)图解栈和栈帧栈帧pc Register(程序计数器)Native Method Stacks(本地方法栈)直接内存(Direct Memory)其他内存:java对象模型栈指向堆方法区指向堆堆指向方法区Java对象内存模型验证hashCode的储存方式Class PointerJVM基础官网概括官网 :https://docs.oracle.com/javase/specs
2022-02-25 07:44:07 1063
原创 JVM基础1
文章目录JVM是什么类加载机制加载字节码文件的方式load链接(Link)验证(Verify)文件格式验证元数据验证字节码验证符号引用验证准备(Prepare)解析(Resolve)初始化使用主动引用被动引用卸载类加载器(ClassLoader)JVM的三种类加载方式打破双亲委派自定义类加载器JVM是什么类加载机制把class文件加载到jvm虚拟机。分为:装载、链接、初始化3个步骤1、loading2、linking3、Initializing加载字节码文件的方式1、从本地系统中直接加载
2022-02-25 04:55:04 576
原创 Spring5框架新特性3
文章目录反应式编程模型使用注解进行编程支持函数式编程BeanFactory和ApplicationContext区别Spring Bean的生命周期Spring Bean 各作用域之间的区别spring事务怎么传播?BeanFactory和FactoryBean的区别?反应式编程模型使用注解进行编程支持函数式编程BeanFactory和ApplicationContext区别ApplicationContext是BeanFactory的实现,继承了BeanFactory。ApplicationC
2022-02-25 03:53:04 159
原创 Spring框架原理2
文章目录Spring基础组件配置组件注入组件高仿真spring手写spring Ioc 和 DI 流程springmvc顶层设计Spring基础组件有人问一个问题Spring中Bean是线程安全的吗?首先,spring是帮我们创建和管理bean,bean从哪里来?是我们自己定义的。bean的线程安全与否跟spring没什么关系。以anotation来说一下各个组件。配置组件FactoryBean:负责将Bean注入到Ioc的bean。把需要注入的对象封装成FactoryBean;Bean
2022-02-24 04:34:39 455
原创 Spring框架实现原理1
文章目录Spring5系统架构核心容器Aopwebspring-websocketspring-webfluxspring版本命名规范常见软件开发中的命名规范Spring5系统架构spring5.0作为springboot2.0的底层,注解驱动的性能提升不是那么明显。在springboot应用场景中大量使用@ComponentScan扫描,导致spring模式的注解解析时间消耗长。面对这个问题,5.0引入@Indexed,为Spring模式注解添加索引。spring总共20个模块,由1300多个文件构
2022-02-24 00:04:16 463
原创 云原生docker3
文章目录docker Composedocker Compose简介和安装docker compose实现通过docker compose创建容器docker-compose常见操作scale扩缩容docker Swarminstall Swarm搭建Swarm集群Swarm基本操作ServiceInternaldocker Composedocker compose在单机下管理容器docker Compose简介和安装官网:https://docs.docker.com/compose/Co
2022-02-23 23:27:49 353
原创 linux centos7环境下安装docker
文章目录安装 docker启动测试卸载 docker安装 docker# 卸载旧版本$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate
2022-02-23 18:24:52 67
原创 云原生docker2
@Toc[]计算机网络模型Linux中网卡01- ip link show 02- ls /sys/class/net 03- ip aip a解读状态:UP/DOWN/UNKOWN等link/ether:MAC地址inet:绑定的IP地址配置文件在Linux中网卡对应的其实就是文件,所以找到对应的网卡文件即可比如:cat /etc/sysconfig/network-scripts/ifcfg-eth0给网卡添加IP地址当然,这块可以直接修改ifcfg-*文件,但是我们通
2022-02-22 19:39:05 1019
原创 云原生docker1
文章目录dockerdocker的优势What is Image?What is Container?Relation between image and containerContainers and virtual machinesDocker Engine and ArchitectureDocker ArchitecturedockerModernize your applications, accelerate innovationSecurely build, share and run
2022-02-21 20:40:28 258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人