自定义博客皮肤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.gz mv 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 821

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

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

2020-12-10 15:00:30 1446

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

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

2020-11-19 15:08:32 806 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 174

原创 PMP复习和考试技巧

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

2020-11-13 14:11:13 265

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

2020-11-13 13:52:20 679

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

2020-11-13 13:51:09 349

原创 项目管理-计划流程

2020-11-13 13:49:42 402

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

2020-11-13 13:40:50 414

原创 第八章 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 428

原创 第七章 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 163

原创 第六章 Vue指令

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

2020-11-13 13:38:26 135

原创 第五章 Vue 的生命周期

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

2020-11-13 13:38:08 106

原创 第四章 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 158

原创 第三章 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=5 a=7,b=-10 a=-3,b=15 a=12 如果数组只有一个值,可以默认初始值 arr2=[2] arr2.red

2020-11-12 09:29:25 155

原创 第二章 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 183

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

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

2020-11-12 09:28:14 417

原创 第十六章 无状态登录

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

2020-11-12 09:23:31 202

原创 第十五章 短信服务

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

2020-11-12 09:20:33 135

原创 第十四章 Redis

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

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

原创 第十三章 RabbitMQ

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

2020-11-12 09:12:33 147

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

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

2020-11-12 09:08:47 139

原创 第十章 模板引擎 Thymeleaf

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

2020-11-12 09:08:14 3238

原创 第九章 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 211

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

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

2020-11-11 17:33:13 437

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

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

2020-11-11 17:26:29 312

原创 第六章 跨域问题

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

2020-11-11 17:15:26 190

原创 第五章 nginx

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

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

原创 第四章 搭建业务平台

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

2020-11-11 16:45:57 279

原创 第三章 搭建后端框架

第一步建立父工程:引入依赖 <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 367 1

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

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

2020-11-11 15:03:47 220

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

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

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

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

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

2020-07-24 11:58:39 315

原创 第一章 MongoDB

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

2020-06-06 14:44:56 290

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

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

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

原创 JAVA语言开发环境搭建

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

2020-05-29 19:39:37 364

原创 第二章 WebSocket简单实现

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

2020-05-23 15:18:01 350

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

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

2020-05-23 15:14:36 516

原创 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 2972

原创 第八章 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 298

空空如也

空空如也

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

TA关注的人

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