MySQL一条龙
微服务的数据访问会通过sharidng-batis的map文件映射为sql,
数据库的连接池使用德鲁伊druid进行管理,
德鲁伊连接池跟mybatis的结合,是通过SqlSessionFactory,
所以完整的一次查询的流程是:query -> sharding-batis(分库分表替换)-> mybatis(代码到sql的转换)-> druid(连接池获取连接)-> 把sql送给MySQL服务器.
物理连接的过程需要经过:elb负载均衡,proxy代理,MySQL单个实例。
其中elb是elastic load balance,因为有两个proxy所以需要负载均衡。
因为有1主1备(可以随时切换为主)1从(印度人使用),所以需要proxy进行管理。
druid配置容易出问题的地方
keepalive需要启用。
maxWait最好设置为60秒。
什么情况下,druid的create线程会被触发
create线程是一个demon,在定时的运行,比如线程数不够,就会自动执行。
Condition是做啥用的
就是await和signall连个函数。