jt项目插件介绍
1)redis
参考《jt项目总结初稿(1)》中redis篇目。
2)nginx
2.1)为什么需要反向代理
---------
需求:当完成文件上传时,业务返回页面的是虚拟地址路径
url地址: `http://image.jt.com/2020/09/30/a.jpg`
真实图片地址: `file:///D:/JT-SOFT/image/2020/09/30/d534bed912c748b0ac979ee40222490a.jpg`
问题: 如何让用户通过url访问 找到真实的磁盘地址的图片
2.2)反向代理介绍
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
概括:
1.位于用户(客户端)-服务器之间.
2.用户访问反向代理服务器,以为是真实的服务器信息.
3.用户根本不清楚真实的服务器信息到底是谁.
4.一般反向代理机制保护了真实的服务器信息,所以也称之为服务器端代理.
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。**Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,**在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
特点:1.内存少 不超过2M tomcat服务器大约占用600M
2.并发能力强 3-5万次/秒 tomcat服务器大约 150-220之间
注意事项:
- 不要将nginx放到C盘及系统目录中 注意中文路径和空格.
- nginx服务器启动的速度特别快, 窗口会闪退 只启动一次即可
- nginx启动会占用80端口.
- nginx命令的运行必须在nginx.exe所在的目录中执行.
3)mycat
3.1)数据库实现高可用
高可用: 用户访问数据时访问数据库代理,数据库代理将分配主从库配置,主库尽量使用增删改,从库只进行查询,尽量保证服务尽可能的不宕机,保证用户正常使用,当某一台数据库宕机时剩余一个还可以继续运行.
3.2)数据库双机热备
说明:一般在公司中配置双机热备的形式,配置为互为主从.
3.3)实现数据库高可用测试
测试步骤:
1.关闭主数据库,之后检索数据,检查用户的访问是否受限.
2.修改数据库记录,检查用户的操作是否正常. (操作的是从库)
3.重启主数据库 之后检查从库的数据是否同步.
4)zookeeper 注册中心介绍
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_homesrcrecipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
概括: ZK主要的任务是服务的调度,提供一致性的功能.
)关于集群知识介绍
4.1) 最小的集群单位几台
公式: 存活节点的数量 > N/2 集群可以创建
1台: 1-1 > 1/2 假的
2台: 2-1> 2/2 假的
3台: 3-1> 3/2 正确
4台: 4-1> 4/2 正确
结论: 搭建集群的最小单位3台.
4.2) 为什么集群一般都是奇数
- 3台集群最多宕机几台 集群可以正常工作 最多宕机1台
- 4台集群最多宕机几台集群可以正常工作 最多宕机1台
如果实现相同的功能 奇数台更优.
4.3) 关于zk集群选举规则
原则: myid最大值优先 myid值越大的越容易当主机. 超半数同意即当选主机
题目: 问1,2,3,4,5,6,7依次启动 问1:谁当主机 4当主机
问2:谁永远不能当选主机??? 1 2 3
4.2)传统项目问题
1.如果采用nginx方式 实现负载均衡,当服务数量改变时,都必须手动的修改nginx.conf配置文件.不够智能.
2.所有的请求都会通过nginx服务器作为中转.如果nginx服务器一旦宕机,则直接影响整个系统.nginx最好只做简单的反向代理即可
传统的方式 不够智能…
微服务调用方式介绍
调用步骤:
1.将服务信息写入到注册中心(1.服务名称 2.服务IP地址 3.端口)
2.注册中心接收到服务器信息,会动态的维护服务列表数据.
3.消费者启动时会链接注册中心.目的获取服务列表数据.
4.注册中心会将服务列表数据同步给消费者,并且保存到消费者本地.以后方便调用.
5.当消费者开始业务调用时,会根据已知的服务信息进行负载均衡操作,访问服务提供者.
6.当服务提供者宕机时,由与注册中心有心跳检测机制.所以会动态的维护服务列表.
7.当注册中心的服务列表变化时, 则会全网广播 通知所有的消费者 更新本地服务列表.