SpringCloud学习(六):微服务集群配置
2023-03-14 22:47:39 时间
在上文中我们实现了eureka的集群,就相当于用户、服务和中间商中,我们连系了多个中间商,这样假如一个中间商跑路了,我们还能够通过其他中间商访问到服务。
那么,假如服务坏了呢?肯定不能只有一个服务,我们也需要给他找几个“备胎”
所以,我们需要实现服务的集群
一、创建module
参考8001,创建8002
二、修改pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>cloud</artifactId> <groupId>com.shang.cloud</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>cloud-provider-payment8002</artifactId> <dependencies> <!--包含了sleuth+zipkin--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency> <!--eureka-client--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity --> <groupId>com.shang.cloud</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> <!-- <dependency>--> <!-- <groupId>com.alibaba</groupId>--> <!-- <artifactId>druid-spring-boot-starter</artifactId>--> <!-- <version>1.1.10</version>--> <!-- </dependency>--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.20</version> </dependency> <!--mysql-connector-java--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!--jdbc--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>
三、编写yml文件
与8001一致,只是端口号修改为8002即可
server: port: 8002 spring: application: name: cloud-payment-service datasource: type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型 driver-class-name: org.gjt.mm.mysql.Driver # mysql驱动包 url: jdbc:mysql://localhost:3306/springcloud?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: root eureka: client: #表示是否将自己注册进EurekaServer默认为true。 register-with-eureka: true #是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡 fetchRegistry: true service-url: #单机版 # defaultZone: http://localhost:7001/eureka # 集群版 defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka mybatis: mapperLocations: classpath:mapper/*.xml type-aliases-package: com.atguigu.springcloud.entities # 所有Entity别名类所在包
四、编写主启动类
与8001一致,修改类名即可。
五、修改8001和8002的controller
为了能看出我们访问的是哪个服务,我们在controller中加上端口号的属性,并打印出来
六、修改80服务的业务代码
因为我们现在实现了负载均衡,有多个服务,所以OrderController 中的URL不能写死了。我们将在eureka中注册的服务名作为URL
同时应该使用@LoadBalanced注解赋予RestTemplate负载均衡的能力 。
七、运行测试
先在浏览器地址栏输入
再输入
http://localhost:8001/payment/get/1
http://localhost:8002/payment/get/1
最后输入
http://localhost:90/consumer/payment/get/1
可以看到,8001和8002端口在刷新之后交替出现(轮询)
相关文章
- PHP图片处理库Grafika详细教程(2):图像特效处理模块
- PHP图片处理库Grafika详细教程(1):图像基本处理
- 最全面的2015年全球程序员研究报告
- 如何在React中操作DOM元素?
- 一份前端开发人员的架构样式指南,请查收!
- 高性能Nginx HTTPS调优!为HTTPS提速30%
- GitHub发布年度报告:TypeScript成第四大语言
- 零售大数据分析应用的四个阶段
- 大幕已拉开,2018年人工智能的八个发展趋势看这里
- 如何在树莓派 4 上安装 Ubuntu 桌面系统
- 大数据治理需要具备哪些能力和关键技术?
- 如何轻松安装 Debian Linux 系统
- 2017年中国商业智能行业研究报告
- 从分布式管理到多租户实现,企业级大数据系统如何利用开源生态构建?
- 多彩贵州、爽爽贵阳——“数字经济引领新增长”开启2017年数博会大幕
- 一篇文章解决你所有关于数据分析的问题!
- 发展基础软件生态,建设自主创新根技术
- 干货|国内外十大主流采集软件盘点
- 浅谈车企如何点燃大数据
- 在 Linux 使用 systemd-udevd 管理你的接入硬件