- 博客(95)
- 收藏
- 关注
原创 dbz用connector入hana报错Invalid Java object for schema type INT64: class java.util.Long for field “null“
mysql-cdc hana flink-connector kafka
2022-12-29 10:41:56
207
转载 Spring @CrossOrigin 注解原理实现
现实开发中,我们难免遇到跨域问题,以前笔者只知道jsonp这种解决方式,后面听说spring只要加入@CrossOrigin即可解决跨域问题。本着好奇的心里,笔者看了下@CrossOrigin 作用原理,写下这篇博客。先说原理:其实很简单,就是利用spring的拦截器实现往response里添加 Access-Control-Allow-Origin等响应头信息,我们可以看下spring是怎么做的注:这里使用的spring版本为5.0.6我们可以先往RequestMappingHandlerMa
2022-12-08 11:42:54
192
原创 spring boot使用mysql-binlog-connector-java解析mysql binlog日志(实时+离线)
mysql binlog获取解析,在线和离线两种方式
2022-08-25 22:24:36
2603
5
原创 记一次线上偶现nginx 502问题排查与解决
负责的几台服务器上有7,8个服务,其中有一个是大屏项目,一周出现0-3次502 bad getway报错,因为是大屏,出现这个报错比较尴尬。其他的服务也有502 bad gateway出现,出现502时都是刷新一下就好了。服务网络架构为:F5->运维集中nginx->应用服务器nginx->应用服务应用服务器nginx里面一开始有报错信息:1.upstream timed out (110: Connection timed out) while reading respo
2022-05-30 12:50:17
600
原创 反编译jar包,修改后重新编译为jar包
使用开源jar包或者供应商jar包时,会发现一些bug或者已有功能无法满足我们要求,需要对jar中的.class文件进行修改。处理步骤如下所示:1.使用反编译工具将jar包反编译为源文件反编译工具请参考XJAD2.2版下载地址:http://www.blogjava.net/Files/96sd2/XJad2.2.rar如果只是少量的几个class需要修改,可以直接用IDEA或者jd-gui工具打开,将.class文件中的内容直接复制并创建同名的.java文件(需要根据jar包中建立所有的上层目
2022-05-23 15:00:34
3379
原创 本地前后端联调跳过cas sso单点登录
很多项目集成cas单点登录系统,在本地开发联调的时候,往往会遇到单点登录的拦截,这会影响到我们正常的联调。我们客户端和服务通信的身份信息存储在浏览器cookie里面,那么处理方式非常简单。我们只要想办法获取cookie并在浏览器application中手动增加cookieName=value即可。当前端下次再去请求后端接口,因为有cookie,服务器会查询到对应的session,就会认为客户端已经登录了。注意:1.不管session存在服务器或者redis中都要保证手动拿到的sessionId(
2022-04-25 13:10:22
2491
原创 浏览器导出ssl证书导入jdk
采购的BI软件需要集成公司cas 单点登录(java语言),单点集成时无法访问安全的单点地址:https://abc/xxx,只能访问http://abc/xxx。BI软件无法识别/信任公司的ssl证书,具体的原因还不清楚,查询资料可以手动导入信任的证书到jdk中。这里先抛个问题,BI服务没有识别公司ssl证书的原因?jdk里面可能没有根证书,但是操作系统目录/etc/ss/certs下面可以查询到公司的ssl证书。查询操作系统里面所有根证书命令如下所示。cd /etc/ss/certsawk -v
2022-04-24 20:10:12
1057
原创 google浏览器高版本 跨域第三方cookie(qlik)无法携带问题解决
报表门户网站多租户改造时,某个租户访问网站的域名属于外网(假设为:a.niu.com) 和集成的qlik报表服务域名不同(假设为:qlik.diao.com),这时候diao.com的cookie无法从当前站点a.niu.com携带到qlik.diao.com,这个问题目前常用的解决方案就是:第三方服务器设置cookie的属性:SameSite=None; Secure 即可。下面是samesite属性的简单介绍:SameSite 有3个值1. StrictStrict最为严格,完全禁止第三方 Co
2022-04-20 17:05:12
1165
原创 SSL证书转换:cer转jks,pfx转jks
进入jdk相应的目录使用keytool工具:cd C:\Program Files\Java\jdk1.8.0_101\binpfx转换为jks命令:keytool -importkeystore -srckeystore "D:\aaa\test\client.pfx" -srcstoretype pkcs12 -destkeystore "D:\aaa\test\clientjks" -deststoretype JKScer转jks命令:keytool -import -alias m
2022-04-12 10:28:12
4968
1
原创 jvm堆外内存泄漏分析简介
先上一个代码demo,利用unsafe开辟1g内存空间,不释放。import java.lang.reflect.Field;import java.util.concurrent.CountDownLatch;import sun.misc.Unsafe;public class OutOfHeapOOM { public static final Unsafe UNSAFE; static { try { Field theUn.
2022-04-06 16:08:46
523
原创 移动端项目带版本路径实现的三种方式
q移动端发布时候如果不更新路径,那么一些静态资源缓存在本地,新发布的功能便加载不到。为了解决这个问题,下面介绍两种方式。1.修改项目入口地址每次发布项目时,打的包里面都需要有v1.0.1这种版本号的文件夹路径,比如正常的前端资源目录为:带版本号的前端资源路径为:项目入口地址加上或者修改版本路径/*/v1.0.1/*/即可。2.nginx重定向这种方式在修改不了项目入口地址时使用,nginx需要增加一个入口地址的location精确匹配,比如 location = /xxx/
2022-03-30 16:55:19
2970
原创 多租户多域名访问同一个服务实现
之前做的项目要迭代多租户功能,不同租户对应同一个数据库的多个schema,进行逻辑上的数据隔离。每个租户要求独立域名,但是前端服务和后端服务仍然只有一份(部署是集群部署)。本来只需要在dns服务器上配置一下域名解析就可以了,但是要集成单点登录cas和安全框架(security), cas 中原生的类是不支持多个serve-name(服务域名)的,需要修改一下cas中的一些组件,所以总结一下。看一下关键的配置文件:SecurityConfigurationpackage com.xxx.config
2022-03-23 19:53:30
2663
原创 当 @PathVariable 遇上.特殊字符,参数值获取不全问题解决
移动端项目一个获取用户信息的接口,如下所示:@RequestMapping(value = "/getUserStatus/{userAccount}", method = RequestMethod.GET)public Result getUserInfo(@PathVariable String userAccount) {线上发现一个问题:查询参数为老外账号时,查不到数据,数据库明明是有的,于是分析老外账号有啥特点:laowai.wailao,中间有个小数点,而一般的账号比如zhangs
2022-03-09 18:30:51
508
原创 spring boot 动态切换数据源实现多租户开发
之前的文章有介绍过spring boot 动态切换数据源spring boot 动态切换数据源(数据源信息从数据库中读取)_lgq2016的博客-CSDN博客,今天简单介绍一下动态数据源切换实战,主要是实现多租户功能,数据隔离采用的方式是:同一个库,多个schema(数据库使用oracle)实现。多租户实现的核心逻辑是:通过访问域名区分不同的租户,进而切换到不同的数据源,即不同的schema.AbstractRoutingDataSourcespring中对切换数据源...
2022-03-09 09:56:50
2023
原创 项目灰度发布功能设计
平台项目迭代发布过程中,有一些功能发布时会产生较大的影响,一旦出现问题,会影响用户使用体验,降低产品信誉。为了解决这一问题,在重要功能发布时需要引入灰度发布功能,借助一小部分用户在生产环境进行功能的验证,平稳运行一段时间,一般是一周后再大规范应用到生产环境的所有用户。基于nginx+lua(openresty)可以在nginx网关上进行灵活的业务逻辑处理,本文也使用openresty实现。常见的灰度发布是对指定ip网段进行特定的路由处理,但是公司内网的某个网段范围仍然较大,涉及人员较多,本文使用平台管理
2022-03-07 11:19:49
2438
转载 OpenResty 实现项目的灰度发布
1、安装 openresty 依赖模块:[root@Centos opt]# yum -y install pcre-devel openssl openssl-devel postgresql-devel2、编译安装 openresty:[root@Centos opt]# tar -zxvf openresty-1.15.8.2.tar.gz...(略去内容)...[root@Centos opt]# cd openresty-1.15.8.2/[root@Centos openr
2022-03-01 18:48:09
302
原创 移动端项目发布时路径中增加版本号
目前应用发布终端常用的两种方式,pc和移动端,一些前端功能迭代发布时会因为缓存问题导致功能发布后,用户并没有获取到新发布的功能,pc可以通过清除缓存来解决,但是移动端,比如手机用户并不知道怎么清除缓存,导致一些前端新功能发布到手机后,用户没办法获取到新发布的功能。我通过在路径中增加版本号来解决这个问题。比如:https://www.cnblogs.com/v1.0.0/taven/archive, 其中v1.0.0为增加的发布版本号项目使用docker部署,下面展示一下具体的实现细节。1.doc
2022-02-28 11:25:07
2110
原创 spring security+sso 认证通过后跳转原始路径
我们访问一个域名+路径(需要授权访问)时,如果没有登录会返回一个登录页面,登录完成后我们希望继续访问之前输入的域名+路径,我的实现方案如下:前端:1.没有授权时访问(这里页面肯定会报错),2.弹出登录界面,这两个动作过程中必须确定前端一定会调用某个接口,然后和后端协商,通过这个接口将浏览器地址栏内容(即原始路径)放到http header中传递到后端。前端代码不再展示,主要逻辑就是,获取地址栏地址然后放到header里面通过接口发送到后端。后端:使用过滤器,优先级设置为-101,因为securi
2022-02-28 10:43:05
4155
原创 openresty引入nginx_upstream_check_module模块
openresty使用nginx的健康检查,但是原生nginx并没有该功能,需要引入nginx_upstream_check_module 打补丁并重新完成编译。现在简单介绍一下如何引入健康检查模块。下面代码就引入了健康检查,具体含义不再介绍。upstream mr_api { server 10.1.1.1:8080; server 10.1.1.2:8080; check interval=3000 rise=2 fall=5 timeout=2000 type=http;...
2022-02-24 19:40:54
1864
转载 nginx小技巧之批量关闭进程
ps -ef | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9pgrep nginx | xargs kill -9转载:nginx小技巧之批量关闭进程 - SummerKing? - 博客园
2022-02-24 08:59:57
526
原创 MyBatis中使用collection一对多分页查询时记录数量不准确的问题
假设有如下实体表USER和USER_GROUP,及其映射表USER_MAPPING_USER_GROUPUSER ID USER_ACCOUNT USER_NAME 1 zhangsan 张三 USER_GROUP ID USER_GROUP_NAME 1 管理员组 USER_MAPPING_USER_GROUP USER_ID USER_GROUP_ID 1 1 现在要根据传入的查询参数:USER_ACCONT和USER..
2022-02-21 19:52:04
1354
1
转载 openresty的安装和使用
1.简介 OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,是一个强大的 Web 应用服务器,在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL,PostgreSQL,~Memcaches 以及 ~Redis 等都进行..
2022-02-16 18:17:24
170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人