SpringCloud無介紹快使用责嚷,集群cloud-provider-payment8002搭建(十二)

@TOC

問題背景

從零開始學(xué)springcloud微服務(wù)項目
注意事項:

  • 約定 > 配置 > 編碼
  • IDEA版本2021.1
  • 這個項目咱旱,我分了很多篇章,每篇文章一個操作步驟,目的是顯得更簡單明了
  • controller調(diào)service豌骏,service調(diào)dao
  • 項目源碼以及sentinel安裝包

服務(wù)集群搭建

1 cloud-provider-payment8002子模塊module創(chuàng)建



2 選擇jdk1.8



3 輸入服務(wù)名:cloud-provider-payment8002

4 導(dǎo)入依賴

<?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>springcloud2022</artifactId>
        <groupId>com.yg</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-provider-payment8002</artifactId>

    <dependencies>
        <!--eureka-client-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency><!-- 引入自己定義的api通用包代承,可以使用Payment支付Entity -->
            <groupId>com.yg</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>
        <!--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>

5 添加application.yml文件

server:
  port: 8002

spring:
  application:
    name: cloud-payment-service
  datasource:
    #type: com.alibaba.druid.pool.DruidDataSource            # 當(dāng)前數(shù)據(jù)源操作類型
    driver-class-name: com.mysql.cj.jdbc.Driver              # mysql驅(qū)動包
    url: jdbc:mysql://localhost:3306/mysqltest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456


eureka:
  client:
    #表示是否將自己注冊進(jìn)EurekaServer默認(rèn)為true汁蝶。
    register-with-eureka: true
    #是否從EurekaServer抓取已有的注冊信息,默認(rèn)為true论悴。單節(jié)點無所謂掖棉,集群必須設(shè)置為true才能配合ribbon使用負(fù)載均衡
    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.yg.springcloud.entities    # 所有Entity別名類所在包

6 復(fù)制服務(wù)cloud-provider-payment8001的業(yè)務(wù)代碼到cloud-provider-payment8002,更改啟動類的類名


7 修改cloud-provider-payment8001和cloud-provider-payment8002的PaymentController膀估,更改從yml中獲取服務(wù)端口

package com.yg.springcloud.controller;

import com.yg.springcloud.entities.CommonResult;
import com.yg.springcloud.entities.Payment;
import com.yg.springcloud.service.PaymentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @Author suolong
 * @Date 2022/6/14 21:36
 * @Version 2.0
 */
@RestController
@Slf4j
public class PaymentController {

    @Value("${server.port}")
    private String serverPort;

    @Resource
    private PaymentService paymentService;

    @PostMapping(value = "/payment/create")
    public CommonResult create(@RequestBody Payment payment) {
        int result = paymentService.create(payment);
        log.info("result哈哈哈: {}", result);
        if (result > 0) {
            return new CommonResult(200, "插入成功", result);
        }
        return new CommonResult(500, "插入失敗", null);
    }

    @GetMapping(value = "/payment/get/{id}")
    public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id) {
        Payment payment = paymentService.getPaymentById(id);
        log.info("查詢結(jié)果哈哈哈hahah:{}", payment);
        if (payment != null) {
            return new CommonResult(200, "查詢成功哈: " + serverPort, payment);
        } else {
            return new CommonResult(500, "沒有對應(yīng)記錄,查詢ID: " + id, null);
        }
    }

}

8 修改cloud-consumer-order80中的OrderController的PaymentSrv_URL的地址

public static final String PaymentSrv_URL = "http://CLOUD-PAYMENT-SERVICE";

在ApplicationContextConfig中添加注解@LoadBalanced幔亥,進(jìn)行負(fù)載均衡Ribbon

package com.yg.springcloud.config;

import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @Author suolong
 * @Date 2022/6/15 20:53
 * @Version 2.0
 */
@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced // 使用@LoadBalanced注解賦予RestTemplate負(fù)載均衡的能力
    public RestTemplate restTemplate()
    {
        return new RestTemplate();
    }

}

