잠정적 검토 요약 (7) 광고 시스템의 단계를 구현하여 봄 클라우드 단계]

이전 과정에서, 우리는 네 개의 프로젝트를 만든 :

서비스 발견

우리는 배우고, 서비스 검색 구성 요소로 유레카를 사용 Eureka Server, Eureka Client사용합니다.

  • 유레카 서버

    1. 플러스 의존
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <!--<artifactId>spring-cloud-netflix-eureka-server</artifactId>-->
          <artifactId>spring-cloud-starter-eureka-server</artifactId>
          <version>1.2.7.RELEASE</version>
      </dependency>
    1. 코멘트를 추가
    @SpringBootApplication
    @EnableEurekaServer
    public class DiscoveryApplication {
      public static void main(String[] args) {
          SpringApplication.run(DiscoveryApplication.class, args);
      }
    }
    1. 변경 구성
    eureka:
    instance:
      hostname: server1
      prefer-ip-address: false
    client:
      service-url:
        defaultZone: http://server2:8888/eureka/,http://server3:9999/eureka/

스프린트 부트 프로젝트 부작을 사용하여, 우리는 신속하게 새로운 구성 요소 및 정상적인 사용을 추가 할 수 있습니다

  • Nacos 서버

    나는이 프로젝트에 달성하지 않은,하지만 우리는 할 수 있고 유레카 같은 부작을 얻을.

    1. 플러스 의존도 (때문에 SC 알리바바 졸업 영향은 다음 알리바바 저장소에 봄 - 클라우드 가족 의존성에서 이동합니다, 따라서 모든 사람들 학습에 의존, 버전 정보에주의를 지불해야합니다, GitHub의 포털 )
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
          <version>0.9.0.RELEASE</version>
      </dependency>
    1. 코멘트를 추가

      이전 버전에서는, 우리는 추가해야 @EnableDiscoveryClient하지만, nacos 0.9 이후, 우리는 주석이 ~ 표시 추가 할 필요가 없습니다, 그래서이 단계는 무시 될 수있다.

    2. 변경 구성
    spring: 
    cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #前提是要启动Nacos Server
            metadata:
              version: v1
            # 指定namespace(profile)
            #namespace: 404060ce-2e6c-4f72-8083-2beb4ca921ad
            # 指定集群名称
            cluster-name: BJ

    Nacos 서버는 참조 할 수 있습니다, 자신의 검색하십시오 Nacos Github에서를

게이트웨이 라우팅

  1. 플러스 의존도 (게이트웨이도 등록 할 필요가 있기 때문 服务发现에, 그래서 또한 클라이언트, 우리가 소개합니다 spring-cloud-starter-netflix-eureka-client)
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>
  1. 코멘트를 추가
/**
* @SpringCloudApplication 是以下三个注解的组合注解

* @see SpringBootApplication // 标柱是Spring Boot 项目启动
* @see EnableDiscoveryClient // 标柱为服务发现 client,引入Eureka依赖之后 等同于 @EnableEurekaClient
* @see EnableCircuitBreaker // 断路器,后续我们会讲解
*/
@SpringCloudApplication
@EnableZuulProxy //启动网关代理服务
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class, args);
    }
}
  1. 변경 구성
zuul:
#  ignored-services: '*' # 过滤所有请求,除了下面routes中声明过的服务
  routes:
    sponsor: #在路由中自定义服务路由名称
      path: /ad-sponsor/**
      serviceId: mscx-ad-sponsor #微服务name
      strip-prefix: false
    search: #在路由中自定义服务路由名称
      path: /ad-search/**
      serviceId: mscx-ad-search #微服务name
      strip-prefix: false
  prefix: /gateway/api
  strip-prefix: true #不对 prefix: /gateway/api 设置的路径进行截取,默认转发会截取掉配置的前缀

소스 코드를 참조하여 특정 코드.

공통 코드베이스

이 사실은, 그것은이 라인에 프로젝트, 아무것도 특별한 요구에 도구로 사용할 수 있습니다.

광고 전달 시스템

우리는이 기술을 사용하는 프로젝트는 다음과 같습니다

  1. MySQL의 8
  2. 유레카 클라이언트
  3. ORM 코드의 데이터베이스와 상호 작용할 수 있습니다 jpa
  4. 이동 경로 (데이터베이스 버전 관리 도구)

기술을 추가 도움이 필요하세요?

  1. 척하기 (마이크로 - 서로 다른 서비스를 호출)
  2. 리본 (라는 클라이언트로드 밸런싱)
  3. hystrix (내결함성 및 흐름 제어 서비스 관리)

각 기술이 구현 및 프레임 워크의 완전한 세트를 가지고, 학생들이 깊이 자신의 인덱스를 공부하고자, 후 광고 시스템 후에, 나는 다른 시리즈를 재생됩니다 우리는 기본이되는 구현의 프레임 워크를 논의 할 수 있습니다.

추천

출처blog.51cto.com/1917331/2424689