0

HBase常用Api操作

一、 环境准备新建项目后在pom.xml中添加依赖:<dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</...

阅读全文>>

0

集群分布式下日志架构的搭建

问题1.生产环境中项目节点过多,如何集中管理日志?2.多节点项目中,出现问题如何定位到某个具体节点出现问题?进而迅速获取该节点日志?3.EFK是如何收集管理日志的?演示。4.搭建过程日志基础架构解决效果非容器日志查看效果容器日志查看效果思路首先确定那种日志,容器或者非容器针对于非容器日志,直接采用filebeat采集固定目录日志即可,只不过在采集参数上可以有所调整,可以直接将业务日志改成JSON,也可以不改,但是要注意的是日志采集的时候异常日志的采集方式,filebeat默认是单行,但是单行的对于出现一堆异常的日志来说,查看不是很方便明确,因此注意采取多行采集配置,如上图演示效果中的日志.日志...

阅读全文>>

0

java为我们已经提供了各种锁,为什么还需要分布式锁?

目前的项目单体结构的基本上已经没有了,大多是分布式集群或者是微服务这些。既然是多台服务器。就免不了资源的共享问题。既然是资源共享就免不了并发的问题。针对这些问题,redis也给出了一个很好的解决方案,那就是分布式锁。这篇文章主要是针对为什么需要使用分布式锁这个话题来展开讨论的。不喜勿喷。前一段时间在群里有个兄弟问,既然分布式锁能解决大部分生产问题,那么java为我们提供的那些锁有什么用呢?直接使用分布式锁不就结了嘛。针对这个问题我想了很多,一开始是在网上找找看看有没有类似的回答。后来想了想。想要解决这个问题,还需要从本质上来分析。OK,开始上车出发。一、前言既然是分布式锁,这就说明服务器不是一...

阅读全文>>

0

分布式锁设计方案

分布式锁设计方案一.需求背景1.背景系统背景解决方案单机系统单体单机部署的系统,需要对某一个共享变量进行多线程同步访问的时候,所有的请求都会分配到当前服务器的jvm内部,然后映射为操作系统的线程进行处理。而这个共享变量只是在这个jvm内部的一块内存空间。使用java并发处理的相关API进行互斥控制(如ReentrantLock或Synchronized)分布式系统由于分布式系统多线程、多进程并且分布在不同机器上,这将使原单机部署情况下的并发控制锁策略失效,单纯的java API并不能提供分布式锁的能力。这就是分布式锁需要解决的问题。使用分布式锁2.分布式锁具备的条件原子性:同一时刻,只能有一个...

阅读全文>>

0

DocFetcher - 开源的文件内容搜索工具

DocFetcher 是一款 开源 的 文件内容 搜索工具,它除了允许你 搜索电脑 上的 文件名称 查找文件以外,还支持通过 文件内容 进行查找 所需文件。除了 .txt 格式以外,还支持 .xlsx 等 常见格式,该软件支持在 Windows、macOS、Linux 操作系统上 运行使用,建议有 使用需求 的用户 安装使用。DocFetcher 依赖 JRE 环境,安装软件 时虽然可以 联网下载 并 进行安装,但实测下载 速度过慢 且时常出现 下载错误 无法安装等问题。先访问 分享网盘 中下载 离线安装包 后 双击运行 并依次点击 安装 - 关闭 按钮即可 完成安装。http://javad...

阅读全文>>

0

Java实现PDF首页转缩略图

一、maven安装<dependency> <groupId>org.icepdf.os</groupId> <artifactId>icepdf-core</artifactId> <version>6.2.2</version> </dependency>二、Java代码实现import org.icepdf.core.pobjects.Document; import org.icepdf.core.pobjects.Page; import org.icepdf.co...

阅读全文>>

0

dubbo filter实现参数透传

在项目中转递参数通常是在接口中传递,然后在每个方法中接受这些参数处理。dubbo提供了rpc上下文可以实现设置和接受这些参数,实现我们的参数透传。(本文于2019年11在个人博客简书发表)1.RpcContext利用RpcContext实现consumer和provicer参数传递例如:消费端: RpcContext.getContext().setAttachment("bizId", "小程序"); //调用dubbo activityAdminFacade.queryExchangeActivitiesByOption(option); 服务端: @Override publ...

阅读全文>>

0

自己动手写SQL执行引擎

自己动手写SQL执行引擎前言在阅读了大量关于数据库的资料后,笔者情不自禁产生了一个造数据库轮子的想法。来验证一下自己对于数据库底层原理的掌握是否牢靠。在笔者的github中给这个database起名为Freedom。整体结构既然造轮子,那当然得从前端的网络协议交互到后端的文件存储全部给撸一遍。下面是Freedom实现的整体结构,里面包含了实现的大致模块:最终存储结构当然是使用经典的B+树结构。当然在B+树和文件系统block块之间的转换则通过Buffer(Page) Manager来进行。当然了,为了完成事务,还必须要用WAL协议,其通过Log Manager来操作。Freedom采用的是索引...

阅读全文>>

0

各类数据库驱动包

我们在编译或使用一些数据同步软件时候,比如Datax、FlinkX、Kettle等,由于此类ETL软件连接的数据库较多,软件本身不提供各类数据库的驱动包,maven也无法找到相应的包,互联网上各类下载不是需要积分就是收费,很是不爽,因此通过在本人使用ETL软件过程中,整理的驱动包提供有需要的同胞使用,避免去互联网上花费较多的时间搜索。 Sybase驱动: jconn3-6.0.jar Sqlserver驱动: sqljdbc4-4.0.jar Postgresql驱动:postgresql-0.9.3-1102-jdbc4.jar oscarJDB驱动: oscarJDBC.jar Oracl...

阅读全文>>

0

JVM内存参数设置

关于JVM内存参数设置有一点想法,在这里记录一下:JVM内存参数设置没有固定的设置,一般都是对系统的业务以及单个业务对象的数据大小有一个初步的预估后,结合实际的业务场景以及并发量,对JVM内存参数进行一个初步的设置,并根据系统的实际运行情况来不断地调整,最后达到最佳的参数配置。下面我就根据之前做做的一个活动协同配置中心的业务,给出一个我认为合理的JVM配置信息针对营销活动推送中心的JVM参数配置之前我做过的一个营服协同中心的核心业务就是对活动消息进行一个收转发,从各个信息采集系统中获取需要推送的消息以及目标客户,在某个固定的时间以短信、电话等方式进行活动消息推送。业务规模:系统每天的推送消息总...

阅读全文>>