# my-note **Repository Path**: too8g/my-note ## Basic Information - **Project Name**: my-note - **Description**: 我的笔记 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-02-16 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 我的笔记 灵魂5问: 1、做什么的? 2、解决了什么问题? 3、应用场景? 4、工作中是怎么用? 5、其他解决方案对比? ## [JVM](笔记/JVM.md) ##JDK 1. [容器](jdk/src/main/java/org/zn/note/jdk/container/JavaCollectionsFramework.java) 2. [线程](jdk/src/main/java/org/zn/note/jdk/thread/MyThread.java) ## 分布式 ### 分布式锁 ### 分布式事务 ### 分布式ID ### 一致性Hash ## dubbo ## zookeeper ## redis ## mq JMS(Java Message Service),java消息服务 MQ(Message Queue),消息队列 好处:异步、削峰、解耦!!! 1、异步 下单-->支付 100ms 下单-->优惠券-->积分-->短信-->...-->支付 xxxxms 用mq异步,为什么不用多线程呢? 2、解耦 一个订单流程,要调积分、优惠券、短信...,每加个服务,订单系统都要改! 用mq解耦,只需要走完自己的流程,信息发布出去,不用关心别的流程怎么处理。 但其实这里有个问题:就是下单成功了,积分失败了怎么办?涉及分布式事务。 3、削峰 服务器虽然处理不过来,但是至少没挂啊,这就是为什么“人多的时候卡”了。 坏处:系统复杂了!重复消费、消息丢失、顺序消费 ### 选型 ActiveMQ和RabbitMQ这两者因为吞吐量还有GitHub的社区活跃度的原因,在各大互联网公司都已经基本上绝迹了 Kafka和RocketMQ一直在各自擅长的领域发光发亮。一般大公司都是自研的没公开。 吞吐:ActiveMQ、RabbitMQ是万级的,Kafka、RocketMQ是十万级的 延迟:RabbitMQ微秒级,其他都是毫秒级,这是RabbitMQ优点 可用:ActiveMQ、RabbitMQ主从,Kafka、RocketMQ分布式 可靠:ActiveMQ可能丢、RabbitMQ基本不丢、Kafka、RocketMQ可通过配置0丢失 ## mysql ## 其他 ``` Java:基础、jvm、容器、juc、thread、io/nio、锁、jmx、新特性 mysql、redis、mq、dubbo、zookeeper 网络、数据结构&算法、设计模式、分布式事务、分布式锁、 Netty、Thrift CAP、Quorum、ConsistentHashing理论算法 OLAP(Hive、Presto、Drill、GreenPlum、Kylin、Impala、Spark) RocksDB、Redis、MongoDB Storm、Flink、Spark等流式计算 Redis、MemoryCache、Ehcache缓存技术 Lucene、ES、Solr搜索技术 RabbitMQ、Kafka消息队列 阿里代码规范认证:https://edu.aliyun.com/certification/cldt02 hadoop ```