服务调用和负载均衡
结合SpringCloud,微服务之间的调用
一、loadbalancer介绍
官网,在springcloud commons中
是什么?
理解:也就是不能一直使用同一个服务器,要轮流使用。
问题:客户端负载和服务器端负载有什么区别?
理解:本地负载均衡–自己有眼力价,选择一个使用较少的服务器。
二、负载均衡案例
步骤
1、按照8001拷贝后新建8002
建moudel,改pom,yml,
同样的微服务名称下面挂着两台微服务器 8001和8002
2、解决consul数据持久化配置问题
新建mydata, 将consul中的key/value写进文件中
a.
b
向consul_start.bat中写入内容,注意!路径要改为自己的路径。(注意!将第二个路径中mydata后面的空格删掉!否则持久化不成功)
c
右键以管理员身份运行consul_start.bat
d
重新配置consul的key/value
数据将会保存在mydata中
3、订单80模块修改Controller并启动80
a
新增LoadBalance组件,再pom文件中添加依赖
放在客户端–消费者80
b
在Ordercontroller中添加下面代码:
c
启动80微服务,注入consul
- 启动80服务出现错误:
注意,这里的server 和 port 必须显示蓝色字体才行,否则端口配置不成功!
d
最后测试结果
三、负载均衡案例总结
在80 中 OrderController中添加下面代码:
运行结果:
上面表示查询到的所有可用的服务列表
下面表示列出 cloud-payment-service 的服务
四、负载均衡算法原理
一般情况下采用轮询即可。