consul

 

post
http://127.0.0.1:8001/pay/add
{
    "payNo": "payString",
    "orderNo": "abcasdf",
    "userId": "1",
    "amount" : "9.99"
}

delete
http://127.0.0.1:8001/pay/del/4

put
http://127.0.0.1:8001/pay/update
{
    "id":"3",
    "payNo": "payUpdate",
    "orderNo": "updateNo11111",
    "userId": "3",
    "amount" : "9.99"
}

get
http://127.0.0.1:8001/pay/get/3
http://127.0.0.1:8001/pay/get/-3
http://127.0.0.1:8001/pay/error

get
http://127.0.0.1:8001/pay/all

Swagger3
@Tag controller类
@Schema model层的javaBean
@Operation 方法

http://127.0.0.1:8001/swagger-ui/index.html

---------------------------------------------------------------------------------------
###################  spring cloud consul #########################################


http://localhost/consumer/pay/get/1
http://localhost/consumer/pay/all
http://localhost/consumer/pay/add?payNo=12123&orderNo=12123&userId=3&amount=3.33
http://localhost/consumer/pay/del/1
http://localhost/consumer/pay/update?id=6&payNo=update12123&orderNo=update12123&userId=3&amount=3.33
http://localhost/consumer/pay/get/info
http://localhost/consumer/discovery
----------------------------------------------------------------------------------------

consul --version
consul agent -dev
http://localhost:8500

        <!--SpringCloud consul discovery -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


spring:
  application:
    name: cloud-payment-service
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}


@EnableDiscoveryClient


public static final String PaymentSrv_URL = "http://cloud-payment-service";//服务注册中心上的微服务名称


@LoadBalanced //使用@LoadBalanced注解赋予RestTemplate负载均衡的能力

CAP:
C:consistency强一致性
A:Availability可用性
P:Partition tolerance分区容错性
CA:单点集群,一致性,可用性
CP:分区一致性,性能不高
AP:分区可用性,降低分区一致性。

Eureka:AP
Consul: CP
Zookeeper:CP


        <!--SpringCloud consul config-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-config</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>



bootstrap.yml

spring:
  application:
    name: cloud-payment-service
    ####Spring Cloud Consul for Service Discovery
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        service-name: ${spring.application.name}
      config:
        profile-separator: '-' # default value is ",",we update '-'
        format: YAML
#        watch:
#          wait-time: 1

  # config/cloud-payment-service/data
  #       /cloud-payment-service-dev/data
  #       /cloud-payment-service-prod/data

consul界面操作:

key/value
config/
cloud-payment-service/
cloud-payment-service-dev/
cloud-payment-service-prod/

key:data
value: 
dataconfig:
   info: configdata version 1.0


http://localhost:8001/pay/get/info

@RefreshScope // 动态刷新

以前ribbon,现在的loadBalanced。客户端负载均衡

consul配置持久化
新建mydata文件夹,
新建consul_start.bat文件
内容如下
@echo.服务启动......
@echo off
@sc create Consul binpath= "D:\Downloads\consul_1.21.5_windows_amd64\consul.exe agent -server -ui -bind=127.0.0.1 -client=0.0.0.0 -bootstrap-expect 1 -data-dir D:\Downloads\consul_1.21.5_windows_amd64\mydata  "
@net start Consul
@sc config Consul start= Auto
@echo.Consul start is OK......success
@pause


        <!--loadbalancer-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

loadbalancer默认算法有两种:轮询和随机。
RoundRobinLoadBalancer



----------------------------------------------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2025-12-21 21:00  yebinghuai-qq-com  阅读(0)  评论(0)    收藏  举报

导航