前言
本篇博客主要是介紹我們支付微服務進行集羣搭建,支付微服務主要是對外提供接口服務,在這進行集羣搭建主要是方便其他服務使用。根據之前幾篇博客,已經編寫了支付服務,現在再創建一個支付服務。
支付微服務B
1.創建module
2.修改POM文件:
<dependencies>
<!--eureka-client-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</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>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>
<!--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>
<!--引入自定義的api通用包,可以使用payment支付Entitiy-->
<dependency>
<groupId>com.zcw</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</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>
</dependency>
</dependencies>
3.修改YML文件
server:
port: 8097
spring:
application:
name: cloud-provider-payment-zcw-service
datasource:
type: com.alibaba.druid.pool.DruidDataSource # 當前數據源操作類型
driver-class-name: org.gjt.mm.mysql.Driver
url: jdbc:mysql://localhost:3306/zcw20200509?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
serviceUrl:
#defaultZone: http://server1:7001/eureka/
defaultZone: http://server2:7008/eureka/,http://server1:7001/eureka/
mybatis:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.zcw.springcloud.entities # 所有entity別名類所在包
4.創建mapper類文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcw.springcloud.dao.PaymentDao">
<resultMap id="BaseResultMap" type="com.zcw.springcloud.entities.Payment">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="serial" jdbcType="VARCHAR" property="serial" />
</resultMap>
<sql id="Base_Column_List">
id, serial
</sql>
<insert id="create" parameterType="Payment" useGeneratedKeys="true" keyProperty="id">
insert into payment(serial) values(#{serial});
</insert>
<select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
select * from payment where id=#{id};
</select>
</mapper>
如圖上所示,我們需要全部複製另一個號上面,具體代碼不在者一一展示,在其他博客裏面都詳細的介紹了。
5.修改Controller,
因爲我們目前服務提供者是集羣,所以需要修改服務提供者的controller層,我們要把具體的每個端口,注入到各自的controller層,今天只拿其中一個類進行演示:
這樣做的目的是,告訴調用者正在使用的是哪個具體的服務提供者信息。
6.測試
- 啓動各個組件:
通過postman測試我們發現,項目修改是成功的,現在開始修改使用者controller層方法,我們要進行輪訓的方式進行訪問接口:
- 繼續修修改調用者配置類:
- 重新啓動我們調用者,再次訪問