溜冰鞋 东莞网站建设,公司网站asp源码,郑州做网站开发销售,做网站的格言前面学习了Lua的语法#xff0c;就可以在nginx去做编程#xff0c;去实现nginx类里面的业务#xff0c;查询Redis#xff0c;查询tomcat等 #xff0c;业务逻辑的编写依赖于其他组件#xff0c;这些组件会用到OpenResty的工具去实现 #xff08;1#xff09;安装OpenRe…前面学习了Lua的语法就可以在nginx去做编程去实现nginx类里面的业务查询Redis查询tomcat等 业务逻辑的编写依赖于其他组件这些组件会用到OpenResty的工具去实现 1安装OpenResty lualib、luajit是lua提供的第三方模块比如说我们操作Redis操作Mysql这些工具模块都封装到了lualib里面了所以只要集成了lualib里面的插件就能实现这些功能了 openresty是个软连接启动的其实是nginx本身 配置了环境变量之后就可以在任意的目录下启动nginx 启动nginx 配置文件配置的端口是8081 启动页面跟nginx很像 2OpenResty快速入门
在openResty里面编写业务Redis查询tomcat查询等等 商品详情页的数据是查询服务端获取数据 现在请求报错了页面渲染的是假数据 这个请求被Windows的版本的nginx接收然后反向代理到OpenRestry去处理业务 下面需要在OpenResty去接收这个请求 修改 OpenResty下的nginx配置文件 item.lua是在nginx下面去找的创建这个目录文件 我们这里先返回假数据先不查询
ngx.say相当于java中的response.println 更改数据
重新加载nginx 刷新页面数据发生改变请求成功了是有openResty返回的数据 3OpenResty请求参数处理
怎么在openResty中获取用户的请求参数呢 修改nginx配置文件文件 修改lua文件 4查询tomcat
获取到请求参数之后是要查询数据的
openresty是先查缓存缓存中的数据从而而来是tomcat我们这里先实现查询tomcat先不查询缓存把查询到的数据放到缓存中去 tomcat是Windows的地址openResty是虚拟机的地址发送请求的时候一定要找到正确的地址有一个便捷的方式 使用关于所有的虚拟机那就是把虚拟机的ip最好以为变为1就能找到Windows的地址前提是防火墙得关闭 tomcat接收的请求以item开头
nginx配置添加: openResty会读取这个路径下的lua文件 在上面的路径下创建lua文件 新建 现在返回的数据不在是假数据而是查询的数据
修改nginx/lua下的item.lua配置文件 先只返回商品信息不返回库存信息
重新加载nginx 然后查询页面就能显示数据库中查询的真实数据了 返回完整数据需要用到一个json的工具 5tomcat集群负载均衡
上面实现了从openResty向tomcat发送一个http请求查询商品信息返回页面实现渲染上面的tomcat只有一台在实际的生产过程中国tomcat一定是个集群openResty向tomcat发送请求的时候必须对多台tomcat实现负载均衡请求 8081去查询数据库会形成一个JVM的进程缓存缓存到8081的tomcat服务器上下一次再来查8081就可以直接读取缓存不查询数据库就会提高性能但是进程缓存是不能共享的8082就没有tomcat负载均衡的规则默认是轮询下一次访问必然到8082缓存就没有生效除非把每台tomcat都查询缓存一遍冗余的查询冗余的保存占用额外空间命中率低
我想要1001商品第一次查询完永远都由缓存就需要把1001的查询每次都指定到同一台tomcat才能保证缓存才能生效
1002的商品才会查询下一台tomcat
不同商品访问不一样的服务器也可以一样但是同一个商品一定访问同一台服务器这样才能保证缓存永远命中JVM进程缓存才有意义轮询是做不到的修改nginx负载均衡的算法
hash通过hash对路径取余只要路径不变请求的tomcat就是同一台tomcat 修改nginx的配置文件 重启nginx 在启动一台tomcat 页面访问一下
算法负载均衡到8082 清空日志在刷新一遍页面8082有缓存就不需要在查了日志没有打印 换一个id1002 负载均衡到8081了 8082没有日志