9 先啟動EurekaService,在啟動其他所有服務(wù):http://eureka7001.com:7001/

10 查詢兩次察纯,實現(xiàn)負(fù)載均衡:http://localhost/consumer/payment/get/1
第一次使用的8001端口


第二次使用的8002端口

11 由此可見restTemplate可以直接使用服務(wù)名進(jìn)行調(diào)用

public String PaymentSrv_URL = "http://CLOUD-PAYMENT-SERVICE";
restTemplate.postForObject(PaymentSrv_URL + "/payment/create", payment, CommonResult.class);

12 actuator更改主機(jī)名稱帕棉,顯示ip针肥,更改yml
cloud-consumer-order80

server:
  port: 80


spring:
  application:
    name: cloud-consumer-order80


eureka:
  client:
    #表示是否將自己注冊進(jìn)EurekaServer默認(rèn)為true。
    register-with-eureka: true
    #是否從EurekaServer抓取已有的注冊信息香伴,默認(rèn)為true慰枕。單節(jié)點無所謂,集群必須設(shè)置為true才能配合ribbon使用負(fù)載均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: order80
    prefer-ip-address: true     #訪問路徑可以顯示IP地址

cloud-payment-service8002

server:
  port: 8002

spring:
  application:
    name: cloud-payment-service
  datasource:
    #type: com.alibaba.druid.pool.DruidDataSource            # 當(dāng)前數(shù)據(jù)源操作類型
    driver-class-name: com.mysql.cj.jdbc.Driver              # mysql驅(qū)動包
    url: jdbc:mysql://localhost:3306/mysqltest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456


eureka:
  client:
    #表示是否將自己注冊進(jìn)EurekaServer默認(rèn)為true即纲。
    register-with-eureka: true
    #是否從EurekaServer抓取已有的注冊信息具帮,默認(rèn)為true。單節(jié)點無所謂低斋,集群必須設(shè)置為true才能配合ribbon使用負(fù)載均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: payment8002
    prefer-ip-address: true     #訪問路徑可以顯示IP地址

mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.yg.springcloud.entities    # 所有Entity別名類所在包

cloud-payment-service8001

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  datasource:
    #type: com.alibaba.druid.pool.DruidDataSource            # 當(dāng)前數(shù)據(jù)源操作類型
    driver-class-name: com.mysql.cj.jdbc.Driver              # mysql驅(qū)動包
    url: jdbc:mysql://localhost:3306/mysqltest?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: 123456


eureka:
  client:
    #表示是否將自己注冊進(jìn)EurekaServer默認(rèn)為true蜂厅。
    register-with-eureka: true
    #是否從EurekaServer抓取已有的注冊信息,默認(rèn)為true膊畴。單節(jié)點無所謂掘猿,集群必須設(shè)置為true才能配合ribbon使用負(fù)載均衡
    fetchRegistry: true
    service-url:
      #defaultZone: http://localhost:7001/eureka
      defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
  instance:
    instance-id: payment8001
    prefer-ip-address: true     #訪問路徑可以顯示IP地址

mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.yg.springcloud.entities    # 所有Entity別名類所在包

12 更改之后,查看服務(wù)名變化:http://eureka7001.com:7001/

