随笔分类 - 项目实战 / 项目实战-客服
摘要:一、系统可用性常见策略及实现 (一)服务不可用问题和基本对策 服务访问失败原因有很多,例如分布式环境的固有原因、服务自身失败、服务依赖失败等。 其中分布式环境的固有原因是指在分布式环境中存在的的网络连接等问题,服务自身失败是自己代码编写的问题,这里着重解决服务依赖失败的问题。 如下图所示
阅读全文
摘要:## 一、Spring Security认证和授权 ### (一)安全性和Spring Security框架 1、从一个安全性应用场景说起 如下图所示,工单的生成需要使用用户的订单记录等数据,而这些数据保存在外部平台中;那么就需要用户将自己在订单管理平台上用户名和密码告诉工单系统,工单系统登
阅读全文
摘要:## 一、使用Nacos实现集中式配置管理 ### (一)配置中心模型 在微服务架构中,存在着多环境、多服务、多实例(集群化)的情况,那么就需要将一些配置信息集中的放在一个地方做统一管理,这就是配置中心的原型。 对于配置中心来说,要保证其隔离性、一致性、安全性和易管理性,隔离性是指如果有多个
阅读全文
摘要:## 一、微服务架构体系 ### (一)微服务架构基本概念 1、微服务三大要素 微服务不是一个纯技术概念,微服务架构三大要素:业务建模、技术体系、研发过程 (1)业务建模:业务架构 + 功能边界 对于一个复杂的业务而言,要想把它构建成微服务系统,就需要将系统进行拆分,拆分的前提就是要
阅读全文
摘要:## 一、使用分布式缓存Redis ### (一)分布式缓存和Redis 1、多级缓存 在一个简单的请求链路中,会经过Nginx、Redis、Tomcat、数据库,其中Nginx、Redis、Tomcat都有缓存存在,这也是常说的多级缓存。 2、缓存的作用与应用场景 使用缓存主要
阅读全文
摘要:## 一、事件驱动架构和原理 ### (一)事件驱动架构组成结构 1、事件和事件驱动架构 但凡在业务需求中出现如“当…发生…时、一旦出现…”等,描述时,我们就应该考虑是否需要在这些场景中引入事件。 所谓事件(Event),就是将系统中所发生的业务状态变更抽取出来形成一系列独立的对象。
阅读全文
摘要:一、使用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
阅读全文