Write a random article. Will anyone read it

Time:2020-10-18

Selection of Middleware

cache

  • ehcache
  • memcache
  • redis
  • Guava Cache https://www.pdai.tech/md/arch/arch-y-cache.html#%E7%BC%93%E5%AD%98%E5%AE%9E%E7%8E%B0-%E6%9C%AC%E5%9C%B0%E7%BC%93%E5%AD%98

    To solve the problems of cache warm-up, concurrency, penetration, jitter, avalanche, and consistency, it needs to be selected according to needs, and there is no recommendation

Current limiting

  • Current limiting algorithm
  • Guava RateLimiter

queue

  • mq RabbitMq [*]
  • mq ActiveMq
  • mq ZeroMQ
  • mq RocketMQ
  • MQ redis [x] is not exactly MQ
  • kafka [*]

load balancing

  • DNS load balancing
  • IP load balancing, such as nginx
  • Apply load balancing, such as euraka, Nacos, zookeeper

Load balancing algorithms are: polling, weighted polling, random, weighted random, hash, minimum load, consistent hash

Timed tasks

  • quartz
  • elasticjob
  • xxljob

Distributed transaction

  • TCC distributed transaction
  • Two stage submission, such as Alibaba’s Seata GTS
  • Use queue resolution

Unique ID generation

  • UUID
  • snowflake
  • Redis pre allocation
  • Database + local cache https://blog.csdn.net/likun557/article/details/90231559

Distributed lock

  • What should I do if one of them fails in the cluster environment
  • Zookeeper was asked how to communicate

Database and table Middleware

  • Sharding JDBC (Dangdang)
  • Tsharding (mushroom Street)
  • Atlas (Qihu 360)
  • Cobar (ALI)
  • MYCAT (Cobar based)
  • Oceanus (58 city)
  • Vites (Google)

Full text search

  • lucene
  • solr
  • ElasticSearch

Serialization tool

  • JDK comes with serialization
  • Kryo serialization [*]
  • JSON serialization
  • protostuff
  • fst
  • protobuf [*]
  • hessian

https://blog.csdn.net/qq_39158142/article/details/90676690

Session problem

  • jwts [*]
  • spring redis session
  • Tomcat shares session with redis

Programming gadgets

Dto Bo VO POJO replication tool

  • MapStruct [*]
  • Dozer
  • JMapper
  • ModelMapper
  • Orika
  • Selma

get&set toString builder resource.close

  • Lombok

Database version management tool

  • Liquibase [*]
  • flyway

Developing practical software

Code comparison tool

  • WinMerge
  • Diffuse
  • Beyond Compare [*]
  • AptDiff
  • Code Compare
  • Altova DiffDog is a tool for comparing and merging files, directories, database schemas and tables

Online debugging tool

  • arthas [*]

Class compilation

  • JD-GUI

Bag grabbing tool

  • tcpadmin
  • fidder
  • wireshark [*]

Interface documentation tool

  • swagger
  • rap2
  • showdoc www.showdoc.cc
  • apizza https://apizza.net/
  • YApi https://yapi.ymfe.org/
  • eolinker https://www.eolinker.com/

https://blog.csdn.net/diandianxiyu_geek/article/details/81564132