sentinel服務熔斷環境搭建
阿新 • • 發佈:2022-03-15
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> <version>2.2.5.RELEASE</version> </dependency> <dependency> <groupId>com.msb</groupId> <artifactId>springcloud-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
server: port:8084 spring: cloud: sentinel: transport: dashboard: localhost:8080 port: 8719 nacos: discovery: server-addr: localhost:8848 application: name: nacos-customer service-url: nacos-user-service: http://nacos-provider
@RestController public class DemoController { @Autowired RestTemplate restTemplate; @Value("${service-url.nacos-user-service}") private String SERVICE_URL; @GetMapping("/customer/fallBack/{id}") public JsonResult fallBack(@PathVariable Long id){ System.out.println(id); //通過ribbon發起遠端呼叫,訪問9003,9004 JsonResult jsonResult=restTemplate.getForObject(SERVICE_URL+"/info/"+id,JsonResult.class); return jsonResult; } }
@LoadBalanced 實現ribbon的負載均衡
conmm裡面的實體類
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
provider環境搭建
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>com.msb</groupId> <artifactId>springcloud-commons</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
@RestController public class DateController { @Value("${server.port}") private String port; //模仿資料庫 public static HashMap<Long,String> hashMap=new HashMap<>(); static { hashMap.put(1l,"滑鼠"); hashMap.put(2l,"鍵盤"); hashMap.put(3l,"顯示器"); hashMap.put(4l,"音箱"); } @GetMapping("/info/{id}") public JsonResult<String> mysql(@PathVariable("id") Long id){ JsonResult<String> result = new JsonResult<>(200, "serverPort:"+port+ hashMap.get(id)); System.out.println(result); return result; } }
# 應用名稱 spring: application: name: nacos-provider cloud: nacos: discovery: server-addr: localhost:8848 server: port: 9003 management: endpoints: web: exposure: include: '*'
9003和9004配置相同,只是埠不同