- 博客(96)
- 资源 (1)
- 收藏
- 关注

原创 01-Dubbo的初体验
#Dubbo2.X的初识##Dubbo背景Dubbo是分布式远程服务通信框架,与传统单体框架相比,扩展了远程服务之间的通信、服务的治理,其中在单点服务之间的通信上采用RPC模式,而且在通信协议上支持Java的RMI、webservice、JAX-RS、http等协议。从Dubbo的开发您可以了解到如果我们要去开发一款远程通信框架,需要思路的方向。1、底层网络通信协议的处理。2、序列号与反序列号的处理。3、服务的治理。Dubbo框架在服务的治理中实现了:服务链路的跟踪与监测、服务的
2020-08-30 21:47:08
122
原创 01--vue3关键信息
vue.config.js的关键配置devServer来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为'',即空字符串
2021-06-14 09:09:10
201
原创 数据可信传输
数据可信传输整体设计功能设计概要1、网络通信防篡改机制通过指针Hash+原发的方式进行网络通信。1.1、总体设计1.2、放篡改机制方案1.2.1、协同验证1.2.1.1、数据传输格式采用http请求方式,其中指针保存请求头部,原文保存请求体。1.2.1.1、数据防篡改校验接收方接收到数据后,通过发送方提供的hash算法,将原文数据运算得出Hash,将得到的Hash与发送方提供的请求头提供的Hash做对比,如果相等,则接收方入库,如果不相等,接受发响应数据.
2021-03-08 16:16:16
738
原创 NPS内网穿透技术
1、官网文档https://ehang-io.github.io/nps/#/install2、简要安装与配置2.1、服务端配置2.1.1、查看系统版本多少位lsb_release -a如果提示-bash: lsb_release: command not found输入下面的指令在执行上面的查看本版指令yum install -y redhat-lsb2.1.2、下载服务器端安装包了解了自己的系统本版以后自行到https://github.com/cnlh...
2021-03-03 13:26:21
2389
原创 logstash结合后台日志过滤用户操作信息
配置文件input { file { path => ["F:/log/log_info.log"] #codec => plain{ charset => "GBK" } start_position => "beginning" stat_interval => "3" }}filter { grok { match => { "message" => "(?<systemlog>[\d\D]*
2021-02-05 16:41:28
220
原创 03--elasticsearch基本操作
创建索引numberofshards 分片数量 每个索引产生多少个分片在集群中,最好平均分布,不宜过多也不能少,如果单机的就没有必要设置很多了 1 个就可以了,这个后期是不能改的 numberofreplicas 副本数量 为了高可用 refresh_interval 数据能够刷新时间 默认是 1s查询索引信息:http://localhost:9200/user删除索引:创建文档POST http://127.0.0.1:9200/user/hello/...
2021-01-24 19:47:42
169
原创 02--elasticsearch基本数量类型
一、字段类型概述二、字符串类型ElasticSearch对字符串拥有两种完全不同的搜索方式. 你可以按照整个文本进行匹配, 即关键词搜索(keyword search), 也可以按单个字符匹配, 即全文搜索(full-text search).text用于全文搜索的, 而keyword用于关键词搜索.Text:会分词,然后进行索引支持模糊、精确查询不支持聚合keyword:不进行分词,直接索引支持模糊、精确查询支持聚合text当一个字段是要被全文搜索的,比如Em.
2021-01-24 02:43:38
301
原创 01--elasticsearch的基础
ElasticSearch简介高扩展的分布式全文检索引擎 ,近乎实时的存储、检索数据 。可以扩展到上百台服务器,处理PB级别的数据。ElasticSearch安装与启动安装ES服务ElasticSearch的官方地址: https://www.elastic.co/products/elasticsearch修改elasticsearch配置文件:config/elasticsearch.yml,增加以下两句命令:http.cors.enabled: truehttp.cors.
2021-01-23 23:42:08
98
原创 02--设计模式
泛化概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。表示方法:用实线空心三角箭头表示。实现概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述表示方法:空心三角形箭头的虚线,实现类指向接口依赖概念:是一种使用的关系,即一个类的实现需要另一个类的协助。java中,方法参数需要传入另一个类的对象,就表示依赖这个类。表示方法:虚线箭头,
2021-01-14 13:49:52
91
原创 01---设计模式--装饰者模式
1.装饰者模式让我们来假设一下,你正在寻找一个女朋友。有很多来自不同国家的女孩,比如:美国,中国,日本,法国等等,他们每个人都有不一样的个性和兴趣爱好,如果需要在程序当中模拟这么一种情况的话,假设每一个女孩就是一个Java类的话,那么就会有成千上万的类,这样子就会造成类的膨胀,而且这样的设计的可扩展性会比较差。因为如果我们需要一个新的女孩,就需要创建一个新的Java类,这实际上也违背了在程序开发当中需要遵循的OCP(对扩展开放,对修改关闭)原则。2.类图结构3.装饰者模式示例代码Girl
2021-01-14 13:23:05
94
原创 04--Linux awk用法
一、awk命令简介awk是一个强大的文本分析工具。awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。二、awk命令格式及选项语法形式awk [options] 'script' var=value file(s)awk [options] -f scriptfile var=value file(s)常用命令选项-F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F:-v var=value 赋值一个用户定义变量,将外部变量
2021-01-13 11:39:59
191
原创 03--Linux grep 命令
Grep 是 Global Regular Expression Print 的缩写。搜索指定文件的内容。语法grep [OPTIONS] PATTERN [FILE...]grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]常用选项--help-V, --version-G, --basic-regexp BRE 模式,也是默认的模式-E, --extended-regexp ERE 模式-P, --perl-regexp ...
2021-01-12 16:48:22
169
原创 09---集群的快速配置
1、mongodb的priority可以用来控制副本集的优先级:如果在建立config配置时候没有指定 副本集所有成员默认 priority=1,投票选举与优先级没有关系冲裁节点和延迟节点 priority=0 不参与主的竞争其他每个节点都有个优先权,可以手动设置优先权来决定谁的成为primay的权重最大。副本集中通过设置priority的值来决定优先权的大小,这个值的范围是0--100,值越大,优先权越高。修改过程:rs.conf查看副本集成员的priority值 重点看me.
2021-01-10 02:58:50
208
原创 08---搭建分片集群
mongodb 中的分片机制知识点:分片的概念 mongodb 中的分片架构 分片示例1.为什么需要分片?随着数据的增长,单机实例的瓶颈是很明显的。可以通过复制的机制应对压力,但mongodb中单个集群的 节点数量限制到了12个以内,所以需要通过分片进一步横向扩展。此外分片也可节约磁盘的存储。1.mongodb 中的分片架构1.mongodb 中的分片架构分片中的节点说明:路由节点(mongos):用于分发用户的请求,起到反向代理的作用。配置节点(config):
2021-01-10 02:24:01
168
原创 07---搭建主从复集群
mongodb搭建主从复集群知识点:复制集群的架构 复制集群搭建 复制集群的选举配置1.复制集群的架构复制集群搭建基础示例1、新建三个目录mkdir -p /data/mongo/mastermkdir -p /data/mongo/slavemkdir -p /data/mongo/slave22、在mongdb目录下新建三个配置文件vim mongo-master-27017.conf主节点配置dbpath=/data/mongo/master.
2021-01-10 02:18:00
120
原创 06--基础入门
MongoDb的逻辑组成体系结构:逻辑结构与关系数据库的对比: 关系型数据库 MongoDb database(数据库) database(数据库) table(表) collection( 集合) row( 行) document( BSON 文档) column(列) field(字段)...
2021-01-10 02:01:22
106
原创 05---mongo中使用aggregation和$lookup实现多表关联
简单两表关联---------------------mong中语句拼接------------------------java代码实现(BasicDBObject.class为返回结果集类,可根据需求进行更改,在Criteria中可进行多条件拼接)复杂多表关联(java代码实现与两表关联代码类似不重复)-----------------------------mongo语句实现($match为条件拼接,若条件为关联表中的字段,则需要根据关联表相应的结果集(as)属性后面名称拿到&l
2021-01-10 01:55:45
291
原创 04----深入理解MongoDB聚合(Aggregation )
MongoDB中聚合(aggregate)操作将来自多个document的value组合在一起,并通过对分组数据进行各种操作处理,并返回计算后的数据结果,主要用于处理数据(诸如统计平均值,求和等)。MongoDB提供三种方式去执行聚合操作:聚合管道(aggregation pipeline)、Map-Reduce函数以及单一的聚合命令(count、distinct、group)。1. 聚合管道(aggregation pipeline)1.1聚合管道聚合管道是由aggregation fram.
2021-01-10 01:51:35
1307
原创 03-索引
1. 索引索引支持查询的有效地提高效率。没有索引,MongoDB必须扫描集合的每个文档,以选择与查询语句匹配的文档。这种扫描效率很低,需要MongoDB处理大量的数据。索引是特殊的数据结构,以易于遍历的形式存储数据集的一小部分。 索引存储特定字段或一组字段的值,按照索引中指定的字段值排序。1.1 索引案例首先创建大量数据。向集合中插入10万条文档。for(i=0;i<100000;i++){ db.t1.insert({name:'test'+i, age:i}) }然后
2021-01-10 01:30:39
110
原创 02-mongodb MongoDB 聚合 group
MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。基本语法为:db.collection.aggregate([<stage1>,<stage2>,...])现在在mycol集合中有以下数据:{ "_id" : 1, "name" : "tom", "sex" : "男", "score" : 100, "age" : 34 }{ "_id" : 2, "n...
2021-01-10 01:19:59
3005
原创 01--mongo数据库的各种查询语句示例
db.users.find() select*fromusers db.users.find({"age":27}) select*fromuserswhereage=27 db.users.find({"username":"joe","age":27}) select*fromuserswhere"username"="joe"andage=27 db.users.find({},{"username"...
2021-01-10 00:52:27
110
原创 计算机英语的积累
converter 英[kənˈvɜːtə(r)] 转换器, 变流器; 使发生转化的人(或物); 整流器; (改变无线电信号的)变频器; ...
2021-01-03 10:15:38
79
原创 开发工具的介绍
MongoDB可视化工具:Robo 3TRedis可视化工具:MedisIntelliJ IDEA插件推荐 插件名称 插件说明 Alibaba Java Coding Guidelines 阿里巴巴代码规约 CodeGlance 代码编辑缩略图 GrepConsole 日志输出色彩区分(方便查看日志) JRebel 热部署 MavenHelper Maven插件(方便解决依赖冲突) Rest
2020-12-29 14:23:46
91
原创 Docker ---01docker的安装和配置
1、Dockerfile、Docker镜像和Docker容器的关系Dockerfile 是软件的原材料,Docker 镜像是软件的交付品,而 Docker 容器则可以认为是软件的运行态。2、安装docker01 进入centos702 卸载之前的docker sudo yum remove docker \ docker-client \ docker-client-latest \
2020-12-22 10:03:02
120
原创 网络--03使用协议进行通信
tcp连接建立以后,就可以基于这个连接通道来发送和接受消息了,TCP、UDP都是在基于Socket概念上为某类应用场景而扩展出的传输协议,那么什么是socket呢?socket是一种抽象层,应用程序通过它来发送和接收数据,就像应用程序打开一个文件句柄,把数据读写到磁盘上一样。使用socket可以把应用程序添加到网络中,并与处于同一个网络中的其他应用程序进行通信。不同类型的Socket与不同类型的底层协议簇有关联。主要的socket类型为流套接字(stream socket)和数据报文套接字(datagra
2020-12-20 20:32:37
128
原创 网络--02TCP/IP协议的深入分析
在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SY
2020-12-20 18:42:36
134
原创 网络--01远程通信协议
一个http请求的整个流程负责域名解析的DNS服务首先,用户访问一个域名,会经过DNS解析DNS(Domain Name System),它和HTTP协议一样是位于应用层的协议,主要提供域名到IP的解析服务。我们其实不用域名也可以访问目标主机的服务,但是IP本身不是那么容易记,所以使用域名进行替换使得用户更容易记住。加速静态内容访问速度的CDNCDN(Content Delivery Network)内容分发网络。CDN其实就是一种网络缓存技术,能够把一些相对稳定的资源放到
2020-12-13 22:39:30
320
原创 02--Linux的sed使用
sed是流编辑器,每一次读取一行到内存中,即称之为模式空间(pattern space) 默认不修改原文件,如果需要修改需加-i参数 sed有模式空间及保持空间(hold sapce),默认打印模式空间中的内容到标准输出 sed读取每行的时候会将内容保存至内存中 支持正则和扩展正则表达式,除-y选项命令行格式:将包含sed的命令写在命令行中执行 $ sed [options] 'command' files[Options]:-n : 与p(print)命令合用时,表示只显示被选中的行,而
2020-12-05 23:54:35
99267
原创 01--Linux的vim基础操作
说明 命令 不保存退出 强制退出 保存退出 显示行号 不显示行号 光标快速定位到第99行 删除3到15行 搜索文本中Listen这个关键字,并定位到下一个搜索到的关键字 设置文档格式为uft-8 批量修改全文内容 向下翻一页 ...
2020-12-05 14:06:26
206
转载 为什么SpringMVC中请求的body不支持多次读取_2的32次方-优快云博客
为什么SpringMVC中请求的body不支持多次读取_2的32次方-优快云博客
2020-12-03 12:34:27
177
原创 Sharding-JDBC
01、主要概念增强了JDBC的功能,使JDBC具有分库分表的作用。比如:SQL的解析、路由、执行和结果的处理等等。02、框架:逻辑表会在SQL解析和路由时被替换成真实的表名。分片键不一定是主键,也不一定有业务含义。03、核心概念数据节点、逻辑表、真实表、动态表、广播表、绑定表、分片键【1】、动态表对于逻辑表的分表【2】、广播表全局表,每个分片的数据库都包含有该表。【3】、绑定表主表和字表的绑定关系应该在同一个数据库,负责无法关联出数据的完整性。
2020-10-23 20:59:06
363
原创 02-JVM实战
01、查看参数java -XX:+PrintFlagsFinal -version > flags.txt值得注意的是"="表示默认值,":="表示被用户或JVM修改后的值02、实践和单位换算1Byte(字节)=8bit(位) 1KB=1024Byte(字节) 1MB=1024KB 1GB=1024MB 1TB=1024GB设置堆内存大小和参数打印 -Xmx100M -Xms100M -XX:+PrintFlagsFinal 查询+PrintFlagsFinal的值...
2020-10-18 02:18:30
326
原创 01-JVM---Garbage Collect 垃圾回收
01、怎么确定一个对象是垃圾对象引用计数法:对于某个对象而言,只要应用程序中持有该对象的引用,就说明该对象不是垃圾,如果一个对象没有任何指针对其引用,它就是垃圾。【缺点:互相引用导致永远不被回收】 可达性分析:通过GC Root的对象,开始向下寻找,看某个对象是否可达。【能作为GC Root:类加载器、Thread、虚拟机栈的本地变量表、static成员、常量引用、本地方法栈的变量等】02、垃圾收集算法【1】、标记-清除(Mark-Sweep)找出内存中需要回收的对象,并且把它们标记出来.
2020-10-18 00:31:11
168
2
原创 01--BeanFactoryPostProcessor
扩展原理:BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的BeanFactoryPostProcessor: beanFactory后置处理器 在BeanFactory标注初始化之后调用;来制定和修改BeanFactory的内容 所有的bean定义已经保存加载到beanFactory,但是bean的实例还没有创建BeanFactoryPostProcessor原理1)、ioc容器创建对象...
2020-10-12 15:11:03
108
原创 04--@EventListener与SmartInitializingSingleton
SmartApplicationListener1)、IOC容器创建对象并refresh()2)、finishBeanFactoryInitialization(beanFactory);初始化剩下的单实例bean 1)、先创建所有的单实例bean;getBean() 2)、获取所有创建好的单实例bean,判断是否是SmartInitializingSingleton类型; 如果...
2020-10-12 14:57:31
96
原创 03--ApplicationListener用法与原理
import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationListener;import org.springframework.stereotype.Component;@Componentpublic class MyApplicationListener implements ApplicationListener<ApplicationEvent.
2020-10-12 14:56:07
16160
原创 02--BeanDefinitionRegistryPostProcessor
BeanDefinitionRegistryPostProcessor:利用BeanDefinitionRegistryPostProcessor给容器中再额外添加一些组件BeanDefinitionRegistryPostProcessor extends BeanFactoryPostProcessor: postProcessBeanDefinitionRegistry() 在所有bean定义信息将要被加载,bean实例还未创建; 优先于BeanFactoryPostPro...
2020-10-12 14:21:13
95
原创 03-Spring @Transactional注解不回滚不起作用无效
@Transactional注解的特性:service类标签(一般不建议在接口上)上添加@Transactional,可以将整个类纳入spring事务管理,在每个业务方法执行时都会开启一个事务,不过这些事务采用相同的管理方式。 @Transactional 注解只能应用到 public 可见度的方法上。 如果应用在protected、private或者 package可见度的方法上,也不会报错,不过事务设置不会起作用。 默认情况下,spring会对unchecked异常进行事务回滚;如果是check
2020-10-11 14:15:43
160
转载 02--spring事务的介绍
一、事务简单介绍事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功。1.1 事务基本要素原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。1.2 Spring事务属性Spring事务属性对应TransactionDefinition类里面的各个方法。TransactionDefinition类方法如下所示:public interface TransactionDefiniti
2020-10-11 13:59:27
83
原创 01--spring事务的简介
环境搭建导入相关依赖:数据源、数据库驱动、等等模块 配置数据源、DataSource(Spring 提供简化数据库操作工具)操作数据库 给方法上标注@Transactional表示当前方法是一个事务 @EnableTransactionManagement开启基于注解的事务管理功能 事务管理器来管理器来控制事务 PlatformTransactionManagerimport org.springframework.context.annotation.Bean;import or.
2020-10-11 13:08:09
76
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人