SpringCloud学习笔记

微服务架构

  • 单体引用缺点:复杂性高、不坏不修、部署困难、扩展受限、阻碍创新
  • 微服务:每个服务运行在自己的进程中,一个服务只关注一个特定的功能,采用轻量级通信机制,自动部署机制独立部署,可用不用的开发语言和不同的存储技术

SpringCloud介绍

基于SpringBoot实现微服务架构的开发工具
特点:

  • 隐藏了组件的复杂性
  • 开箱即用,快速启动
  • 轻量级
  • 各个组件是解耦的,可以按需选型

使用SpringBoot实现微服务

SpringBoot使用

	// 1. http://localhost:8080/TestSSM/User/testQueryString?id=123
	@RequestMapping("/testQueryString")
	public String testQueryString(String id) {
		return id;
	}

	// 2. http://localhost:8080/TestSSM/User/testPathVariable/123
	@RequestMapping("/testPathVariable/{id}")
	public String testPathVariable(@PathVariable("id") String id) {
		return id;
	}

	// 3.参数是对象类型
	@RequestMapping(method = RequestMethod.POST, value = "/addUser")
	public User addUser(@RequestBody User user) {
		return user;
	}

	// 4.前后端参数名不一致
	// http://localhost:8080/TestSSM/User/testDiffParamName?user_name=ych
	@RequestMapping("/testDiffParamName")
	public String testDiffParamName(@RequestParam("user_name") String username) {
		return username;
	}

	@Autowired
	private RestTemplate restTemplate;

	// 5.测试RestTemplate
	@RequestMapping(value = "/testRestTemplate")
	public String testRestTemplate() {
		String str = restTemplate.getForObject("http://122.51.176.73/", String.class);
		return str;
	}

	// 6. 直接取配置文件
	@Value("${com.run.url}")
	public String url;

	@RequestMapping("/getUrl")
	public String getUrl() {
		return url;
	}

	// 7.通过@ConfigurationProperties映射配置文件
	// 略

SpringCloud快速入门

服务注册与发现Eureka

服务消费Ribbon(/ˈrɪbən/)、Feign

断路器(熔断降级)Hystrix

路由网关 Zuul

posted @ 2020-03-14 16:09  惬意的小屋  阅读(176)  评论(0编辑  收藏  举报