SpringCloud無介紹快使用巴比,Seata處理分布式事務(wù)(二十五)
SpringCloud無介紹快使用术奖,sentinel服務(wù)熔斷功能(二十四)
SpringCloud無介紹快使用,sentinel注解@SentinelResource的基本使用(二十三)
SpringCloud無介紹快使用轻绞,sentinel熱點key限流與系統(tǒng)規(guī)則的基本使用(二十二)
SpringCloud無介紹快使用采记,sentinel熔斷降級和限流的基本使用(二十一)
SpringCloud無介紹快使用,Nacos集群和Nginx代理(二十)
SpringCloud無介紹快使用政勃,nacos配置中心的基本使用(十九)
SpringCloud無介紹快使用唧龄,nacos注冊中心的基本使用(十八)
SpringCloud無介紹快使用,gateway通過微服務(wù)名實現(xiàn)動態(tài)路由(十七)
SpringCloud無介紹快使用奸远,gateway的基本使用(十六)
SpringCloud無介紹快使用既棺,Ribbon負(fù)載均衡工具與OpenFeign的使用(十五)
SpringCloud無介紹快使用,使用Zookeeper替換Eureka服務(wù)注冊與發(fā)現(xiàn)(十四)
SpringCloud無介紹快使用懒叛,服務(wù)發(fā)現(xiàn)Discovery和Eureka自我保護(hù)(十三)
SpringCloud無介紹快使用丸冕,集群cloud-provider-payment8002搭建(十二)
SpringCloud無介紹快使用,集群Eureka服務(wù)注冊中心cloud-eureka-server7002搭建(十一)
SpringCloud無介紹快使用薛窥,單機(jī)Eureka服務(wù)注冊中心cloud-eureka-server7001搭建(十)
SpringCloud無介紹快使用胖烛,新建cloud-api-commons公共模塊module(九)
SpringCloud無介紹快使用,新建子module消費者訂單模塊(八)
SpringCloud無介紹快使用诅迷,熱部署devtools配置(七)
SpringCloud無介紹快使用佩番,子module提供者支付微服務(wù)業(yè)務(wù)開發(fā)(六)
SpringCloud無介紹快使用,新建子module提供者支付微服務(wù)yml整合和新建啟動類(五)
SpringCloud無介紹快使用罢杉,新建子module提供者支付微服務(wù)pom整合(四)
SpringCloud無介紹快使用趟畏,springcloud父工程pom文件整理(三)
SpringCloud無介紹快使用,IDEA新建springcloud父工程(二)
SpringCloud無介紹快使用滩租,與Spingboot之間的兼容版本選擇(一)




作為程序員第 179 篇文章赋秀,每次寫一句歌詞記錄一下利朵,看看人生有幾首歌的時間,wahahaha ...

Lyric: 接下來為您播放的是

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沃琅,一起剝皮案震驚了整個濱河市哗咆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌益眉,老刑警劉巖晌柬,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異郭脂,居然都是意外死亡年碘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門展鸡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來屿衅,“玉大人,你說我怎么就攤上這事莹弊〉泳茫” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵忍弛,是天一觀的道長响迂。 經(jīng)常有香客問我,道長细疚,這世上最難降的妖魔是什么蔗彤? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮疯兼,結(jié)果婚禮上然遏,老公的妹妹穿的比我還像新娘。我一直安慰自己吧彪,他們只是感情好待侵,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著姨裸,像睡著了一般诫给。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啦扬,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天,我揣著相機(jī)與錄音凫碌,去河邊找鬼扑毡。 笑死,一個胖子當(dāng)著我的面吹牛盛险,可吹牛的內(nèi)容都是我干的瞄摊。 我是一名探鬼主播勋又,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼换帜!你這毒婦竟也來了楔壤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤惯驼,失蹤者是張志新(化名)和其女友劉穎蹲嚣,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祟牲,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡隙畜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了说贝。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片议惰。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乡恕,靈堂內(nèi)的尸體忽然破棺而出言询,到底是詐尸還是另有隱情,我是刑警寧澤傲宜,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布运杭,位于F島的核電站,受9級特大地震影響蛋哭,放射性物質(zhì)發(fā)生泄漏县习。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一谆趾、第九天 我趴在偏房一處隱蔽的房頂上張望躁愿。 院中可真熱鬧,春花似錦沪蓬、人聲如沸彤钟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逸雹。三九已至,卻和暖如春云挟,著一層夾襖步出監(jiān)牢的瞬間梆砸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工园欣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留帖世,地道東北人。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓沸枯,卻偏偏與公主長得像日矫,于是被迫代替她去往敵國和親赂弓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容