工作笔记
文章平均质量分 77
coolgwayne
这个作者很懒,什么都没留下…
展开
-
厚积薄发打卡Day92: MongoDB + RabbitMQ 构建消息推送功能(下)<RabbitMQ简易入门与整合>
产品选用消息队列产品有很多,比如说常见的有Kafka、RocketMQ、RabbitMQ和ActiveMQ:其中了解后Kafka的性能是最好的,并发量比较大,而且消息收发的速度也非常快。但是消息收发的可靠性上,Kafka不如RabbitMQ,而且技术选型的时候执行速度并不是唯一标准,开发效率、易用性也是需要考虑的。RabbitMQ具有支持消息异步收发,又支持同步收发的特点,虽然现在大部分的场景对应的是消息异步收发,但是有的场合要支持消息的同步收发,这时候RabbitMQ能适应各种业务场景的优点就显现原创 2021-10-08 00:31:10 · 501 阅读 · 0 评论 -
厚积薄发打卡Day91: MongoDB + RabbitMQ 构建消息推送功能(中)<MongoDB消息对象>
MongoDB集合:Message消息对象集合有什么字段,取决于保存在其中的数据。下面这张表格是Message集合中JSON数据的结构要求:字段类型备注_idUUID自动生成的主键值uuidUUIDUUID值,并且设置有唯一性索引,防止消息被重复消费senderIdInteger发送者ID,就是用户ID。如果是系统自动发出,这个ID值是0senderPhotoString发送者的头像URL。在消息页面要显示发送人的头像senderNa原创 2021-10-08 00:28:05 · 239 阅读 · 0 评论 -
厚积薄发打卡Day90: MongoDB + RabbitMQ 构建消息推送功能(上)<环境搭建及MongoDB入门>
业务背景消息系统需求实现:需要记录消息本身,以及消息发送对象消息发送后,需要在客户端显示消息的已读、未读的提示。思路:假如只是单纯消息发送,不管有无看到(类似 UDP连接),则直接创建消息表存消息即可。但需要记录用过户已读、未读消息则需要多建用户消息记录表,同时向n个用户发送m条消息则需要在数据表中记录m*n条数据,发送消息的瞬间将有大量的性能损耗在数据库读写上,此时传统的关系型数据库则会严重影响整个系统的运行。因为消息模块的要存储的数据量太大,普通MySQL读写消耗开销过大映像性能,所原创 2021-10-08 00:26:25 · 629 阅读 · 0 评论 -
厚积薄发打卡Day89: Springboot整合JavaMailSender实例
背景:在某个业务执行签到时,会根据疫情风险等级判断是否发送告警邮件:如果员工的签到地点为中高风险地区则需要发送邮件给对应人事进行告警。在签到过程中的业务逻辑相对耗时,且需要保存数据同步执行;如果发送邮件再做成同步执行的,势必导致签到执行时间过长,影响用户体验。而发送邮件跟保存签到数据没有直接关联,所以使用异步执行能提高用户体验。参考:spring-boot @Async 的使用、自定义Executor的配置方法 SpringBoot整合JavaMailSender实现邮件发送整合:原创 2021-10-06 22:32:06 · 269 阅读 · 0 评论 -
厚积薄发打卡Day88: 利用Swagger2搭建REST-API前后端调试
官网链接:https://swagger.io/solutions/api-design/使用指南:使用Swagger2自动生成API接口文档背景:对于前后端分离的项目,前后端的工程师协同开发,在这种开发模式下,维持一份及时更新且完整的 Rest API 文档将会极大的提高我们的工作效率。传统意义上的文档都是后端开发人员手动编写的,相信大家也都知道这种方式很难保证文档的及时性,这种文档久而久之也就会失去其参考意义,反而还会加大我们的沟通成本。而Swagger 给我们提供了一个全新的维护 API .原创 2021-10-06 17:16:33 · 167 阅读 · 0 评论 -
厚积薄发打卡Day87: 利用Jsoup解析地区疫情风险等级
背景:在某个业务需求中,需要针对用户对应的位置信息获取对应的疫情风险等级,目前市面上找不到对应的接口,不过在本地宝中可以通过H5的GET接口可以查询到对应具体某地的疫情风险信息,如图:http://m.bendibao.com/news/yqdengji/?qu=%E9%BE%99%E5%B2%97%E5%8C%BA可通过页面元素找到对应元素获取对应的位置信息:同时观察对应的get接口,可以看到URL地址要传入两个参数:城市编码和区县,(深圳例外:直接bendibao),如查询广州珠海的疫情原创 2021-10-06 17:13:26 · 693 阅读 · 0 评论 -
厚积薄发打卡Day86: Shiro+JWT+Redis实现微信小程序实现单点登录(下)<整合Shiro>
生成了Token后,这个Token是需要返回给客户端的,用于登录。接下来要把JWT和Shiro框架整合起来,这样Shiro框架就会拦截所有的Http请求,然后验证请求提交的Token是否有效:整合步骤:配置文件:ShiroConfig:把设置应用到Shiro框架AuthenticatingFilter:拦截HTTP请求,验证TokenAuthorizingRealm:自定义认证与授权的实现方法AuthenticationToken:把 Token封装成认证对象自底向上实现封装Token原创 2021-10-06 17:10:51 · 649 阅读 · 0 评论 -
WorkNote_Day68:认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass
在学习zookeeper中偶然接触到了 Junit 中除了@Test 外的用法,特此转载记录原文地址:Junit 实例精讲基础教程(一) 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClassJunit官网:http://junit.org/junit4/关于Junit,官文甚至不做过多解释:Junit只是一个用于单元测试的小框架,是基于xUnit架构的一个实现。更多精彩请阅读 东陆之滇的csdn博客:http://blog.csdn..转载 2021-06-27 11:09:44 · 155 阅读 · 0 评论 -
WorkNote_Day65:MySQL 与 Oracle 的两表关联更新
在工作中经常遇到某种数据处理的场景:A表与B表存储着相同的字段,需要将B表中某列数据对应地更新到A表中可以用代码实现,遍历匹配即可~~(好像没有啥是代码解决不了的哈哈)~~,但是数据库的解决方法会更加高效,但实操起来mysql 与 oracle 略有不同,在此特地记录学习。MySQL :MySQL对此的操作较为简单直接:T1表:T2表:现需要将T2表中的value值根据tname更新到t1表中,执行语句:UPDATE T1JOIN T2 ON t1.TNAME原创 2021-06-16 23:10:09 · 323 阅读 · 0 评论 -
WorkNote_Day60:踩坑HTTP升级HTTPS
最近公司因业务需求,需要将门户和相应的系统从HTTP升级到HTTPS,具体升级步骤由实施完成,过程参考:使用nginx把http向https升级本文着重概念汇总与踩坑的问题解决(就当复习计算机网络了)通俗易懂漫画版:漫画:什么是 HTTPS 协议?强推????????什么是HTTPhttp协议简介介绍了:HTTP请求内容、HTTP响应内容和URL内容HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide原创 2021-05-24 21:04:02 · 225 阅读 · 0 评论 -
WorkNote_Day58:手动删除Activiti实例数据
背景:公司的框架继承了Activiti流程引擎,当在开发环境修改了bpmn文件之后push到现场后,由于现场发布了新的流程,是不会重新读取修改后的bpmn文件到数据库,也就是现场的流程定义并没有被修改成功。为了能重新加载bpmn文件,这是就需要删除发布的流程。但是存在实例的流程是无法删除的,所以需要从实例开始删除。删实例–> 删流程–>重载bpmn文件–>发布修改后的新流程Activiti表简介1) 所有的表名默认以“ACT_”开头。2) ACT_GE_* : “GE原创 2021-05-19 17:50:27 · 1885 阅读 · 1 评论 -
WorkNote_Day56:windows端口被占用的解决方法
端口被占用:在工作中时常碰到localhost:8080 is already in use等端口被占用了的情况:究其原因其实就是某个进程占用了端口。解决:可以通过taskill等指令杀进程。步骤:先找出占用端口号的进程pid (假设这里8080端口被占用了)#netstat -ano|findstr 端口号netstat -ano | findstr 8080netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。 该命令原创 2021-05-18 19:30:29 · 151 阅读 · 1 评论 -
WorkNote:Oracle中的null值问题
现象:在数据库开发中经常要对数据进行比较,什么大于,等于,小于之类的。但是你往往有时候会忽略NULL的情况。如果出现NULL的时候去做比较会有什么样的结果呢?在查询某个业务查询中,需要过滤某个字段不为1的数据:按道理来说:查询结果是会有数据的,至少存在不少 dz_zzzt 为空的数据问题:尝试把dz_zzzt的字段注释掉:数据显示出来了。那会不会是null值得问题呢?尝试:此时在开发环境中将其中一条数据得dz_zzzt字段修改为‘2’之后,再用相应的条件进行过滤,可以得到结果:原创 2021-04-27 13:08:32 · 194 阅读 · 0 评论 -
WorkNote:Oracle数字[varchar]排序问题解决
问题:在oracle中查询sql时,如果我们要根据px**(varchar类型)**字段内容对数据进行排序时:如果px存的数字小于10:可以满足顺序排列当px内存的数字大于10时:造成1,10,11,12,2的情况(因为根据字符来排序了)解决:将varchar转成number可以进行顺序排序:select * from TableName order by decode(trim(translate(px, '0123456789', ' ')),原创 2021-04-19 12:52:22 · 398 阅读 · 2 评论