最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2.0和springcloud Finchley版項(xiàng)目搭建(包含eureka,gateWay,F(xiàn)reign,Hystrix)

 更新時(shí)間:2019年05月29日 09:36:00   作者:lockie_zou  
這篇文章主要介紹了springboot2.0和springcloud Finchley版項(xiàng)目搭建(包含eureka,gateWay,F(xiàn)reign,Hystrix),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

前段時(shí)間spring boot 2.0發(fā)布了,與之對(duì)應(yīng)的spring cloud Finchley版本也隨之而來了,兩者之間的關(guān)系和版本對(duì)應(yīng)詳見我這邊文章:spring boot和spring cloud對(duì)應(yīng)的版本關(guān)系

項(xiàng)目地址:spring-cloud-demo

spring boot 1.x和spring cloud Dalston和Edgware版本搭建的微服務(wù)項(xiàng)目現(xiàn)在已經(jīng)很流行了,現(xiàn)在很多企業(yè)都已經(jīng)在用了,這里就不多說了。

使用版本說明:

  • spring boot 2.0.x
  • spring cloud Finchley.RELEASE
  • jdk 1.8
  • maven 3.9

Eureka 注冊(cè)中心

spring cloud Finchley在支持spring 2.0時(shí)修改了eureka的jar包,把之前netflix系列的jar引入的時(shí)候都加上了netflix

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

新建一個(gè)eureka-service注冊(cè)中心服務(wù),pom.xml 文件內(nèi)容如下:

<?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">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.sunvalley</groupId>
  <artifactId>eureka-service</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>eureka-service</name>
  <description>Demo project for Spring Boot</description>
 
  <parent>
   <groupId>com.sunvalley.springcloud</groupId>
   <artifactId>spring-cloud-demo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </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>
  </properties>
 
  <dependencies>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-test</artifactId>
     <scope>test</scope>
   </dependency>
  </dependencies>
 
  <dependencyManagement>
    <dependencies>
      <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>
 
</project>

eureka-service服務(wù)的配置文件,application.yml

spring:
 application:
  name: eureka-service
 
server:
 port: 5000
 
eureka:
 instance:
  hostname: localhost
 client:
  registerWithEureka: false
  fetchRegistry: false
  serviceUrl:
   defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

eureka-service服務(wù)的配置文件,EurekaServiceApplication

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

使用IDEA啟動(dòng)eureka-service服務(wù),本地訪問 http://localhost:5000/ 即可看到注冊(cè)中心內(nèi)容。

服務(wù)消費(fèi)者consumer和提供者provider

實(shí)際工作中大多數(shù)一個(gè)服務(wù)既是其它服務(wù)的消費(fèi)者又有可能是服務(wù)的提供者,所以我們也就不用刻意的取區(qū)分開。

新建一個(gè)order-service服務(wù),pom.xml文件

注意:除了eureka-client,openfeign等jar包外,記得引入spring-boot-starter-web不然會(huì)出現(xiàn)啟動(dòng)報(bào)錯(cuò)。

<?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">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.sunvalley</groupId>
  <artifactId>order-service</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>order-service</name>
  <description>Demo project for Spring Cloud</description>
 
  <parent>
   <groupId>com.sunvalley.springcloud</groupId>
   <artifactId>spring-cloud-demo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </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>
  </properties>
 
  <dependencies>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter</artifactId>
   </dependency>
 
   <!-- eureka 里面已經(jīng)包含 ribbon 了, 所以不用單獨(dú)添加, ribbon依賴, 點(diǎn)擊依賴就去看就知道了 -->
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-openfeign</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
   </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>
 
  <dependencyManagement>
   <dependencies>
     <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>
 
  <repositories>
   <repository>
     <id>spring-snapshots</id>
     <name>Spring Snapshots</name>
     <url>https://repo.spring.io/snapshot</url>
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
   </repository>
   <repository>
     <id>spring-milestones</id>
     <name>Spring Milestones</name>
     <url>https://repo.spring.io/milestone</url>
     <snapshots>
      <enabled>false</enabled>
     </snapshots>
   </repository>
  </repositories>
 
  <pluginRepositories>
   <pluginRepository>
     <id>spring-snapshots</id>
     <name>Spring Snapshots</name>
     <url>https://repo.spring.io/snapshot</url>
     <snapshots>
      <enabled>true</enabled>
     </snapshots>
   </pluginRepository>
   <pluginRepository>
     <id>spring-milestones</id>
     <name>Spring Milestones</name>
     <url>https://repo.spring.io/milestone</url>
     <snapshots>
      <enabled>false</enabled>
     </snapshots>
   </pluginRepository>
  </pluginRepositories>
 
 
