![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后台开发
文章平均质量分 60
M_O_
书山有路勤为径,学海无崖苦作舟
展开
-
es之null_value
在es中, null, [], [null] 这三个值会被当成null值(空值)在映射中可以指定字段的null_value, 当字段的值为null值时,es会使用null_value为此字段创建索引,但不会替换文档中的null值,客户端可以使用null_value搜索文档。如果索引文档的时候,没有包含某字段,那null_value搜索也无法找到此记录,可以使用exists来搜索。原创 2023-10-27 15:17:14 · 909 阅读 · 0 评论 -
安装SkyWalking 9.2.0
skywalking9.2.0原创 2022-11-11 11:30:52 · 2417 阅读 · 1 评论 -
gradle7打包libs目录中的jar生成fat jar
需求需要做一个公共业务包,包里引用了一些第三方的jar(文件形式), 需要打一个整包给业务服务使用,让业务服务不用关注这些第三方的jar, 同时不要打包其他的像日志库之类的东西。解决修改jar任务:jar { from { configurations.runtimeClasspath.findAll { //打包所有libs目录中的jar文件 it.parent.equals(project.rootDir.path + '/原创 2022-03-29 19:57:24 · 3229 阅读 · 0 评论 -
记一个写日志阻塞的问题
背景我们有多家客户,每个客户有自己的服务器(Windows Server),现在需要在客户的服务器上部署程序并自动更新,考虑到后期还会有其他的程序,所以我们首先做了一管理程序,管理程序从云端获取应用列表, 如果版本更新或者本地没有,就自动下载应用并安装启动,启动方式是使用Runtime.getRuntime().exec("java -jar xxx.jar")问题子应用运行起来后,调用...原创 2019-11-18 20:27:50 · 3499 阅读 · 1 评论 -
为什么我的定时器不跑了
最近要搞个小服务运行在多家客户的windows服务器上,里面有两个定时任务,一个是定时检查版本号,一个是定时向服务器汇报状态,都使用 spring 的@Scheduled实现。昨天晚上让它们跑着,今天上午一看,居然没有汇报状态了,(无奈,肯定有bug)。登录服务器,看到服务还在运行,看了一下没有打日志了,访问端口有数据返回,那这个服务应该还活着,定时器不跑了?没有太多的办法,老实下载了一个j...原创 2019-11-15 20:48:45 · 2404 阅读 · 0 评论 -
微服务基于请求的异步日志跟踪
在<<微服务基于请求的日志跟踪>>上设计了基于请求的微服务日志处理方法, 但是发现在log4j处于异步的情况下会失效, 原因是RequestId无法从原线程传输到打印日志的线程, 异步情况下(AsyncLoggerConfig), 日志先被enqueue到一个队列,然后若干线程去消费这个队列, 因为跨了线程,所以不能通过线程变量传递过去.查看了相关代码, 发现log4j首...原创 2018-12-18 15:43:22 · 961 阅读 · 0 评论 -
spring boot datasource hikari 配置说明
hikari cp参数解释在:https://github.com/brettwooldridge/HikariCP#configuration-knobs-baby原文如下:usernameThis property sets the default authentication username used when obtaining Connections fro...转载 2018-12-25 15:55:24 · 9188 阅读 · 2 评论 -
spring cloud gateway 配置分析
srping cloud gateway 版本: 2.0.2自动配置类列表spring.factories# Auto Configureorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.cloud.gateway.config.GatewayClassPathWarnin...原创 2019-01-05 16:46:56 · 5833 阅读 · 0 评论 -
mybatis generator 修改
修改目标mybatis配置spring使用时, 原生的generator 不能满足需求 , 生成后需要修改代码, 增加和删除字段会比较烦琐, 因此需要对generator进行修改, 达到一键生成的效果.去除烦人的注释, 只显示数据库中的注释Mapper类增加@Mapper注解实体类继承基类,并且不覆盖基类中的成员(比如id)实体类增加序列化字段serialVersionUID下载源...原创 2019-03-12 10:11:04 · 1430 阅读 · 0 评论 -
spring boot 集成 redis 缓存
在spring中使用redis缓存有如下方式:直接使用各种redis客户端提供的接口使用spring data redis使用spring caching 注解直接使用客户端提供的接口这个没什么好说的, 直接看相应客户端的文档就行了, 当前redis有非常多的客户端官网的客户端列表: https://redis.io/clients在java语言方面, 官网推荐: Jedis, ...原创 2019-05-11 16:42:09 · 129 阅读 · 0 评论 -
使用Redisson操作分布式队列的注意事项
先说结论:使用Redisson提供了集合操作时, 比较操作不使用对象的equals, 而是使用二制进行比较.最近做一个定时任务的服务, 需要用到分布式优先级队列, 选择了Redisson库.Redisson的队列有很多, 也都继承了java包的Queue接口, 看起来非常方便.修改代码后, 发现一个很奇怪的问题, 将一个元素加进去之后, 移除不了, remove 返回了false.元素...原创 2019-05-23 14:02:10 · 2172 阅读 · 0 评论 -
spring data jdbc 基本使用
文章目录配置使用创建表创建实体类创建操作接口Repository读写数据总结官方文档:https://docs.spring.io/spring-data/jdbc/docs/1.0.6.RELEASE/reference/html/spring data jdbc是spring data产品中的一员, 它提供查询数据库并映射成实体的功能,类似于jpa,但没有实体生命周期管理这些复杂功能, 并...原创 2019-08-02 15:34:06 · 14525 阅读 · 4 评论 -
java 日志库搭配
是不是经常被各种日志库搞得头晕脑转? 看看官方提供的日志库搭配吧。log4j 搭配http://logging.apache.org/log4j/2.x/runtime-dependencies.html模块说明依赖log4j-apilog4j的apiNonelog4j-corelog4j的实现DependencyTreelog4j-1.2-api...原创 2019-09-02 21:46:10 · 192 阅读 · 0 评论 -
微服务网关spring cloud gateway
文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.0.2.RELEASE/single/spring-cloud-gateway.html基本概念Route路由器=ID+URI+Predicates+Filters路由器决定如何处理请求, 当一个请求到来的时候, 跟据匹配条件找到路由器, 再由路由器...原创 2018-12-14 14:31:52 · 2373 阅读 · 0 评论 -
微服务基于请求的日志跟踪
需求自从公司采用微服务架构以后,日志不好看了, 虽然已经把所有日志都收集到了elk, 但是因为一个前端的请求通过N个服务,导致日志分布很零乱,没有办法显示这一个请求相关的日志,所以需要开发一点小功能来实现单个请求的跟踪.设计基本的想法是, 对每个请求设置一个RequestId, 然后让这个id跟随请求传输到每个服务,进而打印到日志中. 需要解决以下问题:1.请求id的隔离;2.将自定义变...原创 2018-12-06 11:10:32 · 1766 阅读 · 0 评论 -
[spring-boot] 使用gradle建立项目
使用gradle建立spring-boot项目 https://spring.io/guides/gs/spring-boot/ 安装或更新Gradle https://downloads.gradle.org/distributions/gradle-3.5-bin.zip 使用gradle创建项目 https://guides.gradle.org/creating-new-gradl原创 2017-04-28 12:55:22 · 855 阅读 · 0 评论 -
[spring-boot] 配置数据库
guide: https://spring.io/guides/gs/accessing-data-jpa/ https://spring.io/guides/gs/accessing-data-mysql/增加依赖 compile ‘org.springframework.boot:spring-boot-starter-data-jpa’ compile ‘mysql:mysql-con原创 2017-04-28 13:02:00 · 1208 阅读 · 0 评论 -
[spring-boot] 使用redis
安装redis:$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz$ tar xzf redis-3.2.8.tar.gz$ cd redis-3.2.8$ make配置:$ vi redis.confrequirepass 123456 #配置密码port 6231 #配置端口daemonize yes #配置后台运原创 2017-04-28 13:10:25 · 627 阅读 · 0 评论 -
外网流量转发到本地
有时候在对接第三方服务时,需要将外网流量转发到本地,方便调试。 这个可以使用ssh的远程转发功能实现,关于ssh转发,这里有一篇比较好的文章: https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward/外网转发流量到本地,需要有一台外网服务器做转发工作。配置外网服务器sshsudo vi /etc/ssh/sshd_config增加:原创 2017-04-22 21:57:59 · 2629 阅读 · 0 评论 -
[spring-boot] thymeleaf 热交换
使用spring boot main方法启动时,修改了thymeleaf文件后,热交换不能起作用,每次修改都需要重新启动服务,非常不方便,google搜索到方法,特分享于此。 原文:https://github.com/spring-projects/spring-boot/issues/34 The default template resolver registered by spring原创 2017-05-28 20:11:14 · 595 阅读 · 0 评论 -
[spring-boot] 使用spring session
为了解决分布式HttpSesssion的问题,可以使用spring session, 在和spring boot 一起使用时,spring session的配置更简单了: Spring Session - Spring Boot1. 导入依赖 //session compile 'org.springframework.session:spring-session:1.3.1.REL翻译 2017-07-17 22:23:25 · 762 阅读 · 0 评论 -
Unmarshaller转换xml到对像为空的问题
最近使用到@ResponseBody解析xml,但是始终数据为空,开始以为是HttpMessageConverter没有配置好,然后自己定义了一个配置,debug进去,发现问题出在unmarshal这里,源数据是对的,结果为空。实验后发现,被转换的类,成员必须定义为public或者使用@XmlElement注释,否则转换不出来,即使名字一样。 也就是说下面这个类不能转换出来: @XmlRoo原创 2017-08-10 22:31:45 · 4566 阅读 · 5 评论 -
[spring-boot] 集成shiro (二)
sessionshiro有自己的session管理类,因为之前已经在项目中集成了spring session,shiro也可以使用spring session,只要配置shiro使用容器的session管理即可,spring session在后面拦截了容器的session实现。 @Bean(name = "securityManager") public SecurityMa原创 2017-07-28 23:46:49 · 375 阅读 · 0 评论 -
sql事务
事务概念事务特性ACID事务隔离级别序列化Serializable可重复读Repeatable read读已提交Read committed读未提交Read uncommitted事务隔离级别读问题事务的默认隔离级别案例分析参考资料事务概念 A transaction symbolizes a unit of work performed within a database原创 2017-09-29 14:07:20 · 269 阅读 · 0 评论 -
[spring-boot] 集成shiro
shiro介绍shiro是一个权限管理框架,基于用户-角色-权限。一个用户可以有多个角色,一个角色有多个权限,每个权限指定了资源的访问。 shiro的原理是在所有请求之前设置一个filter,这个filter判断哪些资源需要权限,哪些不要,对于不需要权限的直接放行,对于需要权限的,使用securityManager和realm进行身份验证和授权,如果验证失败或者权限不足,都跳转到登录页面或者...原创 2017-07-24 22:11:15 · 575 阅读 · 0 评论 -
RocketMq ConsumerGroup Tag对消费的影响
官方对consumer的定义如下: Similar to previously mentioned producer group, consumers of the exactly same role are grouped together and named Consumer Group. Consumer Group is a great concept with which achie...原创 2018-07-08 20:47:43 · 12486 阅读 · 0 评论 -
spring boot log4j2
记录一下spring boot使用log4j2日志框架, 配置使用异步写入日志导入依赖(gradle)configurations { all*.exclude group: 'org.slf4j', module: 'slf4j-log4j12' all*.exclude group: 'log4j', module: 'log4j' all*.exclude gro...原创 2018-10-15 14:24:26 · 274 阅读 · 0 评论 -
Intelij根据数据库表生成实体类
配置数据库打开数据库设置View->Tool Windows->Database 在右侧会打开一个Database的窗口,点击+,选择Data Source,选择自己的数据库类型,然后填写好参数,就可以看到自己数据库中所有的表了。修改脚本默认的情况下,使用脚本生成的文件,在命名上有些问题,比如 user_name表,会生成User_name.java,里面的属性也是这样的,但如果我们希望生成Use原创 2017-04-08 14:19:54 · 4433 阅读 · 1 评论