摘要:
一、使用Elastic Stack构建搜索能力 (一)搜索场景和解决方案 搜索是互联网系统的底层基础能力。 1、搜索引擎的基本特性和应用场景 搜索引擎的业务特征:以文本为中心,以读取为主操作,面向文档,灵活的、非结构化数据模式、内容关联性 搜索引擎的技术特征:海量文档数据、可扩展、容 阅读全文
摘要:
一、引入ShardingSphere (一)分库分表理论和解决方案 1、对于 IM 聊天记录的存储的选型: 关系型数据库仍然是业务数据基石,因为关系型数据存有稳定性、可靠性和事务性的优势 但是如果用关系型数据库,就会存在单表容量问题:如MySQL单表千万级 为了解决单表瓶颈问题,就需 阅读全文
摘要:
一、Netty和网络通信 (一)Netty框架简介 1、BIO 存在性能问题、可靠性问题、可维护性问题 BIO的核心问题是同步阻塞 public void service() throws IOException { ServerSocket serverSocket = new S 阅读全文
摘要:
一、分布式服务体系 (一)分布式系统概述 单体系统存在业务扩展性(任何业务的调整都需要发布整个系统)、性能扩展性(动态扩容对单体系统而言效率低下)、代码复杂度(修改一处代码容易引发连锁反应)的问题。 系统扩展性,指的是当系统的业务需求发生变化时,我们对现在系统改动程度的一种控制能力。改动程度 阅读全文
摘要:
一、构建多租户机制 (一)多租户机制的设计方法 多租户是实现如何在多用户环境下共用相同的系统或程序组件,并且可确保各用户间数据的隔离性,多租户技术在共用的数据中心以单一系统架构与服务提供多数用户相同甚至可定制化的服务。场景可以分为业务集成(医院HIS系统/电商供应商对接)、开放平台(天气/地图/导航 阅读全文
摘要:
一、使用Mybatis-Plus对数据访问进行扩展 1、MyBatis-Plus开发模式 (1)为什么用Mybatis-Plus Mybatis的问题: 通过原生SQL语句操作业务数据,自动化程度不高;通过繁杂的XML配置来映射字段和属性,影响开发效率;对字段名称的识别和校验不友好,易出错且 阅读全文
摘要:
一、使用Springboot开发 WebAPI 1、Maven使用 (1)packaging的使用 通常的做法是先指定一个pom文件,做一个整体的框架,然后在pom中添加不同的子项目。 那么在父工程的pom文件中就需要指定packaging为pom <groupId>com.lcl.gala 阅读全文
摘要:
一、调度器 1、调度器简述 kube-scheduler 负责分配调度 Pod 到集群内的节点上,它监听 kube-apiserver,查询还未分配 Node 的 Pod,然后根据调度策略为这些 Pod 分配节点(更新 Pod 的 NodeName 字段)。 调度器需要充分考虑诸多的因素: 公平调度 阅读全文
摘要:
一、递归 0、递归概述 为什么要用递归而不用循环: 以n的阶乘为例,确实使用循环会更方便,但是使用递归的场景,一般是比较难以确认推导路径的,例如一棵树,要获取所有节点值的和,这样就不能使用循环了,就需要使用递归。 递归三要素: 定义需要递归的问题(重叠的子问题) 确定递归边界 保护和 阅读全文
摘要:
1、两数之和(简单) 题目地址:https://leetcode.cn/problems/two-sum/description/ 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只 阅读全文