自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

devotedwife的博客

时间如潮水,往事是沙滩

  • 博客(62)
  • 收藏
  • 关注

原创 SpringBoot配合Drools workbench(BusinessCentral)和maven配置实现动态规则更新

@[TOC](SpringBoot配合Drools workbench(BusinessCentral)和maven配置实现动态规则)遇到的困境如前面的博文《Docker安装drools workbench和kie-server,使用http调用kie-server rest接口传json参数跑规则》所述,折腾了老半天,装好了workbench,终于可以编辑规则了。也配置好了kie server,终于可以动态发布规则了。然而还是遇到点问题:引入一个kieServer又增加了开发和运维的负担,一个wo

2021-07-13 10:14:59 2883 29

原创 LLaMa2 Chat gpt 大模型本地部署初体验

一直想在自己电脑或者测试环境随便找台服务器尝试部署一下“大模型”,但“大模型”对于内存和GPU的要求令人望而却步,层出不穷的各种术语也令人困惑,有点难以下手。经过一段时间,在百度千帆大模型平台、讯飞星火大模型平台、魔搭社区等平台的锤炼之下,对于“大模型”的应用有了一点点认知,但离“本地”部署和应用仍然差距甚远。无意中了解到 `llama.cpp` 这个开源项目,才算打开了一扇窗户。

2024-01-12 16:15:34 645 2

原创 confluence 备份与恢复

confluence是技术团队重要的知识资产,为了服务器发生故障后快速恢复,做了一次恢复演练,本文记录备份和恢复步骤。

2023-12-19 15:05:20 317

原创 商城系统 前后端交互 报文安全性问题 方案设计

H5商城作为面向互联网的系统,在客户端与服务端通信时需要考虑报文安全性问题,在此对实践中采用的其中一种设计方案做一个总结和介绍。

2023-10-12 19:21:12 321

原创 Gitlab 备份和恢复

gitlab可以算作公司最重要的知识资产之一,虽然由于其设计,每个开发本地可能都存在着负责项目的全部提交记录,但一旦gitlab发生故障,轻则浪费大量时间进行项目重建,重则丢失项目代码数据。未雨绸缪,提前进行gitlab备份和数据恢复演练,本文记录gitlab的定时备份方案和数据恢复操作。

2023-09-20 15:17:51 648

原创 玩客云 线刷Armbian 搭配Alist 阿里云盘 Jellyfin NovaVideoPlayer搞电视墙

玩客云 线刷Armbian, 使用docker 安装alist,挂载阿里云盘,使用jellyfin 和 NovaVideoPlayer刮削海报墙和播放视频

2023-09-01 17:03:27 7845

原创 使用idea开发和调试maven插件

使用idea开发工具开发和调试maven插件

2023-04-20 11:05:31 359

原创 自定义maven插件,在项目中命令启动springboot并加载当前项目资源

大体思路是:开发一个自定义maven插件,将业务代码在单独的项目中进行开发,需要启动项目时,在项目目录下执行mvn命令,执行maven插件,这个插件会将当前项目的(类)资源和依赖的依赖包添加到类加载器,并启动springboot项目,实现在springboot项目启动当前项目的目的。最开始的做法是让业务开发同事在项目的module管理模块下新建业务module模块(见下描述),在不同分支开发不同的业务,开发自测的时候,需要在springboot模块中依赖具体业务module并启动。

2023-04-11 10:27:27 744

原创 用户资金账户表设计

用户资金账户以及变更流水表设计

2022-11-30 16:32:19 1109

原创 Confluence安装Drawio插件

记录confluence安装drawio插件步骤

2022-05-16 17:02:10 5410 21

原创 Nginx安装步骤记录

若可以使用Root用户安装Nginx,则sudo yum install nginx-1.18.0-1.el7.ngx.x86_64.rpmsudo systemctl status nginxsudo systemctl start nginx配置完成后使用如下命令检查配置是否正确nginx -t若无问题,使用如下命令加载配置nginx -s reload若不能使用Root用户安装Nginx,则使用root用户安装依赖yum -y install gcc-c++ yum -

2021-09-08 14:39:18 165

原创 当Kong遇上redirect 302重定向

在线上环境中,常常因为网络限制等,通过nginx做反向代理,将不同的服务通过同一个入口提供给请求方。事情呢是这样的为了方便配置和使用更丰富的功能,我们在测试环境使用了kong来做反向代理网关。使用浏览器访问http://ip_a:port_a/app,使用konga页面配置将请求转发到http://ip_b:port_b/app。在大多数场景下,工作良好。今天在配置新的应用时突然发生问题,现象如下:浏览器访问http://ip_a:port_a/app浏览器地址栏跳转到http://ip_b:p

