2018-04-02 java中常用的中间件

myCat 用于切分mysql数据库(为什么要切分:当数据量过大时,mysql查询效率变低)
ActiveMQ 订阅,消息推送
swagger 前后端分离,后台接口调式
dubbo 阿里的面向服务RPC框架,为什么要面向服务,将各个业务分开,每个服务做更少的事
zookeeper 分布式选举
FastDFS 分布式文件上传下载
Security 登陆登出服务
Zuul 共享资源,解决跨域访问
POI excel导入
crontab 定时任务
Jedis 操作radis缓存
javamail 使用java 向邮箱发消息
activityi 动态工单流组件
Spring statemache 有限状态机
Jwt 用户登录信息

Docker 提供一个项目部署的测试环境
Nginx 主要做负载均衡 Nginx将同时管理多个tomcat,引导用户进入对应的tocmat
虽然Nginx 可以将用户的请求转发到不同的tomcat上
但是如果Nginx 挂了,整个服务还是会挂
所以使用keepalived 来给nginx配主,备
但是如果访问量瞬时过大,主被压坏后,备服务上了瞬间还是会被压坏
所以用linux内置的LVS(虚拟) 来管理多个nginx,将用户请求发送给nginx,nginx再转发给tomcat,tomcat返回给nginx,nginx再返回给用户,不用再次经过LVS,所以又可以提升并发量
但是用户量还是大,还需要CDN,CDN通过判断用户所在地区将请求分发往不同地区的服务器

keepalived的运行方式

2台机器都装keepalived,互相发送消息
同时脚本ps -ef 获取对应进程 ,如果自己的进程挂了,就发送消息给另一个keepalived,将对外ip赋给另一个机器,然后将挂了的进程重启,然后让ip返回

你可能感兴趣的:(2018-04-02 java中常用的中间件)