杂
文章平均质量分 92
记录一些比较零碎的知识
丑基地
好学若饥,谦卑若愚。
展开
-
webservice服务调用
Web Service是一种跨编程语言和操作系统平台的远程调用技术。Web Service采用标准的SOAP(Simple Object Access Protocol,简单对象访问协议,属于w3c标准。并且是基于 http 的应用层协议传输xml数据)协议传输。Web Service采用WSDL作为描述语言,并且W3C为Web Service制定了一套传输数据类型,使用xml进行描述,即XSD(XML Schema Datatypes),任何语言写的web原创 2022-05-24 23:49:23 · 2224 阅读 · 0 评论 -
优雅实现接口重试
微服务之间互相调用,一般情况下都会设置一些兜底手段,避免服务出现问题,最常见方案就是接口重试机制。对于接口重试常见的方案有:1、 硬核捕获;2、Spring AOP 实现;3、Spring 自带重试工具;4、Gavua 提供重试工具。一、准备工作1、提供一个接口,该接口用来模拟出现网络波动时,服务调用失败的情况:@Componentpublic class RetryServcie { private LongAdder num = new LongAdder(); /*原创 2022-04-09 23:08:36 · 3243 阅读 · 1 评论 -
接口设计--幂等性
1、什么是幂等性?幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。2、接口幂等有哪些使用场景?接口幂等一般出现的场景有:前端重复提交;接口超时重试;消息队列重复消费。3、幂等设计应该在哪一层做?目前互联网技术架构基本都是分布式、微服务架构,层次分的也比较清晰,如:第一层:APP、H5、PC等终端访问;第二层:负载均衡设备(F5,原创 2022-04-05 17:39:48 · 6587 阅读 · 1 评论 -
如何保证数据库和缓存双写一致性?
数据库和缓存双写数据一致性问题,是一个跟开发语言无关的公共问题。尤其在高并发的场景下,这个问题变得更加严重。一、简介一般情况下,使用缓存都是为了提升查询的性能(redis 单机支持 10万 QPS),减轻DB访问压力。对于查询请求,引入缓存之后的流程通常如下:用户请求到达服务器,首先去缓存查询。如果缓存命中,直接返回;缓存没命中,下一步;去数据库查询,如果数据不存在,直接返回(是否缓存空值取决于实际业务);如果数据存在,更新缓存,返回结果。但是,如果在高并发的情况下,某条记录在被放入缓存之后原创 2022-04-05 17:31:51 · 997 阅读 · 0 评论 -
哈希函数处理冲突的方法
hash存在天然的问题,哈希冲突,又叫哈希碰撞。开放定址法 也叫再散列法,其基本思想是:当关键字 key 的哈希地址 p=H(key)出现冲突时,以 p 为基础,产生另一个哈希地址 p1 ,如果 p1 仍然冲突,再以 p 为基础,产生另一个哈希地址 p2 ,…,直到找出一个不冲突的哈希地址 pi ,将相应元素存入其中。 这种方法有一个通用的再散列函数形式: Hi=(H(key) + di) % m i=1,2,…,n(n <= m-1) 其中 H(key)为哈希函数,m 为表长,d原创 2022-02-12 17:08:08 · 956 阅读 · 0 评论 -
Elasticsearch -- 学习笔记
目录1 Elasticsearch 入门1.1 Elasticsearch 安装1.1 下载软件1.2 安装软件1.2 基本操作1.2.1 索引操作1.2.1.1 创建索引1.2.1.2 查看创建的所有索引1.2.1.3 查看创建的指定索引1.2.1.4 查看索引文档总数1.2.1.5 删除指定索引1.2.2 文档操作1.2.2.1 创建文档1.2.2.2 查看文档1.2.2.3 修改文档1.2.2.4 部分文档更新1.2.2.5 删除文档1.2.2.6 根据条件删除文档1.2.3 映射操作1.2.3.1原创 2021-11-27 14:42:50 · 1234 阅读 · 0 评论 -
JDBC,你真的知道怎么用吗?
目录1 JDBC API 简介1.1 建立数据源连接1.2 执行SQL语句1.3 检索SQL执行结果1.4 关闭连接1.5 使用JDBC操作数据库2 JDBC API中的类与接口2.1 java.sql包2.2 javax.sql包1 JDBC API 简介JDBC(Java Data Base Connectivity),java语言提供的访问关系型数据库的接口。在Java编写的应用中,使用JDBC API可以执行SQL语句、检索SQL执行结果以及将数据更改写回到底层数据源。JDBC API也可原创 2020-12-17 23:06:21 · 1384 阅读 · 0 评论 -
get请求与post请求的区别
目录1. HTTP协议2. HTTP的get和post请求2.1 get请求2.2 post请求2.3 get请求和post请求的区别2.4 get请求和post请求参数长度的限制3. 参考文献1. HTTP协议HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议。所有的www文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。2. HTTP的get和post请求在客户机和服务器之间进行请原创 2020-12-09 22:02:14 · 243 阅读 · 0 评论 -
redis缓存穿透、缓存雪崩与缓存击穿
目录1. 缓存访问过程2. 缓存穿透2.1 概念2.2 解决方案3. 缓存雪崩3.1 概念3.2 解决方案4. 缓存击穿4.1 概念4.2 解决方案1. 缓存访问过程使用redis缓存访问过程如下:应用访问redis缓存,如果redis缓存中数据存在,直接从缓存中返回数据。如果缓存中不存在数据,会直接访问数据库,同时把数据写进redis缓存,下次访问就可以直接从redis缓存中读取数据。2. 缓存穿透2.1 概念访问一个不存在的数据,缓存会不起作用,请求会直接访问数据库,由于数原创 2020-07-18 00:01:23 · 122 阅读 · 0 评论 -
Vue自定义过滤器格式化数字,每三位加一个逗号
自己在开发过程中,前端需要对一些表示金额的数值进行处理,每隔三位数字,用逗号分隔开。记录一下自己的做法。(1) 自定义格式化方法。源代码如下:/* 数字金额逢三加, 比如 123,464.23 */export function numberToCurrency(value) { if (!value) return '0.00' // 将数值截取,保留两位小数 value ...原创 2020-04-09 09:54:10 · 4518 阅读 · 0 评论 -
springboot+vue前后端分离项目使用Nginx代理,实现局域网访问
在项目开发过程中,几个同事负责一个项目,然后本人对项目进行了一些修改,别的同事想要查看效果,直接使用Nginx进行代理,同事就能访问我在本地运行的项目。具体过程如下:1.下载Nginx完成安装,修改nginx.conf文件。server { listen 1234; // 监听端口,自己设置 server_name 192.168.3.68; // 本机ip地址 loca...原创 2020-03-30 13:02:58 · 2682 阅读 · 2 评论