- 博客(352)
- 资源 (13)
- 收藏
- 关注

原创 java知识点
java的反编译工具有哪些和如何防止反编译?javap命令:javap xxx.class,其实它没有反编译源代码,只是转换成一种我们容易看得懂的字节码jap工具,但它很久没有更新,java7有哪些语法不支持以及java8 lambda表达式也支持cfr工具:java cfr.jar xxx.class --decodexxx xxx防止反编译:1、隔离.class文件2、...
2019-05-17 10:13:10
374

原创 sql性能优化精华总结
explain在性能分析上有很大的作用id:包含一组数字,表示查询中执行select子句或操作表的顺序,id相同,执行顺序由上至下,id越大优先级越高,越先被执行select_type: 常见几个simple:表示简单的select,没有union和子查询primary:有子查询,最外面的select查询就是primaryunion:union中的第二个或随后的select查询,不...
2019-04-25 11:41:39
1112

原创 springboot-rabbitmq-ACK防止信息在生产端或消费端丢失
application.yum关键配置spring: rabbitmq: host: 127.0.0.1 username: cloud-dev password: cloud-dev port: 5672 virtual-host: / listener: simple: concurrency: 10 # M...
2019-03-15 00:28:14
1282
原创 git统计代码量
脚本1: 统计文件夹下面的git项目的代码量,记得修改parent_url,log_url和NAMES里面的内容。脚本2:统计特定项目的代码量,记得修改log_url,NAMES,PROJECT_PATHS后面的内容。
2025-02-08 16:13:15
277
原创 sql server cdc漏扫数据
CDC可以捕获这些变更的详细信息,并使这些信息可用于进一步的处理,例如数据同步、数据仓库的更新或其他业务需求。做了一个基础服务,定时扫cdc表的数据然后再数据同步到es上。究竟是定时扫cdc的表拉取数据漏扫数据,还是数据处理出错呢,还是es同步数据出错呢?with(nolock)是避免锁表,允许脏读(cdc表没有回滚的操作),第一眼看上去没什么问题。扫到数据,处理完数据后把@param替换成上次扫的最大id,接着继续扫。再细想,有问题,涉及到cdc如何捕获数据变更写入到变更表中。
2025-01-09 16:39:28
464
原创 sql server cdc重启监控新加表字段
下面脚本的DECLARE @TableName NVARCHAR(200) = 'your_table_name'这一行,将your_table_name替换成对应的表名,然后执行即可。表新加字段,cdc要重启才能监控新加字段。但如果你有一个定时任务扫描cdc的_CT表,在以下两个场景会导致数据丢失。核心原理是通过开启一个新的CDC,使用替换的方法,不需要重启,数据也不丢失。通过以下脚本让cdc监控新字段可以避免数据丢失。
2025-01-06 18:34:14
463
原创 数据仓库基础
ODS(Operational Data Store)层:操作数据存储。存放原始数据,直接加载原始日志、数据,起到备份数据的作用。数据采用压缩,减少磁盘存储空间。创建分区表,防止后续的全表扫描。DWD(data warehouse detail 细节数据层):对核心数据进行判空过滤,对业务数据采用维度模型重新建模,即维度退化...
2023-11-17 11:40:00
168
1
原创 mysql截取两个字符中间的内容
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(column_name, 'start_delimiter', -1), 'end_delimiter', 1) AS result FROM table_name;
2023-11-02 10:38:54
392
原创 idea 有时提示找不到类或者符号,日志报java: 找不到符号的解决
idea maven编译成功,运行失败提示找不到符号,主要是get和set方法找不到符号,此时就是idea的lombok版本冲突。IDEA版本导致的Lombok失效,需要更新lombok版本到1.18.14及之后版本得到解决。maven clean,然后关闭idea,删除项目的.idea文件,重新导入一下项目即可。修改完pom.xml文件后记得点一下Reload All Maven Projects。
2023-07-17 11:25:07
1458
转载 java stream用法
关于JAVAStream的理解要点与使用技能的阐述就先到这里啦。那通过上面的介绍,各位小伙伴们是否已经跃跃欲试了呢?快去项目中使用体验下吧!高级JAVA的Stream流操作_java小皮皮的博客-优快云博客_stream流如何输出条件大于2的返回值。
2022-12-27 11:20:32
189
原创 java优雅判断空值
Optional.ofNullable(value).orElseThrow( () -> new BusinessException("xxx不允许为空"));
2022-12-07 18:10:45
252
原创 storm简单案例
这个例子的功能是统计浏览了某个产品的用户还浏览了哪类产品代码连接运行类TopologyStarter的main方法,启动后台统计功能,注意redis要启动运行页面展示模块node webapp/app.js访问地址http://localhost:3000/部分页面展示:这个例子中有三个主要组件基于node.js的web应用redis服务器,用于持久化数据一个storm拓扑,用于分布式实时处理数据...
2020-11-27 22:36:54
327
原创 finalshell查看连接远程linux的用户名和密码
使用finalshell去连接linux,由于用户名和密码输入一次后,下次finalshell会替我们记住密码。接着,时间久了,密码忘了。以mac为例,密码存放在/Users/$USER/Library/FinalShell/conn文件中,密码以密文形式保存。比如我的主机名叫"shuangyueliao.cn",查看主机对应密码,在conn目录下执行grep -rni "shuangyueliao.cn" *把密码放到下面文件中s1位置并执行,就能得到解密后的密码pom.xml文件 <
2020-10-23 14:33:15
13105
11
原创 大数据实时项目
项目说明日志收集模块运行gmall0311-logger项目下的Gmall0311LoggerApplication,启动web服务收集上传过来的日志并存进kafka中运行gmall0311-mock项目下的JsonMocker,模拟app应用上传日志到web端查看kafka,可以看到数据已保存到kafka实时预警根据日志数据中的系统报错异常,或者用户行为异常检测,产生预警日志并图形化展示需求:同一设备,5分钟内三次及以上用不同账号登录并领取优惠劵,并且在登录到领劵过程中没有浏览商品。达
2020-10-17 11:59:42
763
1
原创 python子目录下脚本执行路径问题
Traceback (most recent call last): File "test.py", line 5, in <module> from mongodb.mongo_store import mongo_dbModuleNotFoundError: No module named 'mongodb'解决:如果是包没安装,安装即可。否则转2在test.py当前路径下,执行python test.py文件时,报错No module named,但项目根路径下执行
2020-10-16 13:38:20
875
原创 手机APP信息统计分析
项目架构手机APP运行时,上报启动日志、错误日志、页面日志、事件日志、使用时长日志等信息到日志收集服务器日志收集服务器将收集到的日志信息发送给kafkaflume分别消费kafka中的5种主题信息,并把数据存储到hdfs中通过任务调度定时把hdfs中的信息拷贝到hive数据仓库中核心业务操作采用hive查询,把查询结果显示到前端页面flume可以创建拦截器添加maven依赖<dependencies> <dependency>
2020-09-26 23:14:08
690
原创 spring security token鉴权
spring security配置类@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)public class SecurityConfig extends WebSecurityConfigurerAdapter{ /** * 自定义用户认证逻辑 */ @Autowired private UserDetailsService userDetailsServic
2020-09-24 23:00:56
980
原创 spring security前后端分离方案
1、spring security默认配置下仍然不是前后端分离,当登录成功、失败、访问未登录页面时都会302重定向到另一个页面。显然与我们想要的不同,我们需要返回json2、spring security如何加入验证码校验3、配置spring security使用redis存取session信息,符合分布式的规范添加maven依赖 <dependency> <groupId>org.springframework.boot</gro
2020-09-23 16:37:12
2225
1
原创 大数据项目之通话记录统计
启动kafkakafka-server-start /usr/local/etc/kafka/server.properties启动flume来收集日志并发送到kafkaflume-ng agent -c conf/ -n a1 -f conf/flume-2-kafka.confflume-2-kafka.conf文件内容如下a1.sources = r1a1.channels = c1a1.sinks = k1a1.sources.r1.type = execa1.sources.r
2020-07-26 18:43:07
3092
1
原创 spring对添加@Transactional的方法都干了什么
问题一:在个人电脑上执行下面这段代码会报错误com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:Communications link failure Last packet sent to the server was X ms ago,在有公网的服务器上执行却不会 @Transactional(isolation = Isolation.REPEATABLE_READ, rollbackFor = Exception.class)
2020-07-14 09:53:00
716
4
原创 分布式事务工业界的解决方案
数据库事务的四大特性ACID:A(Atomic)原子性、C(Consistency)一致性、I(Isolation)隔离性、D(Durability)持久性。而分布式事务无法满足ACID,针对分布式事务有CAP理论和Base理论。CAP是Consistency、Availability、Partition tolerance的缩写,分别表示一致性、可用性、分区容错性。分布式事务的P是必须要有的,但在所有分布式事务场景中不能同时具备CAP三个特性,因为在具备了P的前提下C和A是不能共存的。AP是很多分布式
2020-06-28 19:41:41
433
原创 git常见命令
git查看某个版本的文件,如git show HEAD~3:index.htmlgit把分支推送到远程分支git add .git commit -m "xxx"git pullgit push -u origin master开发分支dev要合并到master上线git checkout devgit pullgit checkout mastergit merge devgit push -u origin mastermaster出现变动后,要合并到dev上git ch
2020-06-27 22:39:45
241
原创 基于Redis延时任务实现分布式系统的数据一致性
系统A执行业务后调用系统B执行业务,如果系统B执行完后,通知执行结果给系统A时,由于系统A宕机或者重启,那么会导致系统A收不到B的处理结果,导致系统A、B的数据不一致。如果使用延时任务就能避免这个问题。系统A在调用系统B时同时添加一个延时任务以查询B的处理结果,如果A接收到结果就把延时任务删除。否时就执行延时任务查询系统B的处理结果。延时任务如果保证到点执行任务,有两种实现方式:主动查询延时...
2020-04-22 23:05:06
490
原创 实现管理后台权限控制竟如此简单
后台管理最重要的就是权限控制,后台可以创建用户,可以为用户赋予不同的角色。一个角色可以拥有不同的操作权限,如用户管理的增删权限等等角色还可以规定他可以操作哪些数据要想对某一个管理员的操作进行权限控制,需要为他创建一个角色,这个角色规定了他能管理哪些用户,规定了对用户能进行哪些操作。此外,需要提供一个接口查询当前账户具有哪些操作权限,以便在前端能显示不同的按钮,此具有用户管理的增删查改...
2020-04-18 18:30:26
1236
原创 c/c++一小时入门tcp/udp通讯
1、实现只能接受一个连接的tcp服务器#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/socket.h>#include <netine...
2020-04-06 22:45:47
347
原创 eureka源码解析
当service从注册列表中移除时调用方法com.netflix.discovery.DiscoveryClient#shutdownDiscoveryClient有一个register方法,用来向eureka服务注册服务实例DiscoveryClient的register方法其实是被InstanceInfoReplicator中的run方法调用而类InstanceInfoRepli...
2020-03-29 20:34:10
479
原创 select for update不交由spring事务管理的正确姿势
SqlSession sqlSession = null; try { InputStream in = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFa...
2020-03-18 00:29:12
2695
1
原创 feign源码解读
对于feign的接口请求失败的重试配置可通过如下自定义配置文件实现(一般不建议配置) @Configurationpublic class FeignConfig { @Bean public Retryer feignRetryer() { return new Retryer.Default(100, SECONDS.toMillis(1), 5); ...
2020-03-17 00:04:15
273
1
原创 大数据之直播平台数据统计
已知有以下直播平台数据json格式{"id":158008900435,"uid":120010010445,"nickname":"jack435","gold":445,"watchnumpv":4350,"watchnumuv":870,"hots":1350,"nofollower":435,"looktime":8700,"smlook":2175,"follower":1740,...
2020-03-08 16:28:06
10474
2
原创 使用hadoop完成推荐算法
基于物品的推荐算法算法步骤已知以上用户对物品的行为,假设点击行为得1分,搜索行为得3分,收藏5分,付款10分。请为用户推荐合适的物品。1、从以上信息构建用户、物品的评分矩阵,如下图2、由以上矩阵构建物品的相似度矩阵如1号物品和2号物品,算出其第一行和第二行的余弦相似度,即可得出其第1号物品和第2号物品的相似度,最终得出6*6相似度矩阵3、相似度矩阵*评分矩阵=推荐列表左边是第...
2020-03-03 21:49:39
2397
原创 hadoop入门代码
输入文件1,2,3经过mapper处理成中间结果,最后再shuffle给reduce,最后得到最终结果,处理输入时的key都是默认排好序的。hadoop1的hdfs的block的大小是64M,从hadoop2起block大小默认是128M。案例一:输入一堆单词,统计各个单词重复出现的个数输入的格式如下,单词之间以空格隔开编写输出中间结果的mapper/** * 输入的map是(行号...
2020-02-29 23:25:28
574
原创 分布式事务实现的5种方案
1、XA方案(即两阶段提交方案)有一个事务管理器,负责协调多个数据库的事务,先询问各个数据库prepare好了吗,如果都回复ok,就正式提交事务,否则回滚事务。此方案可基于spring+JTA可以实现,但效率低,严重依赖数据库层面来完成,适合单应用多库连接,微服务一般不会直连库,不适合2、TCC方案(Try-Confirm-Canel)Try阶段:对资源锁定或预留Confirm阶段:在各个...
2020-02-28 23:49:51
938
原创 清除日志文件不产生文件空洞
文件空洞:文件内容的大小小于文件磁盘占用的空间产生原因:如java使用nohup java -jar xxx.jar > log.txt方式启动java程序,但随着日志内容的增多,服务器磁盘空间不足,需要清理日志文件,所以可采用命令echo '' > log.txt此时日志文件内容被清空(注意,如果只是通过重命名或删除或vim编辑日志文件的方式清除文件内容时,由于程序没有停止,这样会导致输出的日...
2020-02-10 14:33:57
1549
MFCApplication.zip
2020-04-17
23种设计模式代码
2019-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人