摘要:
不断提高代码质量 从大的方面来讲,可以从这几个方面,不断提高自己的编程能力: 1、编码之前需要做一定的设计,主要考虑:耦合度,拓展性,复用度 2、熟悉类库,熟悉API,避免自己造轮子 3、阅读优秀源码并加以实践 4、参考一些已有的最佳实践,代码片段,但是避免复制粘贴 5、多考虑一些细节、边界、异常场 阅读全文
摘要:
身处其外辩证思考 disruptor:破坏者,分裂者 参考:https://ifeve.com/disruptor/ 1、性能极强的异步消息处理框架。线程间通信高效低延时的内存消息组件。LMAX架构可以获得每秒600万订单,1微秒的延迟获得吞吐量为100K+。(log4j、ActiveMQ中扩展使用 阅读全文
摘要:
有感: 1、数据库在速度与持久性之间的妥协: 磁盘io分为: 1.1、顺序IO(高效) 1.2、随机IO 因此引入:事务日志。 当存储一个数据时,双写: a、RAM(随机IO) b、事务日志(写入成功,代表数据存储完成。)(顺序IO) 定时刷RAM的数据到磁盘中,完成持久化。 关系型数据库:(适用) 阅读全文
摘要:
全文检索: 全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置, 当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。 全文检索的方法主要分为按字检索和按词检索两种。按字检索是指对于文章中的每一个字都建立索 阅读全文
摘要:
消息中间件的作用: 1、解耦 2、冗余(存储) 3、扩展性(增加生产者/消费者) 4、削峰 5、异步处理 6、保证顺序 消息通信标准: 1、JMS(Java Message Service):隐藏单独MQ产品提供商的实际接口。针对API编程,选择合适的MQ驱动(该驱动实现了JMS接口规范)即可随意切 阅读全文
摘要:
书籍源码: https://github.com/alibaba/p3c 第一章: 一、0和1的世界 1、位换算 1位 = 1bit (1b) 8b = 1Byte (1B) 1024B = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1P 阅读全文
摘要:
一、三次握手 三次握手流程: 甲:客户端机器发送链接请求:SYN=1,seq=x ; 乙:服务器机器响应链接请求:SYN=1,ACK=1,seq=y ; (y = x+1) 丙:客户端机器响应服务端:ACK=1,seq=x+1,ack=y+1 ; 三次握手的原因: a:确认双方都能首发报文。 b:防 阅读全文
摘要:
同步、异步、阻塞、非阻塞 网上的解析: 老张爱喝茶,废话不说,煮开水。 出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。 1 老张把水壶放到火上,立等水开。(同步阻塞) 老张觉得自己有点傻 2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞) 老张还 阅读全文
摘要:
一、概述: 1、NoSQL数据库(非关系型数据库) 2、文档存储 3、格式类似JSON,BSON 4、最终一致性(非ACID) , CAP定理(C 一致性,A 高可用,P 分区性) 5、高可扩展性(分片) 二、适用场景: 数据量大,无事务,非关系型,低价值的数据。 三、集群方式 1、复制集 缺点: 阅读全文
摘要:
环境: 持久层:JPA 数据库连接池:druid 数据库中间件:Mycat 数据库:Mysql 报错: Unable to acquire JDBC Connection 排查步骤: 方法一: 1、druid配置没有问题。 2、Mysql连接数正常,但是发现mysql有很多链接没有释放。(用root 阅读全文