nginx loadbalance spring server负载均衡

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: nginx loadbalance spring server负载均衡

项目地址

https://gitee.com/lmk73444/learn_spring/blob/master/demo/deploy/compose/loadbalance_demo/readme.md

部署服务

完成 ecs-no-db 试验后,进行服务的 负载均衡配置

启动编排的服务

mkdir -p loadbalance_demo/
cd loadbalance_demo
# 在 本地电脑 创建 容器编排 文件, 
# 修改 数据库 地址 为 内网地址
# 修改 数据库账户密码
# 内容参考 demo/deploy/loadbalance_demo/docker-compose.yml
# demo/deploy/loadbalance_demo/nginx.conf
# 本地准备好 loadbalance_demo 目录,把 loadbalance_demo/docker-compose.yml 中的账号密码更换成自己的
# 远程同步目录
scp -r c:/xxxxx/loadbalance_demo  root@服务器ip:/root/
# 必须在 docker-compose.yml 文件 所在目录下 执行
cd /root/loadbalance_demo/
# 检查服务器上 nginx.conf 和 docker-compose.yml 是否存在
ls 
# 更新镜像
docker pull  registry.cn-hangzhou.aliyuncs.com/mkmk/java:demo
docker compose up -d

在ecs 中测试服务

curl http://localhost:8080/host; echo
# server hostname is: 51e7a2261da8
curl http://localhost:8080/host; echo
# server hostname is: 751f0518d9fb
curl http://localhost:8080/user/all
# [{"id":1,"name":"xiaoming","email":"test@example.com","age":0}]

我们访问 同一个 nginx 请求 就会被 代理给 spring 的不同主机

他们除了 host 接口返回的 主机名不同外


他们 提供的 用户查询, 创建用户的数据 都是 共享的 同一个 数据库


同时 数据库 的 事务 的 读写锁lock, 可以 让多个实例之间 保证 业务数据的一致性

在浏览器访问服务

登录 ecs 打开 安全组, 放行 8080 端口 源:0.0.0.0/0

http://<ecs公网ip>:8080/host

关闭 compose 服务

cd  yml文件所在目录
docker compose down




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
8月前
|
负载均衡 网络协议 算法
一文读懂什么是Nginx?它能否实现IM的负载均衡?
Nginx(及其衍生产品)是目前被大量使用的服务端反向代理和负载均衡方案,从某种意义上来讲,Nginx几乎是低成本、高负载Web服务端代名词。 如此深入人心的Nginx,很多人也想当然的认为,在IM或消息推送等场景下是否也能使用Nginx来解决负载均衡问题? 另外,即时通讯网的论坛和QQ群里也经常有人问起,Nginx是否能支持TCP、UDP、WebSocket的负载
186 4
|
3月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
198 0
|
12月前
|
负载均衡 算法 搜索推荐
Nginx 常用的负载均衡算法
【10月更文挑战第17天】在实际应用中,我们需要根据具体的情况来选择合适的负载均衡算法。同时,还可以结合其他的优化措施,如服务器健康检查、动态调整权重等,来进一步提高负载均衡的效果和系统的稳定性。
298 59
|
5月前
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
155 21
|
5月前
|
负载均衡 Java 应用服务中间件
Tomcat与Nginx的负载均衡与动静分离技巧
总的来说,Tomcat和Nginx各有各的优点,在负载均衡和动静分离这两方面它们都有很好的应用。灵活使用这两个工具能够让Web应用具有更好的扩展性和用户体验。
132 14
|
5月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
180 11
|
7月前
|
负载均衡 算法 应用服务中间件
Nginx长连接负载均衡详细说明以及案例
本文详细介绍了Nginx长连接负载均衡的配置与原理。长连接(Keepalive)允许客户端和服务器保持连接,减少建立和关闭连接的开销。Nginx支持多种负载均衡算法,如轮询、IP哈希等。通过在Nginx配置文件中使用`upstream`模块和`keepalive`指令,可以实现长连接负载均衡,从而提高系统的性能和响应速度。示例配置展示了如何设置后端服务器组、长连接数及HTTP/1.1协议,确保连接复用,降低延迟。
425 5
|
7月前
|
负载均衡 应用服务中间件 nginx
如何使用nginx实现负载均衡?
如何使用nginx实现负载均衡?
|
11月前
|
负载均衡 算法 Java
除了 Ribbon,Spring Cloud 中还有哪些负载均衡组件?
这些负载均衡组件各有特点,在不同的场景和需求下,可以根据项目的具体情况选择合适的负载均衡组件来实现高效、稳定的服务调用。
889 61