自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

原创 服务幂等设计与实践

幂等定义 请求层面 保证请求重复执行和执行一次结果相同 业务层面 1 同一个用户不重复下单 2 商品不超卖 3 MQ消费端去重 幂等范围 读/写请求层面 请求对数据造成改变 读 X 写 √ 架构层层面 哪些层会对数据造成改变 反向代理层 X 网关层 X 业务逻辑层 X 数据访问层 √ 数据访问层(CRUD) 1 Create/Insert 如果插入记录拥有业务主键,或者唯一索引,则是幂等的 2...

2020-08-04 16:10:27 166

原创 服务负载均衡设计与实践

服务无状态化定义 1 冗余部署多个模块(进程)完全对等 2 请求提交到冗余部署的任一模块,处理结果一样 3 模块不存储业务的上下文信息 4 仅根据每次请求携带数据进行相应的业务处理 狭义负载均衡 硬件 1 F5 2 A10 3 Radware 软件 1 LVS 4层 2 Nginx 7层 3 HAProxy 4层或7层 反向代理 VS 正向代理 从用户角度,无感知的是反向代理,比如Nginx,正向代理比如VPN 广义负载均衡 完整的故障处理恢复机制 ...

2020-08-03 14:19:44 151

原创 互联网高并发设计手段

高并发设计主要关注的是系统性能,包括两个部分,1是吞吐量,2是响应延迟。 性能优化目标: 缩短响应延迟 提高并发数(吞吐量) 让系统处于合理状态 并发数、QPS、平均响应时间三者之间关系 从上图可以看出, 一开始,随着并发数的增加,资源利用率,吞吐量都是线性增长,逐渐达到一个峰值,响应时间变化不大 随着并发数继续增加,资源逐渐耗尽,没有资源可以再分配,服务器响应时间开始增加,甚至没有响应,吞吐量开始下降 优化手段 1 系统时间是瓶颈 ,利用空间换时间 比如,缓存复用计算结果,..

2020-07-29 16:50:45 210

原创 java基础一点也不基础

1 创建对象的有哪几种方式 2 String类为什么是final 3 Class.forName和classloader的区别 4 java反射原理

2020-07-02 11:05:48 213

原创 HashMap暴露了你的java基础功底

(新建的群1039047324,欢迎对技术感兴趣的朋友加入,群内只聊技术,分享工作中容易踩的坑,以及如何避免踩坑,分享最新架构视频) 1.HashMap的底层数据结构是什么? 底层数据结构是哈希表结构(链表散列:数组+单向链表),结合了数组和链表的优点,当链表长度超过8时,链表会转为红黑树。数组中的每一个元素都是链表。总结来说就是HashMap在JDK1.8之前底层是由数组+链表实现的,从JDK1.8开始底层是由数组+链表或者数组+红黑树实现的。 追问:为什么在1.8中增加红黑树? 当需要查找某个元素的

2020-07-01 15:00:38 276

原创 消息队列面试总结

消息队列是分布式应用间交换信息的重要组件,消息队列可驻留在内存或磁盘上, 队列可以存储消息直到它们被应用程序读走。 通过消息队列,应用程序可以在不知道彼此位置的情况下独立处理消息,或者在处理消息前不需要等待接收此消息。 所以消息队列可以解决应用解耦、异步消息、流量削锋等问题,是实现高性能、高可用、可伸缩和最终一致性架构中不可以或缺的一环。 现在比较常见的消息队列产品主要有ActiveMQ、RabbitMQ、ZeroMQ、Kafka、RocketMQ等。 本文重点以RabbitMQ为例。 1.为什么要使用

2020-06-28 15:14:19 243

原创 多线程面试梳理

(刚新建的群1039047324,欢迎对技术感兴趣的朋友加入,群内只聊技术,分享工作中容易踩的坑,以及如何避免踩坑) 对于新手来说,掌握的多线程知识可能仅限于多线程的几种实现方式,线程的几种状态,以及wait,notify的简单用法。这如果面试的话必死无疑。 接下来整理一下多线程面试题,以及最重要的细节。 1、并发编程三要素,有点像数据库事务的ACID。1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。 Java内存模型只保证了基本读取和赋

2020-06-19 16:18:58 136

原创 Redis面试内容梳理

(刚新建的群1039047324,欢迎对技术感兴趣的朋友加入,群内只聊技术,分享工作中容易踩的坑,以及如何避免踩坑) 考点 面试的时候问你缓存,主要是考察缓存特性的理解,对 MC(Memcache)、Redis 的特点和使用方式的掌握。 要知道缓存的使用场景,不同类型缓存的使用方式,例如: 对 DB 热点数据进行缓存减少 DB 压力;对依赖的服务进行缓存,提高并发性能; 单纯 K-V 缓存的场景可以使用 MC,而需要缓存 list、set 等特殊数据格式,可以使用 Redis; 需要缓

2020-06-17 13:05:45 187

原创 程序员应该如何去请教别人问题

程序员应该如何提问

2017-05-31 17:34:28 3954

工作流核心代码activiti5

基于activiti5+mybatis+springboot+springcloud开发的工作流核心代码,扩展自定义流程,消息通知,静态表单等功能

2018-10-16

微服务在线订购系统

基于springboot+mybatis+mysql+html实现的在线订购系统完整源码。包括使用说明文档。权限模块,组织架构,日志模块,数据字典,以及订单管理等核心模块。

2018-10-16

sprinbgboot实现的shiro权限验证源码

分布式架构实现,基于springboot的shiro权限验证源码,包括redis,activeMq以及邮件通知等,websocket通信,mybatis链接数据库,完整的权限验证架构。

2018-04-13

空空如也

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

TA关注的人

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