- 博客(61)
- 资源 (7)
- 收藏
- 关注
原创 内部类是否会被垃圾回收器回收?
以下为本人测试得到的结果,从结果反推的结论。如果有不严谨的地方请指出。会被回收。由于GC的可达性算法,置位空的内部类没有任何引用,会被标记为垃圾对象测试:先建立一个内部类,内部类有里面设置一个大的占内存的变量public class Hello { private InnnerClass innnerClass = null; public void init(){ this.innnerClass = null; } public void cre
2021-06-25 11:13:56
765
1
原创 java net 请求发送demo
java net 请求发送我们日常对接第三方接口会有很多的便利的方式,如httpclient,等等的工具,不过底层的通过java原生的形式还是需要记录一下的。环境介绍:京东万象:京东旗下的一个服务接口集合有很多的服务:https://wx.jdcloud.com/api这里的都是提供了API,通过请求API可以获得信息。我们这里选择全国天气预报看到接口为: 我们分析一下接口,这里面提供了url要我们提供自己账号的appkey,这样才能提供服务。参数里面有三个不过可以任选其一。我们这里就查询
2021-06-19 09:57:12
202
转载 【算法】洗牌问题 - leetcode 384 打乱数组
方式:1.暴力法将所有的数放入一个容器内,随机取数值,以此形成一个数组。就和概率论中不放回抽奖一样 我们是可以得到选中每一个球的概率是:1n\frac{1}{n}n1对于实现这个算法来说我们需要将所有的数组取一个随机数并%上数组的当前最大值,然后移除该数据。获取当前的值随机元素方式: public int[] shuffle() { List<Integer> aux = getArrayCopy(); for (int i = 0; i &
2021-04-15 14:45:22
238
原创 FastDFS 的安装以及集成springboot
是什么fastDFS是一个分布式文件存储系统,适合存储中小文件(不超过500M)的系统,有着动态扩容,数据备份等的特点。4.05版本删去了http直接访问的内部数据的支持。所以需要加入Nginx在storage里进行区分结构跟踪服务器(Tracker Server)追踪服务器负责接收客户的请求,选择合适的存储位置(storage Server), 同时也会使用心跳机制确保storage Server是否存活。tracker是连接storage和用户端(client)的部分,能将当前的磁盘使用
2021-03-11 16:22:55
241
2
原创 Windows下安装docker 并实现本地打包
前言开发时候由于内外网分离,所以docker需要准备好才能在内网服务器上部署。为了简化开发准备在本地安装docker(win10下)准备docker安装包官方文档:win10专业版win10家庭版开始如果你是专业版win10【1】Hyper-v没打开。通过:控制面板->卸载程序->启动或关闭Windows功能如果没有Hyper-v说明你的电脑是家庭版win10 家庭中文版没有Hyper-V,这样一步搞定! 官方针对家庭版也提供了别的解决方案。win10专业版内置
2021-01-08 16:03:30
3787
2
原创 netty使用中的LEAK: ByteBuf.release() was not called before it‘s garbage-collected
1.问题描述使用netty做底层的tcp数据收发的项目时候,当对象上升到一定的时候(我这里是每秒1400的tcp包)会偶尔出现:LEAK: ByteBuf.release() was not called before it’s garbage-collected. See https://netty.io/wiki/reference-counted-objects.html for more information.Recent access records:2.问题分析我们是在数量多了以后遇到了
2020-12-31 16:20:39
20199
5
原创 MongoDB的权限验证
开启验证需要在mongod.conf需要开启认证在启动的时候需要加入–auth开启认证# 1在启动的时候需要加入--auth开启认证mongod -f /etc/mongod.conf --auth配置文件里配置security: #开启授权认证 authorization: enabled创建用户:db.createUser({user:"myroot",pwd:"123456",roles:[ { "role" : "root", "db" : "admin" }
2020-11-06 12:17:44
1074
1
原创 MongoDB集群部署
本笔记通过黑马视频学习和记录。副本集基本知识实现备份数据的高可用。两种类型(主节点、从节点)主节点:操作的主要节点,可以实现读和写功能。从节点:数据备份,主要是实现数据冗余、和读的功能。三种身份主要成员—主节点副本成员 — 从主节点进行复制操作,只读属性。仲裁者 — 不存储数据,只有投票作用搭建副本集我们本机搭建,通过端口号进行区分。主节点:27017;副本集:27018;仲裁节点:27019三个对外统一同名为myrs。先配置不同的节点。第一步:创建主节点建立数据
2020-11-06 10:28:21
921
原创 MongoDB安装及使用
官网文档1.安装注意 MongoDB X.02468版本为稳定版yum创建 文件 /etc/yum.repos.d/mongodb-org-4.4.repotouch /etc/yum.repos.d/mongodb-org-4.4.repo cd /etc/yum.repos.dvim mongodb-org-4.4.repo 写入[mongodb-org-4.4]name=MongoDB Repositorybaseurl=https://repo.mongodb.org/yu
2020-10-31 17:47:28
479
原创 对象以及数据结构的区别
对象以及数据结构的区别对象和数据结构在面向对象的过程中慢慢的变得不是那么明显了,在读到代码整洁之道(clean code)的第6章甚至对什么事对象和什么事数据结构产生了疑问。先用书中的一句话进行总结:对象是暴露行为,数据结构暴露数据。概念我们先看看维基百科对于数据结构和对象定义数据结构在计算机科学中,数据结构(英语:data structure)是计算机中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。
2020-09-27 15:44:28
1917
原创 VueX介绍 及相关的数据流动顺序
VueX介绍产生的原因vue开始的组件化开发,同时基于spa(single page app)使得前端项目呈现出组件树结构,这就自然而然的带来一个问题“组件间怎么通信?”。虽然我们可以通过$emit,和props实现组件间的简单通信,但是对于跨组件通信就显得很笨重。这时候有人建议,“我们可以定义一个新的vue,这个vue用于传输数据”,通过vue实现的消息订阅和监听确实可以实现跨组件通信,不过设想一个和你起名字风格一样的人,不幸的他器的名字和你起得一致。。。这就是一个隐形的灾难了。所以我们需要一
2020-08-15 09:04:30
1415
原创 MySQL v5.6版本安装
查询系统中已有的MySQLrpm -qa|grep mysql如果有卸载MySQL并删除相关文件(这里是基于默认安装的)yum remove -y mysql mysql-libs mysql-commonrm -rf /var/lib/mysqlrm -rf /etc/my.cnf安装v5.6 MySQLwget http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpmrpm -ivh mysql-communi
2020-08-09 10:41:43
185
转载 服务器部署node环境(包含nvm和二进制版,取自阿里云使用手册)
这里是借鉴阿里云的部署,地址:https://help.aliyun.com/document_detail/172788.html?spm=a2c4g.11186623.6.1154.27db55e1pnjt8j,如侵权,则删除。nvm服务器部署环境最好不要直接安装npm,应该通过一个软件对node的版本进行管理,所以应该先安装nvm#安装git 从远端拉去nvmyum install gitgit clone https://github.com/cnpm/nvm.git ~/.nvm &a
2020-08-09 10:29:51
299
原创 docker运行mysql在Navicat远程连接2013问题
背景:想要通过22端口连接服务器内网的地址,工具使用的是Navicat工具。首先通过ssh连接,连接到远程服务器,在通过连接内网的ip连接到数据库但是在常规这里出了问题,我当时写的是localhost后来又改成了127.0.0.1结果都不行。分析通过公网访问到的是这个服务器,但是这个并不和docker里面的部署的mysql在一个虚拟机器上。这时候Navicat进入到机器回去找回环地址下的3306,结果必然找不到,所以我们应该告诉Navicat动docker里面的mysql是什么路径。解决
2020-08-07 22:22:08
2000
原创 docker自启动redis及redis自定义配置conf
0前言本人想在docker里部署自定义的redis不过通过docker run -it redis:5.0.5 /bin/bash,在redis容器中没有找到redis的配置文件位置,最后通过查官方文档解决了:https://hub.docker.com/_/redis。现将自己的部署过程记录如下:1.通过docker使用redis通过docker使用redis只要两步。拉去redis镜像dockerHub的redis:https://hub.docker.com/_/redis# 查看r
2020-08-06 20:32:35
2503
原创 netty&springboot项目中autowired注入失败问题
问题描述背景:项目是使用netty进行通信的,并没有使用springboot功能,启动的时候是主方法里面有生成线程,通过new创建channel监听端口。public class RunServer { public static void main(String[] args) { Runnable task1 = () -> { TcpServer server = new TcpServer(); try {
2020-07-28 11:30:09
1093
2
原创 Vue集成Echarts 实测可以显示(柱状图和旭日图)
Vue集成Echarts官网:https://echarts.apache.org/zh/index.html不过没有集成vue的步骤 我实现了以后总结如下:我们需要以下几个东西:安装和引入echarts# 安装echartsnpm install echarts --save引入Echarts#使用echarts的组件Vue.use(echarts);#可以通过$echarts记性操作Vue.prototype.$echarts = echarts组件中引入echartsim
2020-07-09 23:03:55
1215
原创 前端错误之gyp ERR! configure error
1.背景我打算运行GitHub上的一个电商项目:https://github.com/macrozheng/mall-admin-web 。结果在npm install的时候出现了gyp ERR! configure error2.原因介绍通过查找博客发现是缺少node-sass@latestnpm install node-sass@latest 安装node-sass在npm install 发现没有错误了。系统可以正常启动了。...
2020-07-07 13:48:39
11060
8
原创 前端项目npm insatall 错误4048 以及node-gyp的安装错误
总结:对于本次npm安装的问题有:权限问题。有时候vscode去权限不足,需要专门用管理者运行。缓存问题(4048)。通过 npm cache clean --force,或者手动删除C盘用户下的.npmrc。镜像源问题。有些时候npm镜像下载会出问题,可以采用淘宝镜像下载,通过npm install -g cnpm --registry=https://registry.npm.taobao.org ,下载镜像。通过cnpm install 安装镜像。以为下自己尝试的过程描述:前端项
2020-06-19 09:29:44
1908
原创 docker 生成自定义镜像、发布、拉取、运行
材料:jar包写Dockerfile,注意如果用idea,可以安装docker的插件,这样dockerfile就有提示了。创建名字就用Dockerfile,就不会问你是那种类型的文件了# 下载java8FROM java:8# 添加作者信息MAINTAINER XXX# 将外面的所有的jar包加入镜像COPY *.jar /app.jar# 默认用8080端口CMD ["--server.port=8080"]# 暴露端口EXPOSE 8080# 运行docker run以后容器内
2020-06-09 20:09:10
625
原创 DockerFile指令与实战
实战来自于艾编程飞天二期班什么是dockerfiledocker是从来生成docker镜像的一些类指令集。执行dockerFile的时候回一行一行的执行,这也就是以后镜像的分层的来源。dockerfile的基本指令dockerFile的基本指令有:dockerfile的实战1例子来在于艾编程飞天二期coding老师我们先写一个小的centos的实例。要求这个centos安装vim和network的东西。分析:建立可以通过centos 开始,加入vim和network的东西,包装生成镜
2020-06-09 18:16:09
147
转载 CentOS 7 yum 安装与配置 JDK
本文为转载 原地址为:https://blog.youkuaiyun.com/github_38336924/article/details/82221258安装jdkyum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel配置环境变量在cd /etc/profile添加环境变量# set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.e
2020-06-09 18:03:33
211
原创 docker 镜像、持久化技术
docker安装es这里记录一下docker启动es时候因为es要占用大量的内存,所以我们需要接一些参数:Xmx,Xms,来限制es的内存消耗。# 将es的运行内存变小!docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms64m -Xmx512m" elasticsearch:7.7.1我们用宝塔进行监控。这个是限制es以
2020-06-08 23:00:02
500
转载 java -jar 启动springboot项目 显示“XXXXX.jar中没有主清单属性的解决办法”
需要在pom文件里加入插件配置,因为不加springboot的插件配置,无法将springboot打包进去启动。没有这个配置的packaging 之去找主函数。<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-p
2020-06-06 23:18:20
421
原创 docker 入门
为什么会出现docker 我们把一个项目看作是一桌饭菜,我们的一个个服务可以看成是主菜,其他的环境配置像是配菜。主菜再好吃,配上了不合适的配菜,这个一桌子的饭菜也不会很优秀。两次相同的主菜在不同的配菜面前也会不一样。 那我们如果要还原这个一桌饭呢? ------这个就是类似于docker的东西,即将环境进行“打包”。 docker的解决的痛点就是解决运维和开发在运行环境差异,上图,上部分是传统的开发,即开发人员只需要给运维人员一个jar包项目,运维人员就需要通过文档等将环境进行搭建。从运行项目。
2020-06-06 01:11:08
136
原创 activeMQ集成springboot
broker简介:broker可以内置在代码中,即启动项目的时候就可以自动开启消息队列。即实现嵌入式的组件。官网地址依赖的包<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifac
2020-06-03 10:14:29
258
原创 Active MQ 消息队列
有什么用?对于一个系统来说,少不了通信。如果要有通信的和返回就涉及到了同步和异步的问题了。讲个小故事: 现在有AB两个人一起做生意,A主要负责收钱,B负责发货。一开始人不多的时候,A收完钱要去给B说发货,两个人合作愉快;可是有时候B不在,A收了钱以后,就要等着B回来才能给B说发货的事情。久而久之,影响到了效率。 有一天,A给B说,“老哥,咱们这样:我收钱写订单,让后我把订单放在一个盒子里。你呢发货的时候也别来找我了,直接去盒子里看有没有订单就行。”一开始的两个人通信就是同步通信,只有A得到了B
2020-06-01 19:08:06
204
原创 elasticSearch java api接口
引入pom依赖这个是包装了方法的es客户端<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.7.0</version> </dependency>我们也可以用spr
2020-05-28 11:03:15
770
原创 elasticSearch基本操作
es是一个可以看作是数据库,所以基本操作就是增删改查。这种操作的风格是用RESTful方式。方法urlPUT(创建、替换)地址:端口/索引/类型名称/文档id{}POST(创建)地址:端口/索引/类型名称{}POST(更新)地址:端口/索引/类型名称/文档id/_update{}DELETE(删除)地址:端口/索引/类型名称/文档idGET(查询)地址:端口/索引/类型名称/文档idPOST(获得所有)地址:端口/索引/类型名称/文档id/_s
2020-05-26 22:12:47
140
原创 elasticsearch基本知识
es的基本词语取自互联网索引:ES将它的数据存储在一个或者多个索引中。用sql领域的术语来类比,索引就像数据库,可以向索引写入文档或者从索引中读取文档,并通过ES内部使用的Lucene将数据写入索引或从索引中检索数据。索引是具有某些类似特征的文档集合,索引由名称标识(必须全部小写)。文档:文档是可以建立索引的基本信息单元。例如,您可以为单个客户提供文档,为单个产品提供一个文档,为单个订单提供一个文档。该文档以JSON(JavaScript Object Notation)表示,JSON是一种
2020-05-25 23:43:17
276
原创 elasticSearch简介及安装(内含linux下的es+head+kibana)
elasticsearch的简介什么是es(elasticSearch)?我的理解es是一个数据库或者成为中间件,是一个用RESTful进行增删改查的数据库;这种数据库多是用于搜索。而这种搜索有别于关系型数据库的搜索。------------倒排索引搜索关于倒排索引可以这么理解:我们以前是通过歌名找歌曲,倒排索引是实现通过歌词找歌曲。即通过内容对找搜索对象。es的基本技术是Lucene,一个java写的全文检索开源工具。ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布
2020-05-25 21:53:22
936
原创 redis的缓存击穿、穿透、雪崩以及布隆过滤器
redis做缓存是用来解决读取数据的问题,即读取指令不先去数据库,而先查询。如果数据查询不到再去数据库进行查询。Redis的击穿可以理解成一个狙击枪子弹打向了数据库,redis没有挡住,一击打瘫痪了数据库。穿透就是一个点的热点数据突然查询不到,导致所有的请求直接访问数据库。核心:热点数据的过期。思路,要么缓存不要出现过期,要么再加一层。方案1、设置热点数据永不过期从缓存层面来说,没有设置过期时间,就不会产生穿透问题。2、加互斥锁(加入程序层)分布式锁:只要加了锁,可以保证每个key,只
2020-05-22 17:59:26
791
原创 redis集群以及集群搭建
为什么? 从单体的redis到高可用的master-slaver结构,不过这都是redis的单体,并不能称之为分布式。这样的redis架构并不能实现水平扩展。 为了加强redis的稳定性,增加灾备和容灾的处理能力,需要对redis进行集群搭建。结构:多个master对外进行服务。每个master都是高可用的master-slaver结构集群就是对外界提供提一的服务,这些master个自分工(slot槽形式 后面会讲)集群搭建注意:集群搭建并不需要配置sentinel的相关东西。单
2020-05-21 20:47:31
187
原创 redis的内部消息订阅及java配置
redis的keyspace与keyeventredis内部有自己可以实现的事件订阅方式,不用我们通过手动实现sub和public的指令。场景:如果有定时的任务怎样能够快速进行通知?即我们怎么样才能即时的得到超时的事件。不管是什么样的定时任务都会造成不瞬时的及时事件发布。 如果这个时候有一个方法在事件触发的时候通知我们岂不是很好。Redis在2.8版本后,推出keyspace notifcations特性,类似数据库的trigger触发器keyspace notifications是基于su
2020-05-21 15:35:34
492
原创 redis主从配置以及测试
redis主从将一个redis变成一堆redis,每个redis分工不同。用一群redis来实现当时一个redis的功能。基本机构为一主多从。对外提供io服务,内部的写入master,从slaver进行读取。做到读写分离,slaver需要按时同步master的数据。效果:主从配置以后可以做到读写分离,提高了redis集群的可读可写性能。如果读的压力高,只需要增加slaver节点即可。同时可以实现查询的负载均衡。故障转移,master-slaver的结构可以做到故障转移,如果master不可用
2020-05-19 21:07:27
586
原创 redis持久化探索
什么是redis持久化redis是内存数据库,即断电即逝。我们需要通过一些机制在断电之前就能保存相关的数据。redis存在两种数据持久化的策略------rdb和aof。rdb持久化触发机制:开始持久化的时候,从某个时间点开始fork一个新的进程,将fork进程中的所有数据写入本地,当整个数据写完后替换掉本地的dump.rdb。不能试试写入数据,会导致最后一次写入之后的数据丢失。如上图 浅色的都是生成dump.rdb文件的,深色时候如果没有达到存储的条件不会进行持久化操作。这时候如..
2020-05-19 16:05:51
110
原创 redis5种基本数据类型以及redis-benchmark的介绍
redis的基本基本使用redis-benchmarkredis-benchmark是一个redis自带的压力测试工具,我们可以通过命令行进行调用参数如下图输入一行指令进行的测试时:# 测试一:100个并发连接数 -c 100 100000万个请求 -n 100000 redis-benchmark -h localhost -p 6379 -c 100 -n 100000====== SET ====== 100000 requests completed in 1.64 secon
2020-05-19 10:55:46
944
原创 linux.centos7.X 下安装Redis(内涵redis6.0 make问题)
1.下载可以去官网或者中文网下载Redis官网:https://redis.io/中文网:https://www.redis.net.cn/2.加入linux准备工作将Redis放入我们的虚拟机中。将Redis包从root下移动到opt目录下放置(我用的是5.0.5,最近的Redis已经到6.0了)cp redis-5.0.5.tar.gz /opt对Redis的压缩包进行解压tar -zxvf redis-5.0.5.tar.gz3.安装解压以后进入解压产生的包cd redis
2020-05-15 09:51:50
856
node-v12.8.1-linux-x64.tar.xz nodelinux版二进制 具体用法可以看我的博文
2020-08-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人