概述
公司的项目基于阿里的Dubbo微服务框架开发。为了符合相关监管部门的安全要求,公司购买了华东1、华东2两套异地服务器,一套是业务服务器,一套是灾备服务器。准备在这两套服务器上实现Dubbo的分布式服务,如下图:
这里只罗列了部分服务器作为参考说明。其中 api 是消费者服务,driver 和 order 是 提供者服务。华东1 和 华东 2 分别是两个局域网,局域网内可用内网通信。两个局域网只能通过外网通信。
回到顶部
二、消费者分布式服务
消费者的分布式是通过 Nginx 配置负载均衡和反向代理实现的。我们把 Nginx 部署在华东1的 api 服务器上,Nginx的配置如下:
1、负载均衡
#gzip on; upstream tomcatServer { #华东1服务器走内网 server 192.168.27.101:8680 weight=10; #华东2服务器走外网 server 139.159.257.207:8680 weight=10; }
2、反向代理
# HTTPS server # server { listen 443 ssl; server_name api.gogo.cn; ssl_certificate /usr/local/certapi/api.pem; ssl_certificate_key /usr/local/certapi/api.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; proxy_connect_timeout 500; proxy_send_timeout 500; proxy_read_timeout 500; client_max_body_size 200m; location / { # root html; # index index.html index.htm; proxy_pass http://tomcatServer/; } }
回到顶部
三、提供者分布式服务
Dubbo 将 zookeeper 当作注册表来实现微服务框架。zookeeper 其实已经帮我们做好了负载均衡,如上图:我们把不同服务器上 driver、order 同时注册到同一个zookeeper 中,当我们调用 driver、order 服务时,zookeeper 会在两台服务器之间权衡分配,做负载均衡。在 applicationContext.xml 做如下配置...
服务提供者:
<!-- dubbo 配置 --> <dubbo:application name="ts_provider_order"/> <dubbo:registry address="${zookeeper.host}"/> <dubbo:protocol name="dubbo" port="-1"/> <dubbo:provider timeout="60000" retries="0" threadpool="cached" threads="1000" accepts="1000"/> <dubbo:consumer check="false"/> <dubbo:annotation package="com.soft.ts"/>
服务消费者:
<!-- dubbo 配置 --> <dubbo:application name="ts_admin"/> <dubbo:registry address="${zookeeper.host}" /> <dubbo:protocol name="dubbo" port="-1" /> <dubbo:consumer check="false" timeout="60000" retries="0"/> <dubbo:annotation package="com.soft.ts"/>
转载于:https://www.cnblogs.com/NJM-F/p/10095120.html
最后
以上就是无私犀牛为你收集整理的消费者用nginx做负载均衡,提供者用zookeeper自带功能实现负载均衡的全部内容,希望文章能够帮你解决消费者用nginx做负载均衡,提供者用zookeeper自带功能实现负载均衡所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复