自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 logstash 安装,配置手册

解压安装包:(到指定的目录) 如:usr/local/tar -xvf logstash-7.7.0.tar.gzmv logstash-7.7.0 logstash将配置文件std_ruby.conf上传到 /usr/local/logstash/config/添加配置文件说明codec => #可选项,默认是plain,可设置其他编码方式。discover_interval => #可选项,logstash多久检查一下path下有新文件,默认15s。exclude =&g

2021-11-24 14:05:50 675

原创 解决多数据源事务不一致导致事务不生效问题

一般不建议开多数据源但是同事已经使用了,只能帮忙填下坑,在使用事务时提示XX表不存在然后写了个接口继承IServicepublic interface BaseService<T> extends IService<T> { /** * PROPAGATION_REQUIRED (默认) * 支持当前事务,如果当前没有事务,则新建事务 * 如果当前存在事务,则加入当前事务,合并成一个事务 * REQUIRES_NEW (一般用在子方法需要单独事务)

2020-12-10 15:00:30 1297

原创 两个微服务强关联且含有事务,一个成功,一个失败怎么办,分布式事务解决方案

今天被问到一个问题,就是如果有调用同时插入数据的微服务A和B,如果A成功,B不成功怎么办?首先从 业务上来分析:1.我们为什么要同时操作两个微服务来插入呢?2.是这两个微服务中有强依赖关系吗?是上一个插入成功下一个才能插入吗?那为何不直接在A服务里面写,调用B服务呢?值得深思,微服务的划分粒度是否有问题?如果两者不存在强依赖关系,使用MQ的ACK机制完全可以满足你,因为他们两者谁先插入都无所谓,重要消息不被确认会重试。如果真的存在那怎么处理?我提出一个方案:方案.1.定义一个变量,类型Ha

2020-11-19 15:08:32 656 1

原创 JAVA学习代码

阿里云短信 JAVA基础 WebSocket Demo elasticsearch Demo mongodb Demo rabbitmq Demo redis Demo shiro Demo springboot Demo freemarker Demo 多线程Demo传送门:https://github.com/CharlesQian18/java-demo/tree/master

2020-11-14 11:04:55 113

原创 PMP复习和考试技巧

一个人能做的事情太少,一个团队才能把事情做好,事情要做好,必须要管理,所以才想学习PMP,由于学习有点分神,学习效率不高,也可能有学生拖延症在里面,学习曲线不佳,还好一次性过了PMP,我的学习步骤是:1.看王老师视频一遍,开的是2倍速度刷过,建议一个月内看完;2.看汪博士解读PMP书籍一遍,感觉没啥用,看了很快就忘记了,建议不看,可以多刷两遍PMPBOOK;3.看PMPBOOK一遍,这本书对个人而言,非常有用,很多系统的知识都能获取到,边看边些笔记,下面是我整理了项目管理的流程图:计划流程:http

2020-11-13 14:11:13 194

原创 项目管理-风险管理流程

2020-11-13 13:52:20 452

原创 项目管理-采购管理流程

2020-11-13 13:51:09 231

原创 项目管理-计划流程

2020-11-13 13:49:42 232

原创 项目管理—执行和变更流程

2020-11-13 13:40:50 262

原创 第八章 live-server

live-server没有webpack,我们就无法使用webpack-dev-server运行这个项目,实现热部署。所以,这里我们使用另外一种热部署方式:live-server这是一款带有热加载功能的小型开发服务器。用它来展示你的HTML / JavaScript / CSS,但不能用于部署最终的网站。安装命令npm install -g live-server运行命令live-server输入命令 live-sever 启动,默认会自动打开浏览器,并且访问8080端口,若出现Erro

2020-11-13 13:38:57 220

原创 第七章 Vue方法和组件

computed(计算属性)计算的本质就是方法,但是一定要返回数据。然后页面渲染时,可以把这个方法当成一个变量来使用watch(监控)普通变量num(newVal,oldVal){console.log(newVal,oldVal);}对象变量:深度监控person: { deep: true, handler(val) { console.log(val.age); }}组件化在大型应用开发时,页面可以划分成很多部分。往往在不同页面,也有相

2020-11-13 13:38:44 90

原创 第六章 Vue指令

{{}}{{}} =》插值表达式插值表达式不能使用在属性中使用{{}}方式在网速较慢时会出现问题,在数据未加载完成时,页面会显示出原始的{{}},加载完毕后才会显示正确的数据,我们称为插值闪烁v-text , v-html , v-model使用指令来替代插值表达式,指令必须在标签里面使用v-text :将数据输出到元素内部,如果输出的数据有HTML代码,会作为普通文本输出v-html :将数据输出到元素内部,如果输出的数据有HTML代码,会被渲染属于单项绑定v-model : 数据

2020-11-13 13:38:26 64

原创 第五章 Vue 的生命周期

1) 新建个Vue对象2) 初步初始化对象3) 初始化对象的监控(监控变量,利用get,set方法对变量进行注入和动态响应)4) 判断是否有el 或者 template 标签5) 对关联标签进行编译6) 创造真实的html代码,并挂载到关联标签上7) 数据改变重新渲染8) 生命周期销毁this 等于当前app对象...

2020-11-13 13:38:08 54

原创 第四章 Vue入门

MVVM模式M: 即Model,模型,包括数据的一些基本操作V: 即View,视图,页面渲染结果VM:即View-Model,模型与视图间的双向操作(无需开发人员干涉)在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中,而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。而MVVM中的VM要做的事情就是把DOM操作完全封装起来,开发人员不用再关心Model和View之间是如何相互影响的:只要我们Model发生了

2020-11-12 09:31:03 97

原创 第三章 ES6 - 数组的 map 和 reduce

let arr =[‘1’,‘3’,’-10’,‘15’]一. map 把集合的元素逐个处理,并放在新的元素中, 并不会改变原来的数组,分散处理let arr2=arr.map(d=>parseInt(d))二. reduce 对以前的结果累积处理arr2=[2,5,-10,15]arr2.reduce((a,b)=>a+b)运算结果:首先用 a=2,b=5a=7,b=-10a=-3,b=15a=12如果数组只有一个值,可以默认初始值arr2=[2]arr2.red

2020-11-12 09:29:25 82

原创 第二章 ES6 - 函数的优化

原来的:function sum(a,b){return a+b;}优化后:const add=(a,b)=>a+b;优化前:对象包含成员变量,和成员方法const p={name:“jack”,age: 21,sayHello: function(){console.log(“hello”);}}p.sayHello();优化后:const p={name:“jack”,age: 21,sayHello(){console.log(“hello”);}}

2020-11-12 09:28:59 105

原创 第一章 ES6 - let,cont和结构体

前景: 如果再循环体中使用var定义的变量,也可以在外部访问到所以使用let,外部无法访问使用cont,定义了常量,无法修改,类似java的final结构体:一. 解析数组let arr=[2,5,-1,55];//左右对比,将右边对应的数组值赋予左边的x,ylet [x,y]=arr;let [,a,b]=arr;console.log(x,y,a,b);//第一个不要,将剩下的赋值给restlet [,…rest] =arr;二. 解析对象:let p={name:“jack”

2020-11-12 09:28:14 331

原创 第十六章 无状态登录

1.2.什么是无状态微服务集群中的每个服务,对外提供的都是Rest风格的接口。而Rest风格的一个最重要的规范就是:服务的无状态性,即:服务端不保存任何客户端请求者信息客户端的每次请求必须具备自描述信息,通过这些信息识别客户端身份带来的好处是什么呢?客户端请求不依赖服务端的信息,任何多次请求不需要必须访问到同一台服务服务端的集群和状态对客户端透明服务端可以任意的迁移和伸缩减小服务端存储压力1.3.如何实现无状态无状态登录的流程:当客户端第一次请求服务时,服务端对用户进行信息认证(登录)

2020-11-12 09:23:31 111

原创 第十五章 短信服务

阿里云短信接入开通短信创建子账号创建子账号的AccessKey创建短信签名创建模板示例链接: https://help.aliyun.com/document_detail/101893.html?spm=a2c4g.11186623.6.649.2fd650a4XPdZFk

2020-11-12 09:20:33 82

原创 第十四章 Redis

NOSQL= Not Only SQLRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting),

2020-11-12 09:18:28 115 1

原创 第十三章 RabbitMQ

目前我们已经完成了商品详情和搜索系统的开发。我们思考一下,是否存在问题?商品的原始数据保存在数据库中,增删改查都在数据库中完成。搜索服务数据来源是索引库,如果数据库商品发生变化,索引库数据不能及时更新。商品详情做了页面静态化,静态页面数据也不会随着数据库商品发生变化。如果我们在后台修改了商品的价格,搜索页面和商品详情页显示的依然是旧的价格,这样显然不对。该如何解决?这里有两种解决方案:方案1:每当后台对商品做增删改操作,同时要修改索引库数据及静态页面方案2:搜索服务和商品页面服务对外提供操作接

2020-11-12 09:12:33 81

原创 第十一章 linux共享文件samba安装与java读取外部文件夹方法

https://www.cnblogs.com/tangmj/p/5188765.htmlhttps://www.cnblogs.com/huanghuahui/p/11673532.html

2020-11-12 09:08:47 84

原创 第十章 模板引擎 Thymeleaf

2.2.1.概念先说下Thymeleaf中的几个概念:Context:运行上下文TemplateResolver:模板解析器TemplateEngine:模板引擎Context上下文: 用来保存模型数据,当模板引擎渲染时,可以从Context上下文中获取数据用于渲染。当与SpringBoot结合使用时,我们放入Model的数据就会被处理到Context,作为模板渲染的数据使用。TemplateResolver模板解析器:用来读取模板相关的配置,例如:模板存放的位置信息,模板文件名称,模板文

2020-11-12 09:08:14 2893

原创 第九章 Elasticsearch

Elasticsearch官网:https://www.elastic.co/cn/products/elasticsearch如上所述,Elasticsearch具备以下特点:分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心)Restful风格,一切API都遵循Rest原则,容易上手近实时搜索,数据更新在Elasticsearch中几乎是完全同步的。使用容器安装 Elasticsearch拉取最新版本的镜像docker pull elasticsearch

2020-11-11 17:54:03 143

原创 第八章 商品数据结构和实现

一、spu概念  SPU = Standard Product Unit (标准化产品单元)  SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。二、sku概念  SKU=stock keeping unit(库存量单位)  SKU即库存进出计量的单位, 可以是以件、盒、托盘等为单位。  SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。在服装、鞋类商品中使用最

2020-11-11 17:33:13 294

原创 第七章 上传图片服务优化和FastDFS(分布式文件系统)

绕过网关缓存默认情况下,所有的请求都经过Zuul网关代理,默认会通过SpringMVC预先请求进行处理,缓存。普通请求并不会有什么影响,但是对于文件上传,就会造成不必要的网络负担。在高并发时,可能导致网络阻塞,Zuul网关不可用。这样我们的整个系统就瘫痪了。所以,我们上传文件的请求需要绕过请求的缓存,直接通过路由来到达目标微服务。Zuul is implemented as a Servlet. For the general cases, Zuul isembedded into the Sp

2020-11-11 17:26:29 200

原创 第六章 跨域问题

什么是跨域:跨域是指跨域名的访问,一下情况都属于跨域:跨域原因说明 示例域名不同 www.jd.com和 www.taobao.com域名相同,端口不同 www.jd.com:8080与www.jd.com:8081二级域名不同 item.jd.com 与 miaosha.jd.com2.为什么有跨域问题?跨域不一定会有跨域问题。因为跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是于当前页同域名的路径,这.

2020-11-11 17:15:26 118

原创 第五章 nginx

域名一个域名一定会被解析成一个或者多个IP,步骤包含1)本地域名解析浏览器会首先在本机的hosts文件中查找域名映射的IP地址,如果查找到就返回IP,没找到则进行域名服务器解析,一般本地解析都会失败,因为默认这个文件夹是空的。windows下的hosts文件地址: C:/Windows/System32/drivers/etc/hostsMac,Linux下的hosts文件所在的路径:/etc/hosts2)域名服务器解析本地解析失败,才会进行域名服务器解析,域名服务器就是网络中的一台计算.

2020-11-11 16:49:30 657 1

原创 第四章 搭建业务平台

调用异常处理服务端返回的异常统一到web层处理定义异常枚举类:@Getter@NoArgsConstructor@AllArgsConstructorpublic enum ExceptionEnum { PRICE_CANNOT_BE_NULL(400,"价格不能为空"); private int code; private String msg;}定义异常返回结果@Datapublic class ExceptionResult { private int .

2020-11-11 16:45:57 206

原创 第三章 搭建后端框架

第一步建立父工程:引入依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <!--设定一个空值将始终从仓库中获取,不从本地路径获取--> <relativePa

2020-11-11 15:05:51 252 1

原创 第二章 前端搭建 webpack+vue-cli

webpack:本质上,webpack是一个现代javaScript应用程序的静态模板打包器(module bundler)。当webpack处理应用程序时,它会递归地构建一个依赖关系图,其中包括应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle作用:前端碎片文件太多,请求的次数太多,可以将多个碎片组合成一个相对大的文件减少请求次数各种简写的语言不能被浏览器识别,webpack编译成浏览器可以识别的语言浏览器语法降级,语法更新太快,浏览器跟不上代码混淆四个核心概念:入

2020-11-11 15:03:47 135

原创 第一章—电商项目技术特点和模式

技术特点:技术范围广2.技术新3.要求双高高并发(分布式,静态化技术,CDN服务,缓存技术,异步并发,池化,队列)高可用(集群,负载均衡,限流,降级,熔断)数据量大业务复杂常见电商模式:B2C :商家对个人(自己卖)C2C平台:个人对个人B2B平台:商家对商家O2O:线上和线下结合P2P:在线金融,贷款B2C平台:天猫,京东,一号店等技术架构图...

2020-11-11 15:03:01 523 1

原创 spring-boot中可以用@validated来校验数据

controller的方法添加 @Validated:public Result<?> add(@Validated @RequestBody WmsSysProduct wmsSysProduct).实体类属性添加注解 @NotBlank(message = "测试返回信息")private String descc;拦截运行时异常:```java@ControllerAdvicepublic class SharpBootException extends Runtim

2020-07-24 11:58:39 211

原创 第一章 MongoDB

简介: MongoDB是一个基于分布式文件存储的数据库。由C++语言编写,旨在为WEB应用提供可拓展的高性能数据存储解决方案。介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库,支持的数据结构非常松散,是类似json的bson格式,可以存储比较复杂的数据类型支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库表单查询的绝大部分功能,而且还支持对数据建立索引官网:https://www.mongodb.comDocker安装Mon

2020-06-06 14:44:56 209

原创 electron-vue项目使用串口工具serialport

第一步:配置环境安装Python2.7 配置环境变量(官网下载)看网上说明必须是2.7版本,3不支持下载 : https://www.python.org/downloads/配置环境变量:2.安装 npm install --global --production windows-build-tools3.安装node-gyp npm install -g node-gyp第二步:安装1.安装serialport npm install --save serialport2.安装e

2020-06-03 19:26:40 2089 1

原创 JAVA语言开发环境搭建

JAVA跨平台:JVM (Java Virtual Machine):java 虚拟机三个版本的JVM(win版本,linux版本,mac)java语言是跨平台的,依靠jvm翻译2.2 JRE 和 JDKJRE(java Runtime Environment): 运行时环境,含有jvm和核心类库JDK(java Development Kit): java 开发工具包,包含JER环境和开发人员使用的工具运行已有的java程序,安装JER即可开发全新的java程序,必须安装JDKJDK&

2020-05-29 19:39:37 284

原创 第二章 WebSocket简单实现

HTTPhttp协议是短链接,因为请求之后,都会关闭连接,下次重新请求数据,需要再次打开链接WebSocke1.定义 :WebSocket 是HTML5的新协议,它实现了浏览器与服务器全双工通信(full-duplex),一开始的握手需要借助HTTP请求完成。WebSocket是真正实现了全双工通信的服务器项客户端推送的互联网技术。它是在一种单个TCP连接上进行全双工通讯协议。WebSocket通信协议与2011年被IEFT定为标准RFC6455,WebSocketAPI 被W3C定为标准。查询

2020-05-23 15:18:01 225

转载 第一章:引用概述 -短连接,长连接,短轮询,长轮询,流 SSE,websocket

一、短连接这里的连接指的是 TCP 连接。一个 TCP 连接从创建到结束一共有 3 个阶段,分别为“三次握手”建立连接、客户端与服务端进行数据包传输、“四次挥手”断开连接。客户端与服务端的每一次完整的消息交互(发请求——响应)都建立一次 TCP 连接,当这次交互完毕后就释放该 TCP 连接。这个过程就是短连接。早期的 http 1.0 用的就是短连接。优点:简单。因为存在的连接都是正在通信的有用连接,不需要过多的管理。 缺点:浪费资源,网络延迟较大。为什么有这样的缺点呢?通常来说,一

2020-05-23 15:14:36 360

原创 SQLServer跨数据库访问(以postgresql为例子)

在服务器(已安装SQLServer)下载安装postgresql ODBC驱动网址:https://www.postgresql.org/ftp/odbc/versions/msi/windowServer2012 建议安装版本11的,高版本有其他异常打开 Microsoft SQL Server Management Studio ,连接到服务器,点击服务器对象中的链接服务器,右键新增链接服务填下属性如下在安全性中填写密码测试是否成功(因为是测试,所以写了*,正式环境..

2020-05-23 10:32:10 2430

原创 第八章 SpringCloud-Feign远程调用

Feign: 可以把Rest请求进行隐藏,伪装成为类似SpringMVC的controller一样,你不用再自己拼装url,拼装参数等等操作,一切都交给Feign去做项目主页: https//github.com/OpenFeign/feign实现:引入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-op

2020-05-16 10:37:20 207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除