- 博客(227)
- 资源 (12)
- 收藏
- 关注
原创 IDEA的微服务启动的控制台
对于公司一般采用的微服务架构的项目来说因为服务比较多 所以不可能每一个 项目都启动一个控制台这样对于统一管理来说是个灾难所以统一的管理 是比较简洁和有条理的 非常方便分析问题怎么设置呢?view-tool windows - services然后出现控制台设置选项勾选一下最后设置服务类别打开列表 往下找选择Spring boot就可以了看到所以需要启动的服务入口了后面启动就在这里 很方便...
2021-05-18 09:16:37 2220 1
原创 ElasticSearch基础篇
为什么要用ElasticSearch?完全把数据放在内存中是不可靠的,实际上也不太现实,当我们的数据达到PB级别时,按照每个节点96G内存计算,在内存完全装满的数据情况下,我们需要的机器是:1PB=1024T=1048576G节点数=1048576/96=10922个实际上,考虑到数据备份,节点数往往在2.5万台左右。成本巨大决定了其不现实!从前面讨论我们了解到,把数据放在内存也好,不放在内存也好,都不能完完全全解决问题。全部放在内存速度问题是解决了,但成本问题上来了。为解决以上问题...
2021-05-12 21:38:04 788
原创 RocketMQ事务消息
RocketMQ事务消息的实现原理基于两阶段提交和定时事务状态回查来决定消息最终是提交还是回滚。应用程序在事务内完成相关业务数据落库后,需要同步调用RocketMQ消息发送接口,发送状态为prepare的消息。消息发送成功后,RocketMQ服务器会回调RocketMQ消息发送者的事件监听程序,记录消息的本地事务状态,该相关标记与本地业务操作同属一个事务,确保消息发送与本地事务的原子性。 RocketMQ在收到类型为prepare的消息时,会首先备份消息的原主题与原消息消费队列,然后将消息存储在主
2021-05-10 22:40:13 1476
原创 RocketMQ消息消费(三)
顺序消息RocketMQ支持局部消息顺序消费,可以确保同一个消息消费队列中的消息被顺序消费,如果需要做到全局顺序消费则可以将主题配置成一个队列,例如数据库BinLog等要求严格顺序的场景。根据并发消息消费的流程,消息消费包含如下4个步骤:消息队列负载、消息拉取、消息消费、消息消费进度存储。消息队列负载RocketMQ首先需要通过RebalanceService线程实现消息队列的负载,集群模式下同一个消费组内的消费者共同承担其订阅主题下消息队列的消费,同一个消息消费队列在同一时刻只会被消费组内一个
2021-05-09 00:26:44 1182 3
原创 RocketMQ消息消费(二)
消息队列负载与重新分布机制RocketMQ消息队列重新分布是由RebalanceService线程来实现的。一个MQClient-Instance持有一个RebalanceService实现,并随着MQClientInstance的启动而启动。RebalanceService#run @Override public void run() { log.info(this.getServiceName() + " service started");
2021-05-08 22:11:39 1734
原创 RocketMQ消息消费(一)
消息消费以组的模式开展,一个消费组内可以包含多个消费者,每一个消费组可订阅多个主题,消费组之间有集群模式与广播模式两种消费模式。集群模式,主题下的同一条消息只允许被其中一个消费者消费。广播模式,主题下的同一条消息将被集群内的所有消费者消费一次。消息服务器与消费者之间的消息传送也有两种方式:推模式、拉模式。所谓的拉模式,是消费端主动发起拉消息请求,而推模式是消息到达消息服务器后,推送给消息消费者。RocketMQ消息推模式的实现基于拉模式,在拉模式上包装一层,一个拉取任务完成后开始下一个拉取任务。Rock
2021-05-06 22:43:10 1735
原创 SpirngBoot集成验证码生成EasyCaptcha
POM依赖 <dependency> <groupId>com.github.whvcse</groupId> <artifactId>easy-captcha</artifactId> <version>1.6.2</version> </dependency>DEMOimport javax.
2021-04-30 22:26:59 789 1
原创 调试RocketMQ的源代码
GitHub代码库链接:https://github.com/apache/rocketmq.git进行编译下载依赖mvn clean install -Dmaven.test.skip=true调试RocketMQ源码1.启动NameServer1.在RocketMQ运行主目录中创建conf、logs、store三个文件夹。2.配置 ROCKETMQ_HOMEROCKETMQ_HOME=E:\rocketmq3.从RocketMQ distribu..
2021-04-28 21:30:07 772
原创 RocketMQ消息存储篇(一)
存储概要设计RocketMQ主要存储的文件包括Comitlog文件、ConsumeQueue文件、IndexFile文件。RocketMQ将所有主题的消息存储在同一个文件中,确保消息发送时顺序写文件,尽最大的能力确保消息发送的高性能与高吞吐量。但由于消息中间件一般是基于消息主题的订阅机制,这样便给按照消息主题检索消息带来了极大的不便。为了提高消息消费的效率,RocketMQ引入了ConsumeQueue消息队列文件,每个消息主题包含多个消息消费队列,每一个消息队列有一个消息文件。IndexFile索引文
2021-03-05 15:20:40 1682 1
原创 求两个字符串的最长公共子串(动态规划)
最长公共子串问题是寻找两个或多个已知字符串最长的子串。此问题与最长公共子序列问题的区别在于子序列不必是连续的,而子串却必须是。public class A { private static int getCommonStrLength(String str1, String str2) { //创建一个二维数组大小,行列为str1.length()+1,str2.length() //这一步主要是为了生成网格数组 int len1 = str
2021-03-05 10:55:40 3525 1
原创 RocketMQ消息发送篇
RocketMQ支持3种消息发送方式:同步(sync)、异步(async)、单向(oneway)。同步:发送者向MQ执行发送消息API时,同步等待,直到消息服务器返回发送结果。 异步:发送者向MQ执行发送消息API时,指定消息发送成功后的回调函数,然后调用消息发送API后,立即返回,消息发送者线程不阻塞,直到运行结束,消息发送成功或失败的回调任务在一个新的线程中执行。 单向:消息发送者向MQ执行发送消息API时,直接返回,不等待消息服务器的结果,也不注册回调函数,简单地说,就是只管发,不在乎消息是否
2021-03-03 17:58:40 2148
原创 RocketMQ路由中心NameServer篇
RocketMQ物理部署图Broker消息服务器在启动时向所有NameServer注册,消息生产者(Producer)在发送消息之前先从NameServer获取Broker服务器地址列表,然后根据负载算法从列表中选择一台消息服务器进行消息发送。NameServer与每台Broker服务器保持长连接,并间隔30s检测Broker是否存活,如果检测到Broker宕机,则从路由注册表中将其移除。但是路由变化不会马上通知消息生产者。NameServer启动流程NameServer启动类:org.ap
2021-03-02 11:01:08 1652
原创 算法——归并排序
归并排序算法是基于归并(Merge)操作的一种有效排序算法,是采用分治法(Divide and Conquer)的典型应用。基本思想:归并排序的原理是先将原始数组分解为多个子序列,然后对每个子序列进行排序,最后将排好序的子序列合并起来。/** * @Classname A * @Description TODO * @Date 2020/12/30 11:15 * @Created zzf */public class A { public static void main
2020-12-30 14:40:53 1071
原创 算法——插入排序
插入排序的基本思路是将一个数据插入已经排好序的序列中,从而得到一个新的有序数据,该算法适用于少量数据的排序,是稳定的排序方法。代码: for (int i = 1; i < a.length; i++) { //插入的数 int val = a[i]; //被插入的位置和前面一个数比较 int index = i - 1; //只要index值>=0
2020-12-29 16:45:27 1000
原创 Java集成MinIO
官方文档地址:https://docs.min.io/cn/java-client-api-reference.html#setBucketPolicy1.pom依赖 <dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> <version>3.0.10&
2020-12-01 10:51:52 2894
原创 Maven 加载外部依赖解决方式
1.pom文件修改:此时我要引入一个名为jna和examples的jar。 <dependency> <groupId>com.sun</groupId> <artifactId>jna</artifactId> <version>1.0</version> </dependency>
2020-11-26 13:26:31 3053
原创 海康NVR-SDK对接技术方案
1.下载SDKhttps://www.hikvision.com/cn/download_61.html2.DEMO使用1.修改SDK和LIB的PATH路径如: static HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("D:\\NVR\\CH-HCNetSDKV6.1.4.42_build20200527_win64\\Demo示例\\4- Java 开发示例\\1-ClientDemo\\ClientDemo
2020-09-28 09:37:29 16184 8
原创 Nmap命令详解
NMAP命令用法nmap [Scan Type(s)] [Options] {target specification}Linux下安装NMAPyum install nmapsudo apt-get install nmap用主机名和IP地址扫描系统Nmap工具提供各种方法来扫描系统。在这个例子中,使用主机名和IP来扫描系统找出该系统上所有开放的端口,服务和MAC地址。用主机名扫描系统[root@localhost zzf]# nmap www.baidu.comS
2020-07-14 18:46:10 10125
原创 Kail安装中文
1.配置阿里镜像源gedit /etc/apt/sources.listdeb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib2.使用命令更新,升级软件包apt-get update && apt-get upgrade3.使用命令安装输入法框架apt-get install fcitx4.使用命令安装谷歌输入法apt-get install fcitx-g.
2020-07-10 00:13:33 1213
原创 Python操作Word文档(python-docx)
需求:生成word文档并返回url地址:# -*- coding:utf-8 -*-# 消费者import base64import jsonimport osimport smtplibimport timefrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextimport docximport pikaimport pytzimport requestsad
2020-07-09 16:01:01 1878
原创 Guava-RateLimiter实现令牌桶控制接口限流方案(注解方式)
常见限流方案1.计数器法原理:在单位时间段内,对请求数进行计数,如果数量超过了单位时间的限制,则执行限流策略,当单位时间结束后,计数器清零,这个过程周而复始,就是计数器法。 缺点:不能均衡限流,在一个单位时间的末尾和下一个单位时间的开始,很可能会有两个访问的峰值,导致系统崩溃。 改进方式:可以通过减小单位时间来提高精度。2.漏桶算法原理:假设有一个水桶,水桶有一定的容量,所有请求不论速度都会注入到水桶中,然后水桶以一个恒定的速度向外将请求放出,当水桶满了的时候,新的请求被丢弃。 优点:可
2020-06-29 18:49:01 2184
原创 Python同时读写Excel
1.需要安装的模块pip install xlutilspip install xlrdpip install xlwt2.样例代码import xlrdimport xlwtfrom xlutils.copy import copy# zq_data = {}# add_zq_data = {}# with open('department_copy1.json', 'r', encoding='UTF-8')as f:# data = json.load(f)
2020-06-15 11:43:51 2468
原创 Python图片合成(添加文件/图片)
新来了个需求……生成HTML模板再转JPG,于是在试了Html2Image和Imgkit 我放弃了通过HTML生成的方式……实在是太难了……页面画不出来。。。样式调好了通过Java运行不生效、页面展示的留白太多等等问题…… 最后我选择了这种方式:这是一张模板,代码如下:# -*- coding: utf-8 -*-# pip install opencv-python# pip install Pillowimport cv2import numpy as npf...
2020-06-12 14:04:20 1616
原创 图片转HTML字符画
一段很有意思的脚本,把图片转字符画用html展示出来!import osfrom io import BytesIOfrom urllib import requestfrom PIL import Imagefrom PIL import ImageFilterTEMPLATE = '''<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>.
2020-06-09 19:46:46 1377
原创 SnowJean使用以及原理(SpringBoot)
一.使用1.POM文件 <dependency> <groupId>cn.yueshutong</groupId> <artifactId>snowjean-spring-boot-starter</artifactId> <version>3.0.0.RELEASE</version> </dependen
2020-05-30 15:14:35 1579 6
原创 使用Mybatis中分表插件shardbatis
1.POM依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </depen...
2020-05-06 17:02:39 1911
原创 PerfTest对RabbitMQ进行压力测试
下载地址:官网地址:http://www.rabbitmq.com/java-tools.html下载后进行解压即可:使用方式runjava com.rabbitmq.perf.PerfTest --helpusage: <program> -?,--help show usage -a,-...
2020-03-05 16:31:00 4128
原创 ShedLock做定时任务锁
github地址:https://github.com/lukas-krecan/ShedLock目前公共存储目前支持的有:Monogo DynamoDB JdbcTemplate ZooKeeper (using Curator) Redis (using Spring RedisConnectionFactory) Redis (using Jedis) Hazelcast...
2020-02-24 15:03:02 1800
原创 SpringBoot整合pushgateway、Alertmanager做监控报警
这里需要通过pushgateway推送数据引入依赖 <!--普罗米修斯依赖--> <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient_spring_boot<...
2019-12-20 17:42:16 5335
原创 Swagger接口文档生成
pom文件修改 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</ve...
2019-12-19 11:59:39 1432
原创 odoo搭建安装
下载下载压缩包或者git clone https://github.com/odoo/odoo.git安装依赖pip install -r requirements.txt通过nodejs安装lessnpm install -g lessnpm install -g less-plugin-clean-css创建一个odoo用户(PostgreSQL...
2019-12-13 15:33:56 1991
原创 SpringBoot多环境使用logback
在不同环境下可能需要使用不同的日志输出,如正式环境就需要用ELK,而测试环境只需要输出到文件。 现在我有两个logback文件:测试环境:logback-test.xml<?xml version="1.0" encoding="UTF-8"?><configuration debug="false"> <!--定义日志文件的存...
2019-12-12 09:58:04 1815
原创 监控神器-Prometheus(pushgateway、Alertmanager)
服务端搭建https://blog.csdn.net/qq_37598011/article/details/101105086pushgateway安装及其使用https://prometheus.io/download/wget https://github.com/prometheus/pushgateway/releases/download/v1.0.0/pushg...
2019-12-11 14:34:41 2775 7
原创 监控神器-Prometheus(原理和实践)
特点Prometheus 具有以下特点:强大的多维度数据模型: 时间序列数据通过 metric 名和键值对来区分。 所有的 metrics 都可以设置任意的多维标签。 数据模型更随意,不需要刻意设置为以点分隔的字符串。 可以对数据模型进行聚合,切割和切片操作。 支持双精度浮点类型,标签可以设为全 unicode。 灵活而强大的查询语句(PromQL):在同一个查询语...
2019-12-10 16:24:51 3024 5
原创 Docker核心原理(Docker背后的内核知识)
Docker容器本质上是宿主机上的进程。Docker通过namespace实现了资源隔离,通过cgroups实现了资源限制,通过写时复制机制(copy-on-write)实现了高效的文件操作。namespace资源隔离 完成一个基本容器需要六项隔离,Linux内核中提供了这六种隔离的系统调用:namespace的六项隔离 namespace 系统调用参数 隔...
2019-12-09 17:00:50 2157
原创 提升访问github的访问速度
首先进入这个网站:http://tool.chinaz.com/dns查询以下几个地址:github.comassets-cdn.github.comgithub.global.ssl.fastly.net如:找到TTL最小的那个值,记下他的IP。C:\Windows\System32\drivers\etc\hosts最后添加到hosts文件末尾:...
2019-12-06 14:56:57 4336
原创 Docker基础/搭建redis主从
安装https://docs.docker.com/install/linux/docker-ee/centos/#repo-install-and-upgradesudo yum -y install docker-ee docker-ee-cli containerd.iosudo systemctl start docker测试sudo docker run hello...
2019-12-05 10:07:44 1635
原创 SpringBoot+Logback+ELK+Kafka+Sleuth链路追踪做日志收集
ELK搭建https://blog.csdn.net/qq_37598011/article/details/103260806配置修改先到logstash的config目录下cd /application/logstash/config/新建logstash-test.conf配置vim logstash-test.confinput { kafka{ ...
2019-11-28 10:17:12 3805
Java+海康SDK DEMO
2020-12-05
Nessus-7.2.3-x64.msi
2020-07-15
spade114.zip
2020-07-10
odoo-13.0.zip
2019-12-13
jTessBoxEditorFX-2.0.1.zip
2019-07-22
InfluxDB.zip
2019-06-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人