摘要: 综述 一次通信的过程 从一次下单的过程看整个通信的过程: 1、在浏览器中输入网址,这是一个URL,浏览器通过DNS协议或者HTTPDNS找到了目标IP地址 2、应用层的处理:将请求的格式、内容、类型等信息写入HTTP请求中 3、传输层的两种协议的处理:TCP/UDP,区别就是一种是可靠的,一种是不可 阅读全文
posted @ 2022-07-14 19:19 勇闯8 阅读(163) 评论(0) 推荐(0) 编辑
摘要: effective java(一):创建和销毁对象 优先考虑静态工厂方法创建对象 它是一个返回类的实例的静态方法: public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.False; } 使用静态工厂 阅读全文
posted @ 2021-09-16 21:12 勇闯8 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 庞大的建造者模式:以组装SQL为例 某微服务,作用是生成一条SQL语句,供其他服务调用,这条sql语句可能非常长,拼接过程中涉及和其他服务复杂的交互和解析,这种涉及复杂对象构建的情况一般要用建造者模式。 常规的建造者模式涉及指导者和构造者,现实应用时一般更为简洁和直接,我们要达到的目的很简单:就是将 阅读全文
posted @ 2021-01-22 14:42 勇闯8 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 面向对象一: 数据加载器完成缓存 某微服务,它的作用是导出一系列复杂的组合信息,那么该微服务取到request后,可能需要进行多次与数据库的交互,比如根据用户ID多次取到完整的用户信息,根据商品ID多次取到完整的商品信息,根据时间信息取到多次商品的购买详情,然后整理这些信息并导出。 当某业务需要进行 阅读全文
posted @ 2021-01-18 15:10 勇闯8 阅读(130) 评论(0) 推荐(0) 编辑
摘要: # Mockito使用总结 写UT时,经常会遇到执行过程中调用的方法返回结果不可控的情况,为了专注在某个确定范围内的开发自测,需要模拟这些方法和类的行为,Mockito提供了很好的解决方案。 使用Mockito可以很方便的设置、校验方法或类的行为,但是前提是首先创建一个mock对象,才能基于Mock 阅读全文
posted @ 2020-12-28 21:38 勇闯8 阅读(2923) 评论(0) 推荐(1) 编辑
摘要: 使用redis的原因,缓存穿透和缓存雪崩 为什么使用redis而不使用map? map是本地缓存,随着jvm关闭而销毁,多实例时每个实例都要保存一份缓存。而redis是分布式缓存,多实例下只保存一份缓存,且提供持久化,即使服务器宕机数据也不会消失。 缓存穿透 访问大量没有做缓存的数据,导致大量请求落 阅读全文
posted @ 2020-06-28 00:16 勇闯8 阅读(168) 评论(0) 推荐(0) 编辑
摘要: redis的其它模块:队列、位图、HyperLogLog、布隆过滤器、GeoHash 延时队列 实现队列的一种简单的方式:用zset,其中的score就是剩余时间。 还有一种实现简单队列的方式就是用redis中的list,可以用阻塞读命令blpop、brpop,这样在读不到数据时就会立即进入休眠状态 阅读全文
posted @ 2020-06-28 00:11 勇闯8 阅读(286) 评论(0) 推荐(0) 编辑
摘要: Jedis、redis安全、Lua脚本、其他命令 Jedis的使用 基本用法:首先new一个jedispool,然后getResource取到jedis即可,最后jedis要关闭连接。 为了防止发生异常导致jedis没有关闭引发的连接池内连接数不够,要把close语句放在finally块里或者用tr 阅读全文
posted @ 2020-06-28 00:10 勇闯8 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 订阅与发布:redis的PubSub 订阅: subscribe 具体频道 发布: publish 频道 内容 可以将具体内容发送到对应频道,同时订阅该频道的所有客户端都能接收到该消息。 订阅多个: subscribe 具体频道* 可以订阅具体名称开头的多个频道,即使后续增加了某个新的频道只要在这个 阅读全文
posted @ 2020-06-28 00:05 勇闯8 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 事务和乐观锁watch redis使用multi开启事务,exec来执行,discard来回滚 事务中的指令会缓存在服务器中的一个事务队列中,服务器一旦受到exec指令就会顺序的执行所有指令并返回所有的运行结果,这些指令在运行时不会相互影响,因为redis是单线程的。 redis的事务并不是原子性的 阅读全文
posted @ 2020-06-28 00:04 勇闯8 阅读(78) 评论(0) 推荐(0) 编辑