2020-11-06 09:02:00 2050

原创 mysql 5.7 详细安装配置步骤记录

下载地址https://downloads.mysql.com/archives/community/解压安装包tar -xvzf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz mkdir /usr/local/mysqlcp mysql-5.7.31-linux-glibc2.12-x86_64/* /usr/local/mysql -r添加用户组和用户groupadd mysqluseradd -r -g mysql mysqlchown -

2020-10-18 23:36:42 169

原创 mysql binlog日志查询

binlog日志查询ssh sz-db-m #登陆db-master机器cd /data/server/mysql/data #可以通过cat /etc/my.cnf查看路径mysqlbinlog --start-datetime='2017-07-17 15:38:00' --stop-datetime='2017-07-17 15:41:00' -d orderdb mysql-bin.000073 -v > tmp.log需要注意:mysql-bin.000073是当时最新的b

2020-10-10 09:24:25 111

原创 使用wildfly部署Drools workbench 即 business central

使用wildfly部署Drools workbench 即 business central安装JDK安装wildfly部署businessCentral由于环境的限制,不能再使用docker部署drools workbench。因此,这几天研究了一下如何离线部署,并记录此文。由于drools workbench(现命名为business central)在某版本之后,不再支持tomcat容器,因此,参考了docker hub上的docker file配置,使用了wildfly来部署。具体安装步骤如下。

2020-10-06 00:08:00 2013 16

原创 Docker安装drools workbench和kie-server,使用http调用kie-server rest接口传json参数跑规则

Docker安装drools workbench和kie-server,使用http调用kie-server rest接口传json参数跑规则安装Drools workbench安装Kie-server使用Workbench定义数据对象和规则通过Java Api调用规则Rest api调用规则安装Drools workbenchworkbench从某个版本开始就改名字叫Business Central了,然而,我们在docker hub上看到的名字仍然是workbench。参考: https://hu

2020-08-21 17:39:12 2936 4

原创 编译Drools Workbench,修改样式并打包发布

在之前的项目里面,我们只是用到了drools的语法和运行能力,自己编写前端页面生成drools规则脚本。这种做法的好处是,学习成本低,前端更简洁更符合业务需要。但缺点是,难以推广至所有业务场景,在最近的新项目中,要用到评分卡,决策表,规则流等更高级的规则引擎用法,前面为了营销业务而开发的配置前端已经不能满足需求。 然而,Drools自身开源的配置前端-Drools Workbench- 功能完善却复杂,我们在这几天内调研该项目定制化可行性,主要的想法是:能够修改页面风格...

2020-08-17 20:29:21 540

原创 Drools中eval的正确打开姿势

