Redis

一个失败的微服务项目

只愿长相守 提交于 2020-11-24 02:21:38
一个失败的微服务项目,这是我项目的总结.失败的主要原因是对微服务的滥用,本文将总结微服务在本项目中暴露出的缺点 项目简介 这是一个休息游戏项目,主线是喂养一只可爱的小狗, 通过玩内置小游戏,或者做任务积累狗粮.在整个过程中会随机掉落红包, 红包可以之间兑换少量RMB,游戏以用户点击广告作为主要收入, 用户转化是另一部分收入 项目概况 项目分游戏端和管理端 游戏端: 游戏大厅(主界面,包含:玩家信息\邀请\站内信\成长记录\签到等) 排行榜 幸运大盘 成长任务 多款小游戏 管理端: 基础权限管理 用户管理 提现 报表 版本管理 广告与渠道 维护 人员配置 策划 x2 美术 x3 音效 x1 游戏前端(Cocos) x3 游戏后端(java) x2 管理前端(vue) x2 管理后端(java) x4 测试 x2 运维 x2 运营 x1 后端架构 spring-cloud Hoxton.SR3作为微服务框架 nacos 做服务注册发现以及配置中心 swagger2 生成doc redis 做缓存 mysql mybatis + mybatis-plus 做持久层 kafka 做消息中间件 jwt 生成token elasticsearch 做报表 每个微服务由两个模块组成,一个模块api接口,一个模块对接口进行实现, api接口用@FeignClient进行注解

docker 安装Lepus

独自空忆成欢 提交于 2020-11-24 00:44:58
Lepus是一个由 Python +PHP开发的数据库企业级监控系统,可用于MySQL/ Oracle /MongoDB/Redis 1、下载镜像 docker pull georce/lepus 2、查看镜像 docker images 3、启动容器 docker run -d --name=lepus -p 32800:80 -p 32799:3306 georce/lepus docker run -d --name=lepus -p 32800(访问端口):80 -p 32799:3306 georce/lepus 4、查看进程 docker ps 进入docker bash sudo docker exec -it lepus /bin/bash 5、配置环境变量 echo $TERM export TERM=dumb 6、用户名密码 admin Lepusadmin WEB IP:32800 来源: oschina 链接: https://my.oschina.net/hongjiang/blog/4740160

阿里首发“架构技术攻略”限时开源!程序员一定要尽快确立发展方向和路线!从基础到源码,让你在大厂一站到底!

