SpringCloud架构搭建以及集群&架构搭建之SpringCloud

本文详细介绍了如何搭建SpringCloud架构,从创建maven聚合项目到设置Eureka注册中心,再到生产者、消费者的实现,包括Ribbon和Feign的负载均衡策略。接着,文章涉及了熔断器Hystrix的使用,Zuul路由网关配置,以及Config分布式配置中心的搭建和集群。最后,文中还涵盖了Eureka集群的配置与测试,完整展示了SpringCloud的服务治理流程。
摘要由CSDN通过智能技术生成

1.创建maven聚合项目 spring-cloud-parent
pom.xml配置

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artif actId>
		<version>2.0.5.RELEASE</version>
		<relativePath />
	</parent>
	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
		<spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
		<lombok.version>1.16.10</lombok.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

2.创建common模块 依赖父工程
3.创建eureka-8000 注册中心
pom.xml配置

<dependencies>
	<dependency>
		<groupId>org.springframework.cloud</groupId>
		<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
	</dependency>
</dependencies>

application.xml配置

  server:
      port: 8000
    eureka:
      instance:
        hostname: localhost #eureka服务器的实例名字
      client:
        register-with-eureka: false #注册中心不注册自己,默认自己也会注册自己
        fetch-registry: false #是否获取数据,false表明自己就是注册中心
        service-url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    spring:
      application:
        name: eureka-8000 #应用名

启动类配置

@EnableEurekaServer
@SpringBootApplication
public class Start {
    public static void main(String[] args) {
        SpringApplication.run(Start.class, args);
    }
}

效果测试
在这里插入图片描述
成功 还没有实例注册到eureka
4.创建生产者 将服务注册到eureka
pom.xml配置文件

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- 热部署 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
    </dependency>
    <!-- eureka客户端  -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

application.yml配置文件

server:
  port: 1000
spring:
  application:
    name: provider-1000
eureka:
  client:
    service-url: 
      defaultZone: http://localhost:8000/eureka/

启动类配置

@SpringBootApplication
@EnableEurekaClient
public class Start {
    public static void main(String[] args) {
        SpringApplication.run(Start.class, args);
    }
}

测试效果
在这里插入图片描述
成功启动
5.服务消费者 ribbon 与 feign
ribbon
继续添加多个生产者 provider -1001 provider-1002,给这些生产者 修改端口号 添加Ctrl

@RestController
public class Ctrl {
    @RequestMapping("/hello")
    public Map<String, Object> hello() {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("name", "provider-1002");
        return map;
    }
}

创建消费者 ribbon
pom.xml配置文件

<dependencies>
    <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.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
    </dependency>
</dependencies>  

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值