前面在做drools规则设计和测试时,发现一个很坑爹的现象,当LHS的某一行存在eval短句时,or短路就不生效了。具体情况如下例子。我写了一个简单的例子:import java.util.*;global me.tangliu.drools.Test test;rule "rule01"when Map(this["A"] == 1000) || eval(test.tes...

2020-04-23 21:22:43 3264 2

原创 基于drools语法实现衍生变量功能的设计

基于drools语法实现衍生变量功能的设计概述思路优化想要更多概述在现有的设计中,我们使用页面拖拉选择用户变量并编辑条件、按照drools的语法生成规则脚本,生成的结果类似于下边这样:import java.util.*;rule "rule01"when $m:Map() eval(true) && Map(this["A"]>=1000) &a...

2020-04-07 17:29:16 898

原创 《技术力量-一线技术团队成功启示录》读后感

最近抽空拜读了技术力量这本书,由于时间关系,目前只看完了前两篇,即“团队管理/组织发展”以及“测试管理/质量平台”,对比自己的工作经历和平时的思考,有些想法在此记录。 在“团队管理/组织发展”章节中,共有来自十个不同类型公司的技术管理者分享他们的经验,大至几千人的团队负责人,小的也带领十来个人的开发团队,公司类型覆盖互联网以及金融行业。 第一篇文章中...

2019-11-23 15:22:33 362

原创 maven打可执行包时多依赖包同名配置文件冲突的解决方法

项目使用maven做依赖管理和打包,依赖了drools包,drools中又依赖了kie包,两个包都是执行必须的,两个包的资源文件夹中都有一个叫kie.conf的配置文件,里面的配置内容不一样。在本地执行时不会冲突,但使用maven插件打包成一个可执行jar包后,java启动运行中抛出异常。观察日志,发现是读取kie.conf中的某个key读取失败,然后发现有多个kie.conf文件,maven打...

2019-11-22 20:13:52 2501 2

原创 读《规则引擎:大厂营销系统资格设计全解》关于资格判断设计的思考

前几天读了《规则引擎:大厂营销系统资格设计全解》,里面对于静态资格、动态资格的设计,虽然叫法名称不同,但与我们目前在做的营销管理系统设计从业务以及逻辑流程上很相似,然而做得更优雅更抽象。具体而言静态资格的判断在进行静态资格判断时,我们系统目前是将每一个活动的静态资格做成一个drools脚本,对于一个触发用户,需要使用他的标签数据去执行每一个活动的规则脚本来判断是否满足静态资格条件,也就是我们...

2019-10-22 23:26:24 445

原创 HbaseTemplate未复用Connection等坑

以前都是使用Hbase的java api,自己写getTable, 自己封装get、scan、Result解析等方法以实现查询等功能。最近用springBoot写项目,需要查询Hbase,想到既然都用Spring了,直接就用它封装好的HbaseTemplate岂不美哉,人家spring封装的总比自己写的好吧。于是引入了spring-data-hadoop和spring-data-hadoop-h...

2019-09-17 11:06:03 1109 2

原创 Redis集群踩坑记

个人博客原文地址: http://www.ltang.me/2019/07/02/redis-cluster-problems/背景系统中Redis使用三台服务器(slave01,slave02,slave03),交叉搭建了三主三从集群。一段时间内,Redis集群频繁出现CLUSTERDOWN异常,使用redis-cli客户端连上集群后,使用cluster info查看集群信息,发现 clus...

2019-07-02 22:43:57 687

原创 定时删除Mysql表过期数据的小工具

背景最近接到一个需求,业务数据表中有三张表,只想保留最近365天的数据,过期的就删除,避免这些没有太大意义的数据造成数据表越来越大。当时想了两种解决方案:方案一利用mysql的event事件机制,通过写sql脚本,可以很快的完成这个需求,优点很明显:快速实现,时间成本低不需要再引入什么乱七八糟的东西或者代码但是,也有很明显的缺点:没有日志啊,怎么知道有没有跑,成没成功呢只能...

2019-06-22 23:06:41 388

原创 JAVA版本的FTP和SFTP代理程序

背景之前公司某个需求,需要使用FTP传输文件,由于服务器间网络不通,需要使用一台跳板机才能访问,所以我们需要一个FTP代理软件,让我们客户端可以通过它访问外网的FTP服务器。辛酸泪最先想到的是nginx,但是作为一个SFTP的代理也许可行,毕竟只需要一个SSH端口,作为一个静态文件服务器也行,但是作为一个FTP代理,需要考虑到控制端口和数据端口,nginx并不能满足FTP代理的需求。然后调...

2019-06-12 12:47:17 1879 12

原创 孤灯诡谈(一)

亘古不变的月,孤独地挂在如墨的夜空,苍白的光照耀在冰冷的土地上,给我的只是阴寒与苦寂。夜风呼啸,刺透我的心肺,剧烈的咳嗽改变不了我冷漠的表情,也许不是冷漠,只是不知道还能用什么表情面对这一切。林子里的老树落光了叶,枯枝交错,蒙着死人骨头一样的月光,在半空中张牙舞爪,投下魑魅鬼影,团团将我围住。冷笑地瞥过这么些自傲的小丑,拔剑环顾片刻,起身一绕,身边便清净不少。满足地叹息一声,重又重重坐在地上,...

2019-05-19 00:03:12 218

转载 抽丝剥茧NIO

原文地址: https://zybuluo.com/zhangever/note/972295抽丝剥茧NIO 一 基础概念 1.1 缓冲区 1.2 数据流 1.3 关键的tcp内核参数 1.4 问题 二 NIO的底层实现机制 三 经典的NIO使用模式 3.1 简单模式 3.1.1 问题 3.2 Reactor模式 3.2....

2018-12-21 15:17:40 213

原创 解决maven私服nexus无法下载snapshot版本包

现象某天,将某项目的shapshot版本的包deploy到nexus私服上,通过页面可以搜索到该包,但是在项目中引用时,始终无法下载,但是release版本的包可以。原因maven默认不下载snapshot版本的jar包,需要修改pom文件中的配置解决<repositories> <repository> <id>nexus&l

2018-12-19 14:37:41 11057 1

原创 grpc使用ssl(tls) 通过openssl指定多个域名和IP

最近在使用grpc做项目,信息安全的同事提出要求,需要将来往报文加密,避免抓包。阅读grpc的文档,发现它已经支持ssl(tls),因此直接选这种认证和加密方式。服务端和客户端代码参考grpc-java项目中的demo,摘取关键代码如下:服务端 private SslContextBuilder getSslContextBuilder() { InputStream cac...

2018-11-27 22:13:20 3052 3

转载 Java 基础复习

原文地址:https://github.com/CyC2018/CS-Notes/blob/master/notes/Java%20%E5%9F%BA%E7%A1%80.md一、数据类型    * 包装类型    * 缓存池二、String    * 概览    * 不可变的好处  &nbs...

2018-10-17 12:16:31 130

转载 Java并发编程:volatile关键字解析

原文地址:https://www.cnblogs.com/dolphin0520/p/3920373.html   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好...

2018-08-31 00:51:11 79

原创 Jquery load 方法下前进、后退、刷新问题的解决

个人博客原文地址:http://www.ltang.me/2018/04/15/jquery-load-back-forward-refresh/做一个后台管理系统的时候,用到了admin-lte框架。不过其实大部分后台管理系统都是这样的设计,即,左边是可以缩进的菜单栏,右边是内容,用户点击菜单的时候,菜单栏和上边的用户信息栏并不会重新加载,也就是不会跳转到新的页面,紧紧是更新了右边的内容模块...

2018-08-21 21:56:13 1905

原创 通过jmx动态修改logback的日志级别

个人博客原文地址:http://www.ltang.me/2018/04/02/jmx-logback/应用上线后常常会面对这样一种困境,即,如果把日志级别开得太高,那么当系统出现问题时不好查,如果把日志级别定得太低,那么硬盘很可能很快就被撑爆了。 这时候我们常常选择先将日志级别定高点,当出现问题时,再调低。大部分时候人们习惯的做法是修改logback.xml配置文件,然后重启应用。 这听...

2018-08-21 21:55:12 3163

原创 多节点定时任务的同步

个人博客原文地址:http://www.ltang.me/2017/11/29/quartz-synchronize-with-zookeeper/背景现在有两个或以上的web节点,启动时,会查询数据库,根据数据库中配置的数据(cron表达式等)创建定时任务。由于期望一个任务定时只有一个节点执行,所以需要多个web节点间做master竞选,这个已经实现了,身为master的web节点会将定...

2018-08-21 21:50:37 2969

原创 重置Kafka Consumer偏移量

个人博客原文地址:http://www.ltang.me/2017/06/05/kafka-consumer-problem/产生原因中午在生产数据库执行了升级sql,导致数据表结构变更,产生了大量的binlog信息,后台服务(order-service)使用kafka consumer消费binlog消息,由于数据量大,处理缓慢,导致后续的生产订单更新无法通过binlog更新到redis...

2018-08-21 21:46:23 3547 2

原创 Mysql从库重建

个人博客原文地址:http://www.ltang.me/2017/05/15/mysql-slave-rebuilding/Mysql从库恢复失败推断是因为一句修改表结构的语句在从库执行失败(或者未同步?)导致mysql从库同步异常,使用命令show slave status;可以看到Slave_IO_Running: YesSlave_SQL_Running: No然后通...

2018-08-21 21:37:42 2340

原创 使用同一个线程调用本容器的其他服务,不经过网络传输

个人博客原文地址:http://www.ltang.me/2017/04/12/Call-local-service-in-one-thread/dapeng容器目前的模式,每个请求都需要以调用远程服务的方式请求服务,即使它请求的服务运行在本地同一个容器内。打个比方,客户端调用A服务,A服务内需要调用B服务,这时候,对于A服务来说,它是B服务的客户端,它请求B服务的方式与标准的前端没有任何区别...

2018-08-21 21:35:31 177

原创 JAVA NIO学习笔记

个人博客原文地址:http://www.ltang.me/2017/03/14/Nio-study/java IOjava1.4之前,java只支持一种阻塞式IO,可以称之为BIO。对应于网络编程,服务端提供了位置信息(ip和端口),客户端向服务端监听的端口发起连接请求,通过三次握手建立连接,然后通过网络套接字(socket)进行通信。这是一种同步阻塞式的通信模式,通常由一个独立的Ac...

2018-08-21 21:31:28 231

原创 阿里云redis事故纪录

个人博客原文地址:http://www.ltang.me/2017/02/20/redis-accident-record/经过今天早上生产出现事故,所有到网站的请求nginx报500错误,查看后台日志,发现连不上redis了;进入服务器,可以连上redis, 但是所有操作提示需要登陆,当时没有重视,只是纪录并重启redis;下午再次出现相同情况。查看连接到redis端口的日志,发现...

2018-08-21 21:30:01 565

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除