10 2024 档案
摘要:MySQL分布式锁 利用MySQL的特性:主键或者唯一索引值是唯一的。 Redis分布式锁 原理 使用setnx key value,setnx = set if not exists,也就是只有当key不存在时才set,key存在时不做任何操作。 获取锁:setnx key value 释放锁:d
阅读全文
摘要:分布式事务是为了保证不同数据库的数据一致性。 基础理论 CAP理论 在一个分布式系统中,CAP三者不可兼得。 Consistency:一致性 Availability:可用性 Partition:分区容错性 BASE理论
阅读全文
摘要:Remote Procedure Call,希望远程调用可以像本地函数调用一样简单,不需要了解底层网络技术。RPC的概念在HTTP之前,RPC是一种思想、一种解决远程过程调用的技术,而HTTP是一种应用层的传输协议。 常见的RPC框架:Thrift
阅读全文
摘要:微服务之间的通讯方式 同步通讯:HTTP、RPC之类的,异步通讯:消息队列。 RESTful API RPC 详见 API Gateway
阅读全文
摘要:深度分页 select id, a, b from table where a = "xx" limit 10000, 10 (1) inner join (2) id 索引,减少回表 select * from id > xxx limit 10
阅读全文
摘要:规则引擎 主要思想是将应用程序中的业务决策部分分离出来,使用预定义的语义模块编写业务决策,由用户或开发者在需要时进行配置、管理。目前市面上具体的规则引擎产品有:Drools、VisualRules、iLog等。 使用规则引擎的优势: 业务规则与系统代码分离,实现业务规则的集中管理 在不重启服务的情况
阅读全文
摘要:Socket Socket就是个代码库或接口层,介于操作系统内核和应用程序之间,提供了一些高度封装过的接口,使应用程序能够使用内核的网络传输功能。 在操作系统内核空间里,实现网络传输功能的结构是sock,基于不同的协议和应用场景,会被泛化为各种类型的sock,它们结合硬件,共同实现了网络传输功能。为
阅读全文
摘要:Thrift是一个轻量级、跨语言的RPC框架,主要用于各个服务之间的RPC通信。最初由Facebook于2007年开发,2008年进入Apache开源项目。通过自身的IDL(Interface Definition Language)接口定义中间语言,借助代码生成引擎生成各种主流语言的RPC服务端/
阅读全文
摘要:介绍 Maven 是一个跨平台的构建工具,提供了一套标准化的构建流程和依赖管理机制。构建主要包含以下环节:清理、编译、测试、报告、打包、安装、部署。 Maven项目结构 pom.xml:项目描述文件 src/main/java src/main/resources src/test/java src
阅读全文