- 博客(15)
- 收藏
- 关注
原创 day12 实战需求
1 在git中获取基础微服务代码2 将数据库中的取派件任务表sl_work.sl_pickup_dispatch_task中的数据存储到es中,后续任务搜索查询es即可test代码:查询所有取派件任务及相关订单的实体,封装为entity实体存储到es中3 mq代码。
2024-10-26 14:36:21
741
1
原创 day11-分布式日志与链路追踪
GrayLog是一个轻量型的分布式日志管理平台其基本框架如图:微服务中的GrayLog客户端发送日志到GrayLog服务端GrayLog把日志信息格式化,存储到Elasticsearch或MongoDB可视化:客户端通过浏览器访问GrayLog,GrayLog访问Elasticsearch这里MongoDB是用来存储GrayLog的配置信息的,这样搭建集群时,GrayLog的各节点可以共享配置。效果如下:面试点:linux查看日志使用命令面试:elk中怎么看日志,都显示的什么内容。
2024-10-21 21:50:32
589
原创 day10-物流信息微服务
reids订阅频道,使redis像mq一样可以群发消息。但由于reids没有可靠性,重试机制的处理。故只在清理缓存的时候使用。
2024-10-18 19:06:50
712
原创 day09-智能调度之取派件调度
*** 新增取派件任务* @param taskPickupDispatch 取派件任务信息* @return 取派件任务信息*/此方法的实现,调用自定义Mapper中的SQL实现。SELECTWHERE</select>COUNT(1)中的1表示常量,与COUNT(0),COUNT(*)结果相同,都为统计行数其中item="courierId"与#{courierId}的名称需要相同,意义为集合中的每一项的命名和传参。取什么名字都可以,但二者需相同。
2024-10-17 09:03:35
980
原创 day08-智能调度之作业范围
每个营业网点可以在地图上画一个多边形范围(多个坐标点组成,首尾坐标点相同),存储到MongoDB数据库中,使用MongoDB提供的方法intersects(),只需将参数坐标点传入。db.user.find({age:{$lte:21}, id:{$gte:2}}) #and查询,age小于等于21并且id大于等于2。在项目中,会有两个作业范围,分别是机构作业范围和快递员作业范围,这两个作业范围的逻辑是一致的,就是在地图中进行画出范围,就是其作业范围。数据模型即表的字段(MongoDB中1数据a,b字段。
2024-10-11 08:26:00
987
原创 day07-智能调度之运输任务
路线上设置车次,每一个车次设置车辆计划,车辆计划与车和司机有关(车有营业执照,类型。前面将运单合并,合并之后就需要进行调度计算(按照车辆的运力生成运输任务),以及司机的作业单,进入到司机与车辆的运输环节。3.3获取公平锁(避免分布式装车操作时,将一个用户的货装到不同的车次,当一辆车装满时仍有可能装到两个车)司机入库就意味着车辆入库,也就是此次运输结束,需要开始下一个运输、结束此次运输任务、完成司机作业单等操作。3计算加上redislist右侧这个订单货物的车辆总重量,总体积(注意写法,使用stream)
2024-10-09 10:34:02
846
原创 day06-智能调度之调度任务
Leaf 取号段的时机是在号段消耗完的时候进行的,也就意味着号段临界点的ID下发时间取决于下一次从DB取回号段的时间,并且在这期间进来的请求也会因为DB号段没有取回来,导致线程阻塞。当前号段已下发10%时,如果下一个号段未更新,则另启一个更新线程去更新下一个号段。对于运单号的生成有特殊的要求,格式:SL+13位数字,例如:SL1000000000760,对于这个需求,如果采用MP提供的雪花id生成是19位,是不能满足需求的,所以我们需要自己生成id,并且要确保唯一不能重复。
2024-09-28 15:54:03
581
原创 day5-神领物流-路线规划之微服务
mq应用整合在base微服务中,并提供两个sendMsg发消息接口。其他微服务只需调用接口即可使用mq。优点:将mq发消息,可靠性处理整合到一个微服务中。其他微服务简化了开发成本缺点:增加了http请求的开销,增加了时长。(从直接发送到mq变为,发送到base->mq)(在微服务不断交互的本项目中,增加一次互相调用可以接受。另将这些微服务部署到同一个内网中,性能较好)另:base微服务使用集群工作,不用担心宕机后不可使用。
2024-09-10 17:13:34
664
原创 day4-神领物流-路线规划Neo4j入门
路线规划需求分析路线规划实现方案分析了解怎么用即可学习Cypher入门学习Spring Data 操作Neo4j,Cypher语句注:主要学习一些技术,day5为实际开发。
2024-09-06 12:37:04
51
原创 day3-神领物流-支付微服务研发(实际开发)
支付流程:细节:数据库表怎么设计的,渠道是做什么的,如何动态获取支付方式的(注解+handler容器+ioc)反射。
2024-09-05 16:05:12
701
2
原创 day2-神领物流-运费服务研发
本项目中,在接收参数,微服务间调用,返回参数都使用DTO对象。在service中对数据库进行操作时用entity对象。这里需要将DTO对象(比entity对象多几个属性)使用项目提供Utils转换为entity对象有些项目可能多一个VO对象作为返回参数对象在神领物流项目中,我们统一做了自定义异常的处理。com.sl.transport.common.exception.SLException(用于微服务之前接口调用抛出的异常)
2024-06-25 20:54:20
705
原创 MySQL两大引擎:InnoDB和MyISAM区别
1、InnoDB 支持事务MyISAM 不支持;2、InnoDB 支持外键;3、InnoDB 是聚集索引,MyISAM 是非聚集索引等。InnoDB 支持事务MyISAM 不支持事务。这是 MySQL 将默认存储引擎从 MyISAM 变成 InnoDB 的重要原因之一。
2024-06-21 12:55:28
275
原创 day1-神领物流项目(基于微服务的物流项目)概述
神领物流是一个基于微服务架构体系的【生产级】物流项目系统,最接近企业真实场景,按照企业标准编写。物流公司在扩张后要打造一套新的TMS运输系统。业务侧重于展示车辆调研、线路规划等核心业务流程,操作智能化,大幅度提升人效及管控效率。教学级的项目会在真实项目基础上做阉割。此项目除去自己开发的代码,其他代码也都在项目中。项目组属于开发部门,开发部门有仓储系统WMS、运配系统TMS、单据系统OMS、计费系统BMS。项目四组。TMS项目组目前共8人,其中前端3人,后端5人,分模块开发。
2024-06-19 16:32:57
960
1
原创 使用ip加端口号和使用域名访问服务-概念及例子
在企业内部,虚拟机通常会有一个分配的IP地址。为了访问运行在虚拟机上的不同服务或软件,可以通过IP地址加上特定的端口号来进行访问。在企业环境中,为了方便用户访问和记忆,可以通过域名来访问不同的软件服务。这些域名可以通过DNS(域名系统)解析到对应虚拟机的IP地址。假设有一台虚拟机的IP地址是。
2024-06-15 11:24:39
1796
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人