与世无争的帅哥 提交于 2020-11-23 20:44:39
前言 作为一名程序员,尽早确定自己的发展方向和路线是非常重要的,架构师则是其中的方向之一。很多程序员,奋斗大半辈子,是为了让自己成为一名合格且优秀的架构师,但是成为架构师并非一件易事,它对于技术方面的要求也是非常高的。 当然,大厂架构师更为值钱,那么想要进大厂做架构师,需要学习哪些技术呢?可能现在的你还比较迷茫,但实际上现在市面上有不少现成的架构技术路线,跟着路线学习起来则是非常容易的!今天要分享的,是看着一般,但读过之后会觉得真香的“架构技术攻略”,这套攻略由阿里技术官亲自推荐,从基础到源码,让你在大厂一站到底! 这套“Java架构技术攻略”包含A、B、C三个主题: A:性能直线提升架构技术 B:高效存储让项目起飞 C:设计思想解读开源框架 文章内容有限,不可能将这套攻略全部写出来,完整pdf版的架构攻略,扫下方二维码或添加下助理vx:YDT737 即可免费领取。 A.性能直线提升架构技术 1.Zookeeper 基础(入门+安装及应用+指令速解) 进阶(原生客户端解析+zkclient应用+curtor快速开发) 实战(集群选举+分布式) zk高级技能(底层+拜占庭将军问题+Paxos+解读Raft算法) 2.Nginx 基础(安装及使用+实现Nginx分流) 进阶(Nginx进程模型及配置详解+location规则+rewrite解析) 实战(动静分离,反向代理及跨域

Spring Cloud Gateway全链路实现

China☆狼群 提交于 2020-11-23 20:38:13
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。而诸多的服务可能分布在了几千台服务器,横跨多个不同的数据中心。为了快速定位和解决故障,应用性能进行分析,全链路监控组件就在这样的问题背景下产生了。最出名的是谷歌公开的论文提到的Google Dapper。本文主要介绍了Spring Cloud Gateway全链路实现解决方案。主要讲解全链路原理和方案;最后分享如何实现探针全链路。 全链路原理 主流的全链路方案都是采用谷歌公开的论文提到的Google Dapper方案。 一个Span表示一个服务的调用开始到结束。 如果一个Span没有父ID则被称之为入口Span,需负责生成本次链路调用全局唯一的TxId。 如果服务间有调用,则透传TxId、SpanId和pSpanId,每个SpanId需重新生成,pSpanId采用调用方的SpanId。 被调用服务需将透传的头信息恢复,继续透传后续节点。 最终根据Span的关联性生成链路树。 将应用以角色进行区分,分为Server端和Client端。 Server端负责接收请求,其流程主要分为三步: 创建入口Span 解析并恢复上游头信息: TxId、SpanId和pSpanId 结束入口Span Client端负责发送请求,其流程也分为三步: 创建子Span 传递给下游头信息:TxId

使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法

馋奶兔 提交于 2020-11-23 20:32:51
使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法 参考文章: (1)使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法 (2)https://www.cnblogs.com/xikui/p/12038222.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4432649/blog/4739967

redis-分布式布隆过滤器(Bloom Filter)详解(初版)

随声附和 提交于 2020-11-23 19:38:59
redis-分布式布隆过滤器(Bloom Filter)详解(初版) 1 布隆过滤器(Bloom Filter)原理以及应用 假设现在有50亿个电话号码,现在有1万个电话号码,需要快速判断这些电话号码是否已经存在? 现在有3中途径 1 通过数据库查询,但是不能快速查询。 2 把电话号码预先放在一个集合中,如果用long类型存储的话,50亿 * 8字节 = 大于需要40GB(内存浪费或者严重不够) 3 使用redis的hyperloglog,但是准确度不高。 类似的问题: 垃圾邮件过滤 文字处理中的错误单词检测 网络爬虫重复URL检测 会员抽奖 判断一个元素在亿级数据中是否存在 缓存穿透 而布隆过滤器则可以解决上述问题 1 什么是布隆过滤器 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。 当一个元素被加入集合时,通过 K 个 Hash 函数将这个元素映射成一个位阵列(Bit array)中的 K 个点,把它们置为 1。检索时,我们只要看看这些点是不是都是 1 就(大约)知道集合中有没有它了: 如果这些点有任何一个 0,则被检索元素一定不在; 如果都是 1,则被检索元素很可能在。

高德全链路压测

有些话、适合烂在心里 提交于 2020-11-23 17:39:53
导读 作为国民级出行生活服务平台,高德服务的稳定性不论是平时还是节假日都是至关重要的,服务稳定性一旦出问题,可能影响千万级甚至上亿用户。春节、十一等节假日激增的用户使用量,给高德整体服务的稳定性带来了不小的挑战。每年在大型节假日前我们都会做整体服务的全链路压测。通过常态化全链路压测项目的推进,已具备了月度级别的常态化全链路压测能力,把战前演练提到日常,持续推进稳定性保障建设。 TestPG压测平台2018年9月启动,在2019年春节第一次支撑高德全链路压测任务,当时前后花了近2周的时间才完成3个机房的压测任务。后来成立了常态化全链路压测项目,通过对流程的优化以及压测平台技术能力的升级,现在已经具备了1天内完成全国3个机房全链路压测的能力。大型节假日的全链路压测周期缩短到了3天。 全链路压测的常态化不仅对高德整体服务的稳定性建设起到了推动作用,而且也推动了流程上的优化以及压测平台在技术能力上的改进提升。具体而言,我们主要从压测前的语料准备和压测过程中的压力调控两个方面入手,通过语料平台化生产,规范语料生成流程,对语料生产提效;通过压测过程中对发压能力的精准调控,使我们能够灵活调整压力模型,从而使其更加接近于线上真实情况,让全链路压测过程平滑流畅,效率提升。本文会重点介绍TestPG压测平台在发压能力精准调控方面的建设实践。 压力调控的两个主要问题

知其所以然~redis的原子性

半城伤御伤魂 提交于 2020-11-23 09:46:48
原子性 原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。 对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。 Redis操作原子性的原因 Redis的操作之所以是原子性的,是因为Redis是==单线程的==。 由于对操作系统相关的知识不是很熟悉,从上面这句话并不能真正理解Redis操作是原子性的原因,进一步查阅进程与线程的概念及其区别。 进程与线程 进程 计算机中已执行程序的实体。比如,一个启动了的php-fpm,就是一个进程。 线程 操作系统能够进行运算调度的最小单元。它被包含在进程之中,是进程的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。比如,mysql运行时,mysql启动后,该mysql服务就是一个进程,而mysql的连接、查询的操作,就是线程。 进程与线程的区别 资源(如打开文件):进程间的资源相互独立,同一进程的各线程间共享资源。某进程的线程在其他进程不可见。 通信:进程间通信:消息传递、同步、共享内存、远程过程调用、管道。线程间通信:直接读写进程数据段(需要进程同步和互斥手段的辅助,以保证数据的一致性)。 调度和切换

Linux & Windows 环境下 Redis 安装与基本配置

被刻印的时光 ゝ 提交于 2020-11-23 08:25:21
索引: 目录索引 参看代码 GitHub: redis.txt 一、Linux (DeepinOS) 环境 1 1 .安装Redis服务 2 sudo apt-get install redis- server 3 2 .启动服务 4 /etc/init.d/redis- server start 5 3 .连接服务 6 redis- cli 7 连接 8 quit 9 退出 10 4 .修改配置 11 sudo vim /etc/redis/ redis.conf 12 密码 -- #requirepass foobared去掉注释,foobared改为自己的密码 13 5 .redis服务操作 14 sudo ./redis- server restart 15 如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/ 重启redis 16 /etc/init.d/redis- server stop 17 /etc/init.d/redis- server start 18 /etc/init.d/redis- server restart 19 如果是通过源码安装的redis,则可以通过redis的客户端程序redis- cli的shutdown命令来重启redis 20 redis-cli -h 127.0 . 0.1 -p

在线教育软件开发方案要侧重哪方面

陌路散爱 提交于 2020-11-23 08:23:50
当代,我们的生活节奏不断加快,逐渐进入了快消费时代,在线教育软件顺应时代潮流而走进大家的视野中,与传统教育方式相比,在线教育提高了我们的学习效率,让我们在更短的时间内学到各种知识,提高我们的能力。所以深受用户喜爱,在线教育软件开发商看到了发展的契机,纷纷顺势而上。 在线教育软件开发开发能够使教育机构大大减少推广费用,免费在线捕捉到新商机,全自动检索潜在的学员,轻轻松松制定全部教学环节,并按照地域,课程内容和学员自身的的要求考虑所有模式的学习培训的要求状况。 现阶段,在线教育软件开发的兴起大部分集中在婴幼儿早教和外语学习行业。这一数据依然大部分与海外相关,但排行较高的大部分是国内申请办理。那么,在线教育软件开发的开发方案是怎样的呢?要侧重哪方面呢? 在线教育软件开发方案要侧重哪方面 1、要实现准确定位 在线教育APP开发准确定位十分关键,适时升级和推新课标,新课标等信息内容发掘潜在用户。APP开发公司在在线教育APP开发时要充分的掌握学员的要求。它们的主要目标是为学员带来更多的更合适的学习方式,鼓励孩子的自学能力,让其喜欢上学习培训,积极开展学习培训。 2、无论是任何时间地点都能调整学习的方法 你都能够随时开启智能手机学习培训。在学习培训中,能够报名参加很多互动交流活动内容,提高记忆力,增强学习效率。了解在线教育APP开发带来的內容,打破相同性。在线教育软件开发应当主题鲜明