eureka
1、添加依賴
<!--提供注冊中心服務依賴開始-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!--提供注冊中心依賴服務結束-->
<!--springcloud依賴開始-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--springcloud依賴結束-->
2、在核心配置類上添加注解
@EnableEurekaServer
3、在配置檔案中添加以下配置
server:
port: 8761//預設端口号
eureka:
instance:
hostname: localhost
client:
#不注冊自己
registerWithEureka: false
#不檢索服務
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}
消費者與服務者搭建
1.添加依賴
<!--提供向注冊中心注冊依賴開始-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--提供向注冊中心注冊依賴結束-->
2、核心配置類添加注解
@EnableEurekaClient
3、添加配置
server:
port: 8762
spring:
application:
name: wxf-springcloud-web
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/
feign
1、添加依賴
<!--fegin依賴開始-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
<!--fegin依賴結束-->
<!--google工具類依賴開始-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>27.1-jre</version>
</dependency>
<!--google工具類依賴結束-->
2、添加注解到核心配置類上
@EnableFeignClients
3、 寫接口 ,接口寫在調用者的服務中
在接口類上,添加以下注解
@FeignClient(name = "wxf-springcloud-service") //這裡的name是你想調用服務的name
在接口方法上
@GetMapping(value = "api/show") //這裡的請求方式是根據你想請求的接口的類型來定義的 這裡的value是你想請求接口的uri
hystrix
1 、添加依賴
因為我們的spring-cloud-starter-feign依賴中包含了熔斷相關依賴所有不用單獨引用了
2、添加配置
feign:
hystrix:
enabled: true
3、添加注解
在@FeignClient中添加fallback 它的值為指定熔斷的class,繼承接口,并用@conpinent進行諸如,這個class是要實作需要熔斷的類,實作他其中的方法即可;
Ribbon
1、在調用者中添加配
#服務名,添加到web層
wxf-springcloud-service:
ribbon:
#政策-随機
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
#輪尋
什麼都不添加,預設為輪尋
zuul
1、新建立一個項目
2、添加eureka依賴,讓zuul注冊;添加zuul依賴
<!--提供向注冊中心注冊依賴開始-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<!--提供向注冊中心注冊依賴結束-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
3、核心配置類添加注解
@EnableZuulProxy
4、添加配置
zuul:
routes:
api-b:
path: /test/**
serviceId: wxf-springcloud-web
5、自定義一個filter
建立一個類,并且讓這個類繼承zuulfilter,注入;重寫方法
filterType()
傳回pre等于在路由之前
傳回post等于在路由之後
傳回routing等于在之時
傳回error等于在發生錯誤時候
filterOrder()
filter順序
shouldFilter()
是否過濾
run()
filter時候自定義的一些方法
RequestContext cxk = RequestContext.getCurrentContext();
HttpServletRequest request = cxk.getRequest();
//todo
cxk.setSendZuulResponse(false);
cxk.setResponseStatusCode(511);
cxk.getResponse().getWriter().write();
@Component
public class FirstFilter extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext cxk=RequestContext.getCurrentContext();
HttpServletRequest request=cxk.getRequest();
String token=request.getSession().getId();
cxk.setSendZuulResponse(true);
cxk.setResponseStatusCode(123);
request.setAttribute("token",token);
return null;
}
}
config
建立一個項目config-server;提供配置的服務
1、添加依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
2、添加注解
@EnableConfigServer
3、添加配置
spring:
cloud:
config:
server:
git:
uri: https://gitlab.com/kgc-springcloud/app-springcloud.git
search-paths: clientconfig
username: 17366031***@163.com
password:
force-pull: true
label: master
建立一個項目config-client;提供配置的服務
1、添加依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2、添加配置
新的bootstrap.yml 檔案,看到這個檔案就要知道這是spring-cloud-config
spring:
cloud:
config:
uri: http://localhost:8888/
label: master
profile: dev
application:
name: app //這裡是配置檔案的名稱的字首