分类 后端技术 下的文章

APP端扫一扫技术文档

CPSAPP端扫码相关知识 CPSAPP二维码内容专属字符串 二维码内容字符串由两部分组成路由|随机token 例如:login|ET822N04S41EFWRH。当然这里如果结构很复杂,推荐使用json 路由 路由是一个字符串,二维码字符串|前部分的字符串login,路由字符串决定了处理类。例如login指定了扫码登录相关的处理类。 随机token 16位随机字符串,大写。例如:ET822...

继续阅读 »

内部MySql使用规范

数据库环境 prod:线上环境,只允许管理员操作且要做操作记录方便回滚。 dev:开发环境,开发可读写,可修改表结构。且使用版本控制系统记录sql操作记录,方便上线时统一修改数据库。 命名规范 基本命名规则 使用有意义的英文词汇,词汇中间以下划线分隔,避免使用保留字 只能使用英文字母,数字,下划线,并以英文字母开头 库、表、字段全部采用小写,不要使用驼峰式命名 数据库、表,一律使用前缀...

继续阅读 »

微服务架构与RPC框架讲解

服务端架构的演变 微服务定义 维基上对其定义为:一种软件开发技术 - 面向服务的体系结构(SOA)架构样式的一种变体,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通。每个服务都围绕着具体业务进行构建,并且能够独立地部署到生产环境、类生产环境等。 后端架构演变 单体架构 业务初期用户...

继续阅读 »

Elasticsearch教程 — Document APIs

Elasticsearch文档的操作可以理解成MySQL中的增删改查操作。 单个文档操作 # 索引中添加数据,如果目标索引的文档已存在,则更新文档并增加版本。当不指定id时为创建文档。 PUT /<target>/_doc/<_id> POST /<target>/_doc/ PUT /<target>/_create/<_id>...

继续阅读 »

Elasticsearch教程 — Query DSL

查询语句核心语法部分 查询注意事项 text类型的查询都是基于分词后的词条查询的,例如"abcd"分词后"ab,cd"如果term查询"bc"就查不到。 query(查询)和filter(过滤)的区别 查询语句可同时存在query和filter。 query的查询字段会进行相关性_score的计算,而filter仅仅用来筛选。 Elasticsearch会自动缓存常用的过滤器,以提高性...

继续阅读 »

Elasticsearch教程 — Search APIs

搜索 API 用于搜索和聚合存储在 Elasticsearch 索引和数据流中的数据。时ES的核心语法之一。 核心搜索 # 搜索 # <target>(可选,字符串)要搜索的数据流、索引和别名的逗号分隔列表。支持通配符(*)。要搜索所有数据流和索引,请省略此参数或使用*或_all。 # 查询参数、查询正文参数很多,参考文档 # https://www.elastic.co/gui...

继续阅读 »

分布式ID生成器

需求背景 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足需求。此时一个能够生成全局唯一ID的系统是非常必要的。 特点 全局唯一,不能出现重复。 高性能,分布式系统中通常每秒会有很多数据产生。 单调递增,保证下一个ID一定大于上一个ID,这样可以保证某些索引快速建立。例如B-tre...

继续阅读 »

Elasticsearch教程 — Index APIs

类比MySQL,其主要操作是对表的增删改查,对于ES那么就是对索引的操作(index APIs)以及搜索(Search APIs)。搞清楚这两个知识点基本使用ES就没多大的问题了。当然这两个知识点只是ES的小部分功能,但是最重要。我们就从这两方面开始学起。 索引管理 约定: 指的是:索引名/数据流名/别名。 指的是:索引名 # 创建索引 PUT /<索引名> { # 索...

继续阅读 »

Elasticsearch教程 — 基本概念

Elasticsearch是什么 Elasticsearch是Elastic推出的基于Lucene的分布式、可扩展、高实时的搜索与数据分析引擎。 英文文档,基于7.15版本:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html Elasticsearch特点 详细特点参考官网:https://w...

继续阅读 »

阿里云访问控制中的RAM用户与角色管理相关概念理解

阿里云的访问控制系统中关于“RAM用户与角色” 官方文档:阿里云“访问控制”官方文档 起因 以前在做阿里云授权时,用过RAM授权,但是当时比较仓促,未理解其各个操作的含义,虽然操作没问题,但是不知其所以然(操作半天,授权这个授权那个的,晕晕乎乎的)。导致这些天再次操作时还是比较迷糊~ 今天就专门抽点时间梳理一下基本概念与操作的含义。 访问控制 访问控制(RAM)是阿里云提供的管理用户身...

继续阅读 »

活动列表一个SQL解决排序问题

排序需求 活动列表排序规则要求如下: 进行中/报名中,置顶的活动,置顶指数越高排越靠前 进行中,距离现在越近越靠前 报名中,距离现在越近越靠前 已结束,置顶的活动 已结束,距离现在越近越靠前的活动 实现SQL # 数据表结构 CREATE TABLE `cps_activity` ( `event_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMEN...

继续阅读 »

Redis原子操作与其业务场景

Redis单线程到底指什么? 执行 Redis 命令的核心模块是单线程的,而不是整个 Redis 实例就一个线程,Redis 其他模块还有各自模块的线程的。 Redis 的瓶颈并不在 CPU,而在内存和网络 其实,Redis 4.0 开始就有多线程的概念了,比如 Redis 通过多线程方式在后台删除对象、以及通过 Redis 模块实现的阻塞命令等。 由于redis命令核心是单线程的,所以操作...

继续阅读 »