摘要: 前言 在分布式系统中经常会遇到某个业务仅需要单个节点执行的场景,通常这样做是为了解决并发引起的状态不一致问题。 但是为了防止出现单点故障,又需要为这些节点做故障转移的实现。 简单的方案是同时起多个节点,但是只有一个节点作为主节点执行业务,其他的作为备份节点需要实时跟踪主节点运行状态, 一旦发现主节点 阅读全文
posted @ 2022-06-08 10:39 lichmama 阅读(459) 评论(0) 推荐(0) 编辑
摘要: BTrace简介 BTrace是一种安全,动态的Java跟踪工具。BTrace通过动态(字节码)检测正在运行的Java程序的类来工作。BTrace将跟踪操作插入到正在运行的Java程序的类中,并对跟踪的程序类进行热交换。 相关信息参考 https://github.com/btraceio/btra 阅读全文
posted @ 2020-08-21 16:31 lichmama 阅读(497) 评论(0) 推荐(0) 编辑
摘要: 工作中需要用到一个支持变量替换和自定义函数的模板表达式,发现现有的开源项目不能满足,于是自己造了个轮子。 该模板表达式核心就三个文件: ExpressionNode.java -- 表达式节点 public class ExpressionNode { /** 模板 **/ public stati 阅读全文
posted @ 2020-05-26 11:30 lichmama 阅读(642) 评论(0) 推荐(0) 编辑
摘要: 背景介绍 在某些项目中会使用插件化技术实现一些动态“插拔”或热更新的功能。一般的做法是,定义一个标准接口,然后将实现分离进行独立部署或更新。 现在有个场景,系统希望引入一些特殊的业务“函数”,并支持热更新。来看看我们是怎么实现的。 业务函数接口:IFunction.java /** 业务函数接口 * 阅读全文
posted @ 2020-05-09 16:28 lichmama 阅读(8038) 评论(3) 推荐(2) 编辑
摘要: 很遗憾,这样的集群基本上没啥用处,没有容错能力。因此本文仅可作为学习ES集群部署的参考文档。 系统配置: 修改/etc/hosts增加 127.0.0.1 node01 127.0.0.1 node02 127.0.0.1 node03 修改/etc/sysctl.conf增加配置,然后执行sysc 阅读全文
posted @ 2020-02-25 22:36 lichmama 阅读(2021) 评论(0) 推荐(0) 编辑
摘要: 最近项目上用到了Kafka(作为数据源接入),这里将自己的实践分享出来,供大家参考或针砭。 从网上查阅资料发现,基本上有2中与Kafka对接的方式: 1.Spring-Kafka 2.调用Kafka API自己实现ConsumerClient Spring-Kafka的基本原理就是Spring自动轮 阅读全文
posted @ 2020-02-15 15:45 lichmama 阅读(7524) 评论(2) 推荐(1) 编辑
摘要: 参考 工作中遇到的一个问题,手机端上传图片出现卡顿,经排查发现是图片过大引起的。参考网上资料,整理出一个图片压缩(缩放)的demo页面。 demo包含图片预览,缩放以及生成文件下载三个功能,放在这里备忘,有需要的朋友可以拿去参考。 canvas-preview-and-zoom.html <!DOC 阅读全文
posted @ 2019-11-08 17:02 lichmama 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 经历了之前的两篇,我们已经大体上了解了docker部署容器的过程。 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错。那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生。 关于docke 阅读全文
posted @ 2019-08-20 22:56 lichmama 阅读(944) 评论(0) 推荐(0) 编辑
摘要: 上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远。其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点。 废话少说,直接进入正题。 首先拉取mysql镜像: 创建本地mysql目录: 在mysql/conf目录下创建配置文 阅读全文
posted @ 2019-08-19 22:24 lichmama 阅读(1069) 评论(0) 推荐(0) 编辑
摘要: 架构说明: 参考文档: 配置docker镜像仓库:/etc/docker/daemon.json 下载nginx和tomcat的镜像: 创建nginx和tomcat本地目录,稍后将挂载到docker容器上: 在tomcat/webapps/ROOT中创建index.html: 启动tomcat: 获 阅读全文
posted @ 2019-08-16 20:47 lichmama 阅读(6871) 评论(0) 推荐(0) 编辑