
分布式
文章平均质量分 63
小小码农日渐积累
Java学习 点滴积累。
展开
-
Erlang并发编程总结
并发编程使用并发spawn创建一个并行进程, send向某个进程发送消息, receive则是接收消息Erlang的并发是基于进程( process)的。进程是一些独立的小型虚拟机,可以执行Erlang函数 ,在Erlang里,进程隶属于编程语言,而非操作系统。Erlang中的进程会执行某个特点方法,并且执行过程是以一个并发的形式执行的spawn(Mod, Func, Args) -> Pid,进程标识符 ,以用Pid来给此进程发送消息可以使用 Pid ~Message 的形式给进程Pid原创 2022-04-21 09:57:42 · 967 阅读 · 0 评论 -
秒杀抢红包的思考和总结
序言这是一个导师的作业,要求在理论上实现发红包、抢红包的操作,且不使用Redis、MQ等不属于Java语言的技术,思考如何做秒杀内容。因此记录下整个作业流程,方便以后学习。需求描述在游戏中,玩家A向全服玩家发送红包,其他玩家可以通过“抢红包”的操作来获得红包中的部分奖励尝试思考,当有1000名玩家几乎同时发起“抢红包”操作时,如何保证每个玩家的操作延时在 10ms以下?文章目录序言需求描述(一) 实现思路和难点论证实现思路难点论证(二) 整体流程和伪代码整体流程代码及数据库设计(三) 关键逻辑原创 2022-02-28 21:10:08 · 1361 阅读 · 1 评论 -
使用RedisTemplate实现分布式乐观锁
前言使用乐观锁能够在不上锁的情况下实现线程安全,常用的实现方式就是使用CAS自旋的形式实现。通常在分布式系统中有三种实现方式数据库行级锁Zookeeper实现分布锁Redis实现乐观锁三种方式各有优点,其中Redis和Zookeeper最常用,Redis性能最高,Zookeeper可靠性最高代码实现基于RedisTemplate,封装使用,通过IOC控制的方式实现:import entity.StatusCode;import exception.CourseException;原创 2021-11-25 15:22:05 · 1896 阅读 · 1 评论 -
微信小程序统一封装request请求,统一拦截校验
前言因为用习惯了Vue的axios,将请求统一封装,这样可以编写一处请求,然后让需要的模块直接引用调用即可,同时也可以做拦截器,token状态刷新等等操作,或者响应特定的东西。因此就试着封装request,并且使用风格上尽量偏向于跟vue admin template里的request类似,这样也好让自己上手。代码实现封装wx.request,在utils创建文件,request.js:const app = getApp();var baseURL = app.getURL();//将url定原创 2021-11-01 09:42:41 · 4536 阅读 · 1 评论 -
SpringBoot使用自定义注解校验Token及角色权限
最近学习时,自己项目中用到了Token,涉及到User和Admin两个角色,普通的用户并没有很大的权限,和Admin拥有较大的权限。每次在写代码前都需要重复校验角色,根据角色来决定是否有操作这个接口的权限。项目没有涉及到RBAC模式,就划分Admin和User,因此思路还是比较好理解的。1.定义一个Token注解import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lan原创 2021-09-23 15:19:17 · 1396 阅读 · 0 评论 -
让微服务只允许来自网关的请求
让微服务只允许来自网关的请求一般各个微服务的请求都是通过网关转发的,但是想要让微服务只允许来自网关的请求,可以操作:在网关中:添加一个参数systemFrom,值为gateway,一起转发给微服务,微服务只需要判断值是不是gateway即可@Componentpublic class AuthorizeFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(Server原创 2021-09-20 17:19:14 · 2813 阅读 · 1 评论 -
解决SpringCloud Gateway网关跨域问题
前后端分离项目,非同源地址会发生跨域问题。因此需要解决跨域问题总的来说,解决方案:NGINX解决跨域问题在网关处解决跨域问题这里记录自己在网关处解决跨域的方法:技术:Springcloud Gatewayspringboot版本:2.1.4方法1:在application.xml:spring: cloud: # 跨域配置 gateway: globalcors: cors-configurations: '[/**]': #原创 2021-09-20 17:10:33 · 3138 阅读 · 1 评论 -
利用RabbitMQ的TTL实现延迟队列
在这里插入图片描述原创 2021-06-08 22:07:50 · 250 阅读 · 3 评论 -
Eureka及Nacos微服务开发常用配置
微服务开发常用配置父工程Maven<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven原创 2021-05-31 18:57:18 · 275 阅读 · 0 评论 -
Redis复习-主从复制-哨兵-雪崩等-面试知识总结
Redis知识汇总-含面试知识总结(一) Redis简介简介与使用场景Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言 编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API ——源自百度百科。Redis是属于NoSql系列的非关系型数据库,广泛应用于缓存。应用场景:(1)为热点数据加速查询(主要场景)。如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。(2)即时信息查询。如各位排行原创 2021-05-30 20:39:15 · 254 阅读 · 3 评论