12.RabbitMQ

老大夫 发布于 2024-08-31 11:27
代驾:RabbitMQ 一、RabbitMQ 学习目标: 能够说出Rabbitmq应用场景 能够说出Rabbitmq消息不丢失解决方案 掌握Rabbitmq实现普通消息的收发 掌握Rabbitmq实现延迟消息 基于Rabbitmq消息队列实现商品数据同步 基于Rabbitmq消息队列实现订单延迟关闭 1、目前存在的问题 订单服务取消订单问题 乘客下单后,...

long和Long的区别

老大夫 发布于 2024-08-31 08:38
单独拿出来看很明显 在代码中L的大小写直接决定了是包装类还是基本类型 基本类型是不允许有null值的,所以报错的原因就是大写L写成了小l

Consider defining a bean of type 'org.springframework.data.mongodb.core.MongoTemplate' in your configuration.报错原因

老大夫 发布于 2024-08-31 03:23
居然是pom文件依赖问题,明明已经引入了,重写一下就不报错了 换成 <!--mongodb--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...

11.订单执行3

老大夫 发布于 2024-08-30 23:54
代驾:订单执行 一、结束代驾 司机到达代驾终点,就可以结束代驾了,结束代驾我们要输入其他费用(路桥费、停车费与其他费用)、计算订单实际里程、计算代驾实际费用、系统奖励、分账信息与生成账单。 1、计算订单实际里程 订单实际里程其实就是把MongoDB中该订单的GPS定位坐标都给取出来,以时间排序,连接成连线,这个线的距离就是时间里程。 1.1、地图微服务接口...

10.订单执行2、MongoDB入门

老大夫 发布于 2024-08-29 19:48
代驾:订单执行 一、MongoDB入门 1、MongoDB 1.1、MongoDB 概念 1.1.1、什么是MongoDB MongoDB 是在2007年由DoubleClick公司的几位核心成员开发出的一款分布式文档数据库,由C++语言编写。 目的是为了解决数据大量增长的时候系统的可扩展性和敏捷性。MongoDB要比传统的关系型数据库简单很多。 在Mong...

9.订单执行1

老大夫 发布于 2024-08-28 12:30
代驾:订单执行 一、加载当前订单 无论司机端还是乘客端的小程序,如果遇到微信闪退、页面切换、重新登录小程序之后,只要页面回到首页,都必须加载当前的订单,然后跳转到当前订单的执行状态页面。 前面我们写了模拟接口,当前我们来把这部分接口实现了。 司机端效果如图(乘客端类似): 1、乘客端查找当前订单 1.1、订单微服务接口 1.1.1、OrderInfoCon...

8.分布式事务

老大夫 发布于 2024-08-28 12:27
代驾:分布式事务 一、分布式事务Seata 1、事务回顾 1.1、什么是事务 提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。 1.2、事务的作用 保证数据一致性 1.3、事务ACID四大特性 A:原子性(Atomicity) 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事...

Redis分布式锁的实现方式

老大夫 发布于 2024-08-27 20:35
1. Redis原生方法 Redis的setnx在代码中是RedisTemplate.setIfAbsent(并不是.setnx) 注意为了防止在过程中异常导致无法释放锁,需要设置过期时间来解决,但是仍然存在问题,如果业务7秒处理,锁三秒释放,会出现释放不属于自己的锁的情况(锁是一个共用的,别人用着呢就被释放了) 使用UUID给锁加上唯一标识来解决误...

测试工具jmeter

老大夫 发布于 2024-08-27 18:03
多线程访问测试工具 配置好java环境后,双击bin目录下的jmeter.bat 下载地址:https://www.ilanzou.com/s/OEYyMvSu?code=ssdp

乐观锁

老大夫 发布于 2024-08-27 16:12
乐观锁就是在数据库记录后面加上 version版本号进行识别 当两个进程同时修改同一条记录时 两个进程同时读取到数据,此时version版本号为0 进程一率先完成修改并且提交修改,同时修改版本号为1 进程二落后一些,在提交的时候读取版本号version发现是1而不是刚才读取到的0,此时不能提交 乐观锁避免了并发“超卖”的问题

Caused by: java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed; (不允许公钥检索)【解决办法】

老大夫 发布于 2024-08-27 14:05
解决办法:https://blog.csdn.net/qq_45037155/article/details/126260002 解决方法: 在数据库连接 URL 中添加参数allowPublicKeyRetrieval=true。 例如,如果你的连接 URL 是jdbc:mysql://localhost:3306/your_database, 修改为jd...

7.司机抢单

老大夫 发布于 2024-08-27 07:50
代驾:司机抢单 一、开启接单服务 前面乘客已经下单,新订单消息已经加入司机临时队列,接下来我们把司机端的开启接单到抢单的流程写一下。 开启接单我们要做哪些操作呢? 1、判断司机认证状态,只要认证通过了的司机才能接单,司机登录信息包含司机认证状态(已开发) 2、判断司机当日是否已做人脸识别,司机每天必须做一次人脸识别,如果未做,跳转到人脸识别页面 3、更新司机...

微信开发者工具双击没反应打不开

老大夫 发布于 2024-08-26 21:45
微信开发者工具双击没反应,打不开,前两天还能用呢,今天测试代码崩溃了 解决办法参考:https://developers.weixin.qq.com/community/minihome/article/doc/000ee4b8bfcee072932ef5d4156813 我的解决路径 下载: https://dldir1.qq.com/WechatWebD...

Redis的Geo功能,方便存储位置信息

老大夫 发布于 2024-08-20 10:54
添加、删除方法 查询使用方法

6.乘客下单(二)

老大夫 发布于 2024-08-19 21:22
乘客下单(二) 一、搜索附近司机 1、Redis的Geo功能 前面我们创建了订单,但是略过了寻找附近适合接单的司机。接下来完善这部分功能,那就先来看看怎么查询附近的司机吧。假设司机端的小程序实时把自己的GPS定位上传,然后定位信息缓存到Redis里面。咱们怎么能利用Redis计算出,上车点方圆几公里的司机都有谁呢?这就需要使用Redis的Geo功能。 htt...