CAP与Base理论
摘要:分布一致性的提出 在分布式系统中要解决的一个重要问题就是数据的复制。在我们的日常开发经验中,相信很多开发人员都遇到过这样的问题:假设客户端C1将系统中的一个值K由V1更新为V2,但客户端C2无法立即读取到K的最新值,需要在一段时间之后才能读取到。这很正常,因为数据库复制之间存在延时。 分布式系统对于
阅读全文
下载安装Zookeeper
摘要:下载地址 http://archive.apache.org/dist/zookeeper/ 进入如上的Url,选择合适的zookeeper版本,下载"tar.gz"文件; 解压安装 解压到当前目录 进入到Zookeeper的根目录 创建配置文件zoo.cfg 进入到bin目录就能启动Zookeep
阅读全文
Java开发常犯的错误及基本知识(持续更新)
摘要:为什么lambda表达式无法声明throws异常,而必须要在内部捕获? https://www.cnblogs.com/theRhyme/p/java8-lambda-checked-exceptions.html CRLF,CR,LF的区别和联系 windows系统文件格式默认换行"是\r\n",
阅读全文
MQTT协议
摘要:MQTT(Message Queue Telemerty Transport)是一种二进制协议,主要用于服务器和那些低功耗的物联网设备(IoT)之间的通信。它位于 TCP 协议的上层,除了提供发布-订阅这一基本功能外,也提供一些其它特性:不同的消息投递保障(delivery guarantee),“
阅读全文
用工厂模式和策略模式优化过多的if-else
摘要:多个if-else代码: 上面只统计了3个学习时间,如果我们要写其他的学习时间就需要继续添加if-else,如果业务很复杂,那么这个代码看起来会很乱,不方便维护; 下面用策略模式和工厂模式优化该if-else; 1. 定义抽象策略角色(接口) 2. 编写具体策略角色(实现策略角色接口) 小学毕业策略
阅读全文
lombok @Builder注解使用的例子、反编译之后的代码详解
摘要:lombok的@Builder实际是建造者模式的一个变种,所以在创建复杂对象时常使用 这里对lombok的@Builder和@Data组合的使用示例 import lombok.Builder; import lombok.Data; @Data @Builder public class Peop
阅读全文
什么是Ngrok?Ngrok使用场景以及Ngrok的原理浅析
摘要:Ngrok的应用场景 我们在本地搭建一个网站,然后本地访问地址是http://localhost:8080/,但是在外网比如你朋友家里,就不能通过这种方式访问,然后我们可以通过Ngrok将本地的web页面代理到公网上,这个访问的地址可以自己定义的,你朋友就访问Ngrok为该web网站生成的地址,就能
阅读全文
使用RestTemplate调用接口上传文件
摘要:场景 接口接受一个文件,缓存在本地,验证文件的完整性及内容,然后将文件上传至云服务器; 下面只写利用RestTemplate将文件上传至云服务器,至于文件上传以及缓存在本地可以参考:JAVA文件上传:RESTFUL接口接收上传文件,缓存在本地 代码 @Test public void restTem
阅读全文
当try-catch-finally代码块遇上return,代码执行流程是怎样
摘要:场景 这里打算用一个Java读取文件内容的例子来测试,文件存在,不抛异常,文件不存在,则抛出FileNotFoundException; 代码 Java读取文件代码如下: /** * 根据路径和文件名获取内容 * @param filePath * @param fileName * @return
阅读全文
Spring Boot 中application.yml与bootstrap.yml的区别
摘要:yml与properties 其实yml和properties文件是一样的原理,且一个项目上要么yml或者properties,二选一的存在。 推荐使用yml,更简洁。 bootstrap与application 1.加载顺序这里主要是说明application和bootstrap的加载顺序。 bo
阅读全文
typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点
摘要:typora下载 链接:https://某度云盘的域名/s/1geD1APxnyV3gogYW3E08bQ 密码:8fdp 把某度云盘的域名进行替换 1.标题 \ 标题1 \ 标题2 \ 标题3 \ 标题4 \ 标题5 \ 标题6 预览效果如下: 标题1 标题2 标题3 标题4 标题5 标题6 2.
阅读全文
给RabbitMQ发送消息时,设置请求头Header。
摘要:消费者的请求头 生产者设置请求头 由于消费者那里,@Payload是接受的消息体,使用了@Header注解,需要请求头,生产者这边就要设置请求头,然后rabbitTemplate再调用convertAndSend方法发送,如下代码: 这是RabbitTemplate中的converAndSend(e
阅读全文
Nginx解决跨域
摘要:一.静态页面服务器 nginx.conf 的配置(其实默认的也是如此,所以作为静态服务器只需要将静态文件移动到nginx下的html文件夹里就可以了) server { listen 8094; #监听端口 server_name localhost; # #charset koi8-r; #acc
阅读全文
并发与并行
摘要:并发(concurrency)和并行(parallellism)是: 解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 解释三:并行在多台处理器上同时处理多个任务,并发在一台处理器上切换
阅读全文
Java8 parallelStream与迭代器Iterator性能
摘要:定义一个测试类 上面定义了一个100元素的list。 下面使用迭代器遍历: 结果耗时稳定一位数的毫秒 使用parallelStream的方式: 结果是稳定在50以上的两位数的毫秒。 但是当我们要进行耗时的操作时,比如说IO,这里用Thread.sleep(100)模拟IO。 用迭代器处理模拟的IO的
阅读全文
微服务部署
摘要:参考来源:https://www.jianshu.com/p/022685baba7d https://blog.csdn.net/z15818264727/article/details/78890642 有的得停机部署,有的不需要停机即可完成部署。 (Blue/Green Deployment)
阅读全文
灰度发布
摘要:百科:https://baike.baidu.com/item/%E7%81%B0%E5%BA%A6%E5%8F%91%E5%B8%83/7100322?fr=aladdin 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户
阅读全文