</project>

order-service服務(wù)的配置文件,application.yml

spring:
 application:
  name: order-service
 
server:
 port: 5100
 
eureka:
 client:
  service-url:
   defaultZone: http://localhost:5000/eureka/
 
 
feign:
 hystrix:
  enabled: true

order-service服務(wù)的啟動(dòng)類,OrderServiceApplication

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

order-service服務(wù)的接口,OrderController

@RestController
@RequestMapping("/order")
public class OrderController {
  @Value("${server.port}")
  private String port;
 
  /**
   * 獲取服務(wù)端口號(hào)
   * @return
   */
  @GetMapping("/getOrderPort")
  public String getOrderPort() {
    return "order-service port:" + port;
  }
}

新建一個(gè)user-service服務(wù),pom.xml文件跟order-service一樣的這里就不列出來了

user-service服務(wù)的配置文件,application.yml

spring:
 application:
  name: user-service
 
server:
 port: 5200
 
eureka:
 client:
  service-url:
   defaultZone: http://localhost:5000/eureka/
 
feign:
 hystrix:
  enabled: true

user-service服務(wù)的啟動(dòng)類也跟order-service一樣的

在user-service工程目錄下新建一個(gè)package,再新建一個(gè)OrderRemote接口使用feign調(diào)用order-service的方法

@FeignClient(value = "order-service", fallback = OrderRemoteHystrix.class)
public interface OrderRemote {
  @GetMapping("/order/getOrderPort")
  String getOrderPort();
}

熔斷機(jī)制提示類

@Component
public class OrderRemoteHystrix implements OrderRemote {
  @Override
  public String getOrderPort() {
    return "order service 調(diào)用失敗!";
  }
} 

user-service服務(wù)的接口,UserController

@RestController
@RequestMapping("/user")
public class UserController {
  @Autowired
  OrderRemote orderRemote;
  @Value("${server.port}")
  String port;
 
  /**
   * 獲取用戶服務(wù)的端口
   * @return
   */
  @GetMapping("/getUserPort")
  public String getUserPort() {
    return "user-service port:" + port;
  }
 
  /**
   * 獲取訂單服務(wù)的端口
   * @return
   */
  @GetMapping("/getOrderPort")
  public String getOrderPort() {
    return "user-order-service port:" + orderRemote.getOrderPort();
  }
}

測(cè)試,分別啟動(dòng)eureka-service,order-service,user-service就可以在注冊(cè)中心看到服務(wù)

在瀏覽器訪問 http://localhost:5100/order/getOrderPort 調(diào)用order-service的接口

 在瀏覽器訪問 http://localhost:5200/user/getOrderPort 通過user-service使用feign聲明式調(diào)用order-service的接口

關(guān)閉order-service,再次調(diào)用就會(huì)發(fā)現(xiàn)熔斷機(jī)制起了作用

spring cloud gateway

Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技術(shù)開發(fā)的網(wǎng)關(guān),Spring Cloud Gateway旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單而有效的統(tǒng)一的API路由管理方式。Spring Cloud Gateway作為Spring Cloud生態(tài)系中的網(wǎng)關(guān),目標(biāo)是替代Netflix ZUUL,其不僅提供統(tǒng)一的路由方式,并且基于Filter鏈的方式提供了網(wǎng)關(guān)基本的功能,例如:安全,監(jiān)控/埋點(diǎn),和限流等。

新建一個(gè)gateway-service服務(wù),pom.xml文件如下

<?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">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.sunvalley</groupId>
  <artifactId>gateway-service</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
 
  <name>gateway-service</name>
  <description>Demo project for Spring Cloud</description>
 
  <parent>
   <groupId>com.sunvalley.springcloud</groupId>
   <artifactId>spring-cloud-demo</artifactId>
   <version>0.0.1-SNAPSHOT</version>
  </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>
  </properties>
 
  <dependencies>
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-gateway</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
   </dependency>
   <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
   </dependency>
 
   <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-devtools</artifactId>
     <scope>runtime</scope>
   </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>
 
  <dependencyManagement>
   <dependencies>
     <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>
 
 
</project>

gateway-service的配置文件,application.yml

spring:
 application:
  name: gateway-service
 cloud:    # spring cloud gateway 路由配置方式
  gateway:
   discovery:   #是否與服務(wù)發(fā)現(xiàn)組件進(jìn)行結(jié)合,通過 serviceId(必須設(shè)置成大寫) 轉(zhuǎn)發(fā)到具體的服務(wù)實(shí)例。默認(rèn)為false,設(shè)為true便開啟通過服務(wù)中心的自動(dòng)根據(jù) serviceId 創(chuàng)建路由的功能。
    locator:   #路由訪問方式:http://Gateway_HOST:Gateway_PORT/大寫的serviceId/**,其中微服務(wù)應(yīng)用名默認(rèn)大寫訪問。
     enabled: true
   routes:
   - id: 163           #網(wǎng)關(guān)路由到網(wǎng)易官網(wǎng)
    uri: http://www.163.com/
    predicates:
     - Path=/163/**
#   - id: ORDER-SERVICE      #網(wǎng)關(guān)路由到訂單服務(wù)order-service
#    uri: lb://ORDER-SERVICE
#    predicates:
#     - Path=/ORDER-SERVICE/**
#   - id: USER-SERVICE      #網(wǎng)關(guān)路由到用戶服務(wù)user-service
#    uri: lb://USER-SERVICE
#    predicates:
#     - Pach=/USER-SERVICE/**
 
server:
 port: 5001
 
 
logging:
 level:
  org.springframework.cloud.gateway: trace
  org.springframework.http.server.reactive: debug
  org.springframework.web.reactive: debug
  reactor.ipc.netty: debug
 
 
eureka:
 client:
  service-url:
   defaultZone: http://localhost:5000/eureka/
 
feign:
 hystrix:
  enabled: true

gateway-service的啟動(dòng)類,Application

package com.sunvalley.demo;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
 
@SpringBootApplication
public class GatewayServiceApplication {
 
  /**
  * spring cloud gateway 配置方式之一,啟動(dòng)主程序配置,還有一種是配置文件配置
  * @param builder
  * @return
  */
  @Bean
  public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
   return builder.routes()
      .route(r -> r.path("/qq/**")
           .and()
           .uri("http://www.qq.com/"))
      .build();
  }
 
  public static void main(String[] args) {
   SpringApplication.run(GatewayServiceApplication.class, args);
  }
}

通過上面我們可以看到,gateway網(wǎng)關(guān)路由配置有兩種方式:

1.通過@Bean自定義RouteLocator,在啟動(dòng)主類Application中配置

2.在配置文件yml中配置

這兩種方式都可以實(shí)現(xiàn)網(wǎng)關(guān)路由是等價(jià)的,但是通常項(xiàng)目開發(fā)中會(huì)使用配置文件yml方式。

運(yùn)行測(cè)試:

訪問 http://localhost:8080/qq,路由轉(zhuǎn)發(fā)到 http://www.qq.com
訪問http://localhost:8080/163, 路由轉(zhuǎn)發(fā)到 http://www.163.com

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot視圖解析實(shí)現(xiàn)原理深入分析

    SpringBoot視圖解析實(shí)現(xiàn)原理深入分析

    視圖解析其實(shí)就是SpringBoot某一個(gè)controller的方法執(zhí)行完成之后,它是跳轉(zhuǎn)到那個(gè)頁面。由于我們springboot項(xiàng)目默認(rèn)打包為jar包,是形成壓縮包的形式,而jsp又不支持壓縮,所以我們SpringBoot不知JSP的,需要引入第三方模板引擎才可以處理
    2022-10-10
  • Java設(shè)計(jì)模式之建造者模式實(shí)例詳解

    Java設(shè)計(jì)模式之建造者模式實(shí)例詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之建造者模式,結(jié)合具體實(shí)例形式分析了建造者模式的概念、原理、實(shí)現(xiàn)方法與相關(guān)使用注意事項(xiàng),需要的朋友可以參考下
    2017-09-09
  • 如何改變idea和maven中的sdk版本

    如何改變idea和maven中的sdk版本

    這篇文章主要介紹了如何改變idea和maven中的sdk版本,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于SpringBoot的異?;貪L和事務(wù)的使用詳解

    關(guān)于SpringBoot的異常回滾和事務(wù)的使用詳解

    這篇文章主要介紹了關(guān)于SpringBoot的異?;貪L和事務(wù)的使用詳解,Spring中 @Transactional 注解,默認(rèn)情況下,只對(duì)拋出的RuntimeException 異常,才會(huì)事務(wù)回滾,需要的朋友可以參考下
    2023-05-05
  • Java中5種方式實(shí)現(xiàn)String反轉(zhuǎn)

    Java中5種方式實(shí)現(xiàn)String反轉(zhuǎn)

    下面小編就為大家?guī)硪黄狫ava中5種方式實(shí)現(xiàn)String反轉(zhuǎn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。
    2016-06-06
  • SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法

    SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法

    本篇文章主要介紹了SpringBoot定時(shí)任務(wù)兩種(Spring Schedule 與 Quartz 整合 )實(shí)現(xiàn)方法,詳細(xì)的介紹了Spring Schedule 與 Quartz 整合的兩種方法,有興趣的可以了解一下。
    2017-03-03
  • 打包部署若依(RuoYi)SpringBoot后端和Vue前端圖文教程

    打包部署若依(RuoYi)SpringBoot后端和Vue前端圖文教程

    若依是一個(gè)使用Spring Boot作為后端和Vue.js作為前端的全棧應(yīng)用開發(fā)平臺(tái),下面這篇文章主要給大家介紹了關(guān)于打包部署若依(RuoYi)SpringBoot后端和Vue前端的相關(guān)資料,需要的朋友可以參考下
    2024-05-05
  • 解決MyBatis報(bào)錯(cuò):There is no getter for property named'Xxx'in'class xxx.xxx.Xxx'

    解決MyBatis報(bào)錯(cuò):There is no getter for 

    這篇文章主要介紹了解決MyBatis報(bào)錯(cuò):There is no getter for property named'Xxx'in'class xxx.xxx.Xxx'問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例

    spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例

    這篇文章主要介紹了spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • java利用遞歸實(shí)現(xiàn)類別樹示例代碼

    java利用遞歸實(shí)現(xiàn)類別樹示例代碼

    這篇文章主要給大家介紹了關(guān)于java利用遞歸實(shí)現(xiàn)類別樹的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評(píng)論

太谷县| 缙云县| 聂荣县| 安阳市| 巍山| 耒阳市| 青岛市| 祁连县| 登封市| 太保市| 抚远县| 辉县市| 栾川县| 徐闻县| 马公市| 辛集市| 永和县| 盘山县| 邹平县| 铜陵市| 枝江市| 无为县| 仙居县| 大洼县| 宝坻区| 堆龙德庆县| 南阳市| 蓬莱市| 松原市| 保亭| 西宁市| 珠海市| 宝应县| 游戏| 壶关县| 阿瓦提县| 大洼县| 韩城市| 饶平县| 汾阳市| 拉萨市|