- 博客(34)
- 收藏
- 关注

原创 RabbitMQ真延时队列实现消息提醒功能
RabbitMQ真延时队列实现消息提醒功能一、需求场景用户可以制定多个计划,同时可给该计划设置是否需要到点提醒,且中途可以取消提醒或修改提醒时间。二、需要解决的问题学习过rabbitmq的同学们都知道,通过TTL+死信队列可以实现延时队列的效果, TTL+死信队列实现延时队列示意图但是这个延时队列有个弊端,即里面的消息死亡并非是异步的,举个例子:消息1设置的死亡时间是5分钟,消息2设置的死亡时间是10分钟,当消息2比消息1先进入队列时,消息2没有死
2021-01-21 15:59:38
2368
2

原创 超详细!手把手搭建Jenkins实现自动化部署 (已排雷)
手把手搭建Jenkins实现自动化部署 (已排雷)一、搭建环境使用Jenkins做部署之前,需要安装jdk和maven,docker私有仓库,项目需要连接数据库就要安装数据库如mysql0、mysql安装在命令行窗口执行拉取镜像命令docker pull mysql:5.7下载完成后,查看镜像docker images[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JTBArDTB-1600064401636)(C:\Users\蔡隽贤\AppDat
2020-09-14 14:32:31
8103
3

原创 SpringSecurity+Jpa在前后端分离项目中的实现(含接入数据库部分)
SpringSecurity+Jpa在前后端分离项目中的实现(含接入数据库部分)一、前言本篇只是简单的Spring Security前后端分离的小Demo,不细讲代码,得对SpringSecurity有一定了解才能看得懂。二、基本思路服务端通过 JSON字符串,告诉前端用户是否登录、认证;前端根据这些提示跳转对应的登录页、认证页三、具体实现 pom依赖: <dependencies> <dependency> ...
2020-09-14 14:16:49
400
原创 【三】kubernetes kuboard部署分布式系统
接上文,我们已经部署了k8s集群,本文将讲解如何利用kuboard部署完整的微服务系统。具体包括docker私有仓库的搭建、工作负载的创建、配置中心、存储挂载、负载均衡等内容。
2023-10-19 17:35:52
520
原创 【二】kubernetes master单节点拓展为集群
一、ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3接上文中,我们已经部署好了单节点master的k8s集群,在生产环境中,单节点的master肯定是不行的,那么我们如何对master进行集群的拓展呢?对master拓展,实际上就是对api-server的拓展,只要对其做个负载均衡即可。本文选型 haproxy + keepalive 方案来实现。当然也可以选择 nginx + keepalive。
2023-09-01 22:30:45
895
1
原创 【一】ubuntu20.04上搭建containerd版( 1.2.4 以上)k8s及kuboard V3
手把手教你部署k8s集群,后续还会有多节点master集群拓展、微服务应用部署的教学
2023-08-17 20:42:03
1815
原创 全球矢量、影像数据(亿个小文件)入库经验总结
inode译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是Block,Block是用来存储数据用的。这种情况的原因通常是:尽管那个分区的磁盘占用率未满,但是inode已经用完,应该是该磁盘的某些目录下存在大量的小文件导致。得益于瓦片数据的文件目录的固定规则,我们可以简单的将z层级作为集合,文件夹的名称作为列x,文件的名称作为字段y,而文件的二进制则是单独一个字段 data。然而发现影像的大小是矢量的20倍(未解压时 70T)
2023-08-14 14:01:47
286
原创 SpringBoot引入WebSocket依赖报ServerContainer no avaliable
需要使用@ServerEndpoint来建立websocket链接。引入依赖。启动报错 java.lang.IllegalStateException:javax.websocket.server.ServerContainernotavailable
2023-02-03 10:11:36
5559
7
原创 统计多台linux服务器容量脚本
现在我有一个文件(servers.txt),里面记录了若干个服务器账号密码,我需要统计里面的服务器的剩余容量并输出到output.txt文件中。
2023-01-03 15:37:22
253
原创 springboot注解 + mybatisplus拦截器实现数据权限拦截(兼容分页插件)
需求要求在同一个数据请求方法中,根据不同的权限返回不同的数据集,而且无需并且不能由研发编码控制。设计思路竟然要实现查询语句与权限解耦,第一想法联想到的就是AOP,拦截所有的底层sql,加入过滤条件。1、在数据库中新建一张权限表,记录权限点以及其对应的sql2、编写一个自定义注解,在需要被拦截的mapper方法上标记并指定其权限过滤方式。3、利用mybatis拦截器(插件)拦截mapper方法的sql,并根据对应的权限点对原有的sql进行修改。代码部分数据库设计权限表sql@Tabl
2022-03-13 18:02:29
8392
3
原创 解决druid+mybatis-plus异常:java.sql.SQLFeatureNotSupportedException
错误在使用@EnumValue注解将数据库对应的枚举值转换为枚举类时出现Error attempting to get column 'XXX' from result set. Cause: java.sql.SQLFeatureNotSupportedException排查发现是druid和mybatis-plus版本不兼容的问题。出现问题的版本 <dependency> <groupId>com.alibaba</grou
2022-02-28 18:14:27
1319
原创 Sentinel整合gateway之Route ID模式失效
在使用sentinel整合gateway网关时使用Route ID一直没有拦截效果,之后尝试了一下api分组模式就成功了。于是将问题定位到网关路由配置上。排查半
2021-06-15 18:13:21
1385
原创 SpringdataJpa利用@CreateBy自动填充实现雪花算法生成实体Id
公司项目需要使用SpringDataJpa,但是Jpa自带的Id生成策略又不存在雪花算法。查了一下网上的配置方法都过于麻烦。于是想到利用Jpa的自动填充,在插入前给其生成一个id具体方法如下首先在启动类上加入注解@EnableJpaAuditing在实体类上加入注解@EntityListeners(AuditingEntityListener.class)加入该注解能监听 创建/更新的操作。在主键加入@CreateBy注解 @Id @Column(name = "id")
2021-03-19 10:37:21
4264
原创 Navicat 快速生成数据库设计文档
SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注FROM INFORMATION_SCHEMA.COLUMNS WHERE-- developerclub为数据库名称,到时候只需要修改成你要导出表结...
2021-03-09 12:03:01
3051
3
原创 在Centos 7服务器下完整部署 Odoo13 (基于python13和pg10)
参考文章:https://blog.youkuaiyun.com/weixin_42552923/article/details/103151256在这篇文章的基础上,对其中的一些内容进行修改与完善,升级数据库为PostgreSQL10,并解决前端代码丢失以及镜像源超时或过慢的问题。Python3.7的安装需要切换到root用户:sudo root安装相关编译工具yum -y groupinstall "Development tools" yum -y install zlib-de.
2021-02-20 16:42:15
867
原创 OpenFeign调用时报错缺少:HttpMessageConverters注入失败
今天在使用OpenFeign,Demo2模块远程调用Demo1模块时,报错。报错内容为:feign.codec.DecodeException: No qualifying bean of type 'org.springframework.boot.autoconfigure.http.HttpMessageConverters'查阅大量资料说添加fastjson或手动注入HttpMessageConverters都不行。后来自己通过debug发现,是在远程调用成功,但是在demo2中返回值的时
2021-02-04 13:42:01
2917
原创 自定义序列化类 将ListLong转为String字符串解决雪花算法id精度丢失问题
自定义序列化类 将ListLong转为String字符串解决雪花算法id精度丢失问题众所周知,当后端使用Mybatis plus的雪花算法生成id时,会生成一个长度为19位的ID然后当我们和前端小伙伴对接时,需要转为JSON给前端的js对象接收,此时接收Long类型的是number然而number类型的长度只有16位!这就出现了精度丢失的问题前端接收的 ---> 后端实际传的1297873308628300000 ---> 1297873308628307970
2021-01-15 16:39:03
2832
原创 WebSocket实现服务端接收移动端定位在网页前端显示
WebSocket笔记——服务端接收移动端定位在前端显示一、需求服务端需要对接APP和网页前端,将APP端的定位信息整理并返回给前端。前端需要展示在线人员位置以及基础信息。一开始想用netty(网络I/0编程框架)实现,后面考虑到成本和时间问题,最后选择简单的webSocket协议。二、什么是WebSocket?1、介绍WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向
2020-12-09 14:13:17
1644
1
原创 Jave+WebSocket实现视频异步解析
Jave+WebSocket实现视频异步转码并上传需求:用户客户端上传视频后,服务端异步进行视频在线转码为MP4并保存,操作完成后,给客户端推送视频url进行在线播放。1、WebSocket实现异步消息推送1、webSocket和Http的区别相同点都是一样基于TCP的,都是可靠性传输协议。都是应用层协议。不同点WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。WebSocket是需要握手进行建立连接的。联系WebSocket在
2020-10-29 14:32:42
1481
原创 【String】关于intern方法的测试与理解
最近在看虚拟机,了解到了有关intern的知识,感觉理解起来有点困难,于是乎就直接动手敲敲代码。以下是案例(注意:测试环境是jdk 1.7以上,1.6以下结果因为永久代的影响又是另一个!)案例1:String str1 = new String("计算机") + new String("软件"); System.out.println(str1 == str1.int...
2019-07-09 16:13:51
240
原创 【SpringBoot】关于@Configuration
假如有两个配置类当初始化ApplicationContext时两个配置类中的方法都会被运行。配置类代码如下:@Configurationpublic class MyAppConfig { //将方法的返回值添加到容器中,容器中这个组件默认的id就是方法名 @Bean public HelloService helloService(){...
2019-07-05 10:27:25
819
转载 【转】Struts2 validate验证指定方法的三种方式。
一开始发现自己写的退出登陆方法一直直接被校验器拦截掉,直接返回到input指定的路径,经过百度后发现可以指定不校验的方法,指定的方法如下:https://blog.youkuaiyun.com/snow_crazy/article/details/20954557...
2019-06-12 10:45:45
167
转载 懒加载 no session 错误(配置文件解决方法)
https://blog.youkuaiyun.com/cuibruce/article/details/53484645
2019-06-03 00:16:18
255
原创 算法——关于char的第i位置0置1 以及获取char的第i位 ,翻转
为什么用char作为单位呢?一个char是一个字节,一个字节是8位,故使用char作为单位。void SetBit(char &c,int i,int v){ if(v){ //置1 c |= (1 << i);}else{ //置0 c &= ~(1<<i);} }获取int get...
2019-04-11 17:14:10
1957
原创 Inverse属性导致级联cascade属性失效
一开始把cascade属性写在“一”的一侧:<set name="EmployeeSet" inverse="true" > <key column="cid" > </key> <one-to-many class="com.cjx.entity.Employee" cascade= "all" in...
2019-04-10 00:14:38
148
转载 【转】Spring4+Hibernate5:报错Cannot unwrap to requested type [javax.sql.DataSource]
原文链接:https://blog.youkuaiyun.com/bolon_57使用Spring4+Hibernate5时,如果使用hibernate.cfg.xml配置数据源,则会报错:Cannot unwrap to requested type [javax.sql.DataSource]。具体原因不明有人给出的解释是:<propertyname="hibernate.curren...
2019-03-28 10:54:07
175
原创 s:radio 传值是字符而不是数字
其实就是一个小技巧很多例子中的s:radio是这样写的:<s:radio list="#{1:'男',0:'女'}" value="0" label="性别" name = "student.ssex"></s:radio>这样上传的值是1,然后我就开始想,如果我想直接传 男 这个字符的话怎么弄呢?然后我大胆的试了一下。<s:radio li...
2019-03-22 17:05:26
926
原创 struts2 validation.xml 校验成功但是出现404错误
if(hasErrors()) {return "input";}原因是Action那里没有加这一段,出现错误时没有跳转页面解决方法:补上上面代码,input对应的页面为提交表单的页面。要在 struts.xml 被拦截的ACTON中配上 <result name="input">/WEB-INF/jsp/index.jsp</result>...
2019-03-22 16:02:21
279
转载 [转]Struts 关于validator的regex验证
原文:https://blog.youkuaiyun.com/freewindgo/article/details/52005860之前因为版本问题导致校验一直没有报错但是也没有效果,多谢这位大大的文章,才让我知道是版本问题。<field name="student.sid"> <field-validator type="regex"> <param name="...
2019-03-22 15:59:43
274
原创 【android学习笔记】第四篇——基础控件2
好久没上啦!补更。 ProgressBar 长条形进度条变动态:写一个让进度值变大变小的实例://progress bar 在Oncreate 中生命,class要接上Runnable接口 private Thread th;//线程 private ProgressBar pbh; private boolean statechange;/...
2018-08-08 11:38:29
151
原创 【android学习笔记】第三篇——基础控件1
哦豁~上次学完了布局后,我们今天来谈谈控件。如果有时间,我会把自定义动画也学了~同样写在这一篇博文里面。导入资源,Ctrl+C,选中文件夹,Ctrl+V出现了Androidstudio 出现 Call requires API level 24(current minimum is 15):android.icu.util.calendar 问题时的办法https://blog.csd...
2018-07-28 15:18:46
194
原创 【android学习笔记】第二篇——Android Logcat 与布局
Hello!今天是学习的第二天,也要元气满满哦!根据书本的内容今天一开始我要接触的是Log打印。一起来看看吧一、Log不过在测试之前,我们得先调一下AS默认的LogCat找到Setting——Color Scheme——Android Logcat去掉然后就可以自己弄自己喜欢的颜色啦!弄了一个Button来测试public void LogCl...
2018-07-26 12:59:52
195
原创 【android学习笔记】第一篇——Android开发工具及安卓基础
人生中的第一篇博文。第一次写博客,本文仅用来记录自己学习安卓开发上的遇到的问题与学习心得,想看就看。( ̄▽ ̄)/捣鼓了好几天,今天终于确定了自己的Android开发工具。duang!就是他Eclipse(老版教材之王)Android Studio为什么不用Eclipse...哎,配置了好几天,最后还是一堆报错!枉费我一番心思!然后Android Studio,下载,安装,...
2018-07-25 21:40:13
352
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人