Category: Java Architecture

[汇总] TiDB经验 0

[汇总] TiDB经验

为什么我们要从MySQL迁移到TiDB? 1.3 万亿条数据查询,如何做到毫秒级响应?TiDB 

[汇总] RabbitMQ经验 0

[汇总] RabbitMQ经验

SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码) SpringBoot +RabbitMQ 做智能家居 rabbitmq有两种协议,我们平时接触的消息队列是用的AMQP协议,而用在智能硬件中的是MQTT协议。 RabbitMQ和Kafka的显著差异 只要我们是单个消费者,那么接收到的消息就是有序的。然而,一旦有多个消费者从同一个队列中读取消息,那么消息的处理顺序就没法保证了。 Kafka能够保证发送到相同主题分区的所有消息都能够按照顺序处理。

[汇总]JVM, OOM经验 0

[汇总]JVM, OOM经验

记一次隐藏很深的 JVM 线上惨案的分析、排查、解决! JVM在反射代码执行的过程导致Full GC   ArrayList插入1000w条数据之后,我怀疑了jvm… 加个 -XX:+PrintGCDetails -XX:+PrintGCDateStamps,看下第一次是不是有Full GC   案例实战:每日上亿请求量的电商系统,JVM年轻代垃圾回收参数如何优化?   神奇的 perfma:一站式解决所有 JVM 疑难杂症! JVM参数分析的链接地址:https://opts.console.perfma.com/   生产实践经验:线上系统的 JVM 内存是越大越好吗? 所以很多人在用Elasticsearch的时候就是这样的一个问题,老是觉得ES读取速度慢,几个亿的数据写入ES,读取的时候要好几秒。那能不花费好几秒吗?你要是ES集群部署的时候,给JVM内存过大,给os cache留了几个GB的内存,导致几亿条数据大部分都在磁盘上,不在os cache里,最后读取的时候大量读磁盘,耗费个几秒钟是很正常的。 所以说,针对类似Kafka、Elasticsearch这种生产系统部署的时候,应该要给JVM比如6GB或者几个GB的内存就可以了。因为他们可能不需要耗费过大的内存空间,不依赖JVM内存管理数据,当然具体是设置多少,需要你精准的压测和优化。 但是对于这类系统,应该给os cache留出来足够的内存空间,比如32GB内存的机器,完全可以给os cache留出来20多G的内存空间,那么此时假设你这台机器总共就写入了20GB的数据,就可以全部驻留在os cache里了。然后后续在查询数据的时候,不就可以全部从os cache里读取数据了,完全依托内存来走,那你的性能必然是毫秒级的,不可能出现几秒钟才完成一个查询的情况。   为什么我们选择Java开发高频交易系统?...

[汇总]网关Gateway经验 0

[汇总]网关Gateway经验

8秋API接口设计风格与11种API协议 8种API风格:RESTful, WebSocket, SOAP, Webhook, GraphQL,gRPC,MQTT,AMQP。 11种API协议:REST, gRPC, GraphQL, Websocket, SOAP, Webhooks, SSE, AMQP, MQTT, API协议,EDA,EDI REST API 授权认证方法 编码,加密,令牌化   这样讲API网关,你应该能明白了吧! 阿里大佬分享API网关在微服务架构中的应用 关于Spring Cloud Zuul 那些“不能说的秘密”! 如何设计 API 接口,实现统一格式返回? 基于 Apache APISIX,爱奇艺 API...

[汇总]构架性能优化 0

[汇总]构架性能优化

架构与思维:设计容量,到底有多重要 ? 别再纠结线程池大小 + 线程数量了,没有固定公式的! 处理亿级数据的“定时任务”,如何缩短执行时间?

[汇总]Redis优化 0

[汇总]Redis优化

4次优化,我把 Redis 性能 “压榨” 到极致! pipeline,简直就是Redis优化的一大杀器

[汇总]分布式锁开发 0

[汇总]分布式锁开发

Spring Boot 2实现分布式锁 早期,分布式锁的相关代码存在于Spring Cloud的子项目Spring Cloud Cluster中,后来被迁到Spring Integration中。 Spring Boot加一个注解,轻松实现 Redis 分布式锁