- 博客(7)
- 收藏
- 关注
原创 JVM(一):java内存结构
java内存结构如下: 1. Java堆(Java Heap) java堆是java虚拟机所管理的内存中最大的一块,是被所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。 java堆是垃圾收集器管理的主要区域,因此也被成为“GC堆”(Garbage Collected Heap)。...
2020-01-16 16:29:21 121
原创 nginx学习笔记:反向代理、负载均衡、动静分离、keepalive实现高可用
1.nginx简介 1.1、什么是 nginx Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。 1.2、正向代理 (1)需要在客户端配置代理服务器进行指定网站访问 1.3、反向代理 暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。 1.4、负载均衡 增加服务器的数量,然后将请求分发到...
2020-01-13 16:02:52 497
原创 Redis分布式锁:单机Redis实现分布式锁、Redission可重入锁、Redission红锁机制(解决分布式redis单点宕机故障转移存在的遗留问题)
1.单机redis的分布式锁 关于代码的详细解释见代码注释。 单机redis详细解释:https://juejin.im/post/5b737b9b518825613d3894f4 public class RedisTool { private static final String LOCK_SUCCESS = "OK"; private static final Strin...
2020-01-12 19:39:12 5235
原创 rabbitmq(三):100%投递、幂等性、confirm和return、消费端限流、重回队列、TTL、死信队列
rabbitmq消息的完全投递、幂等性、重复消费、Confirm和Return消息、自定义消费者、消息ACK和重回队列、消息的限流、TTL消息、死信队列 1.消息如何保证100%投递 同时做到下面四点可以保证消息可靠性的。 完善的消息进行补偿机制:当消息产生特殊情况进行处理,如:消息没有成功发出或者确认应答超时。 解决方案: (1)消息落库:将消息的投递、发送中、和已经收状态进行打标,将消息目前...
2020-01-12 16:09:50 447
原创 关于kafka的isr机制
1. 问题 Data Replication Kafka 的 Data Replication 需要解决如下问题: 怎样 Propagate 消息 在向 Producer 发送 ACK 前需要保证有多少个 Replica 已经收到该消息 怎样处理某个 Replica 不工作的情况 怎样处理 Failed Replica 恢复回来的情况 2. Propagate 消息 通过zookeeper先知...
2020-01-10 14:33:18 9650 1
原创 关于分布式事务:两阶段提交,TCC和tx-lcn框架
1. 分布式事务出现的场景 当北京得数据库向上海的数据库转移数据时,怎么保证转账的事务性?这就出现了分布式事务的问题。 2. 2PC 下面就是两阶段提交的过程: 第一阶段:事务管理器要求每个涉及到事务的数据库预提交(precommit)此操作,并反映是否可以提交. 第二阶段:事务协调器要求每个数据库提交数据,或者回滚数据。 缺点: 单点问题:事务管理器在整个流程中扮演的角色很关键,如果其宕机...
2020-01-10 13:46:53 2738 1
原创 关于AOP使得其他注解失效问题总结
今日遇到AOP失效的问题,恰好我之前也遇到过类似地问题,于是同意总结一下: (1)AOP使得@Autowired失效 下面是群里老大哥给出的解释: 解决方案:将private改成protected即可。 (2)两个动态代理方法引起的其中一个失效 因为之前的代码忘了是哪个项目中的了,直接采用网上的样例的 样例取之于:https://blog.csdn.net/u012373815/article...
2020-01-07 10:41:49 752
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人