微服務springcloud專案的瞭解與實現
阿新 • • 發佈:2020-08-04
1、微服務
1.1、特點
①.單一職責
②.自治
1.2、元件
①.Eureka:服務治理元件,包含了服務註冊中心,服務註冊與發現機制的實現
②.Zuul:閘道器元件
③.Ribbon:負載均衡
④.Fergn:服務呼叫
⑤.Hystrix:容錯管理元件
2、Eureka元件實現
①、建立新的project,依賴選擇如下
②、pom.xml檔案中新增mybatis依賴
<dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency>
③、新建User實體類
④、新增UserMapper介面、UserService類和UserController類
UserMapper
@org.apache.ibatis.annotations.Mapper public interface UserMapper extends Mapper<User> { }
UserService
@Service public class UserService { @Autowired(required= false) private UserMapper userMapper; public User queryById(Long id){ return this.userMapper.selectByPrimaryKey(id); } }
UserController
@RestController @RequestMapping("user") public class UserController { @Autowired private UserService userService; @GetMapping("{id}")public User queryById(@PathVariable("id") Long id){ return this.userService.queryById(id); } }
⑤、配置application檔案,配置內容與上個專案相同
⑥、新建model:consumer,依賴選擇Spring Web
⑦、在ConsumerApplication檔案中填寫如下內容
@SpringBootApplication public class ConsumerApplication { //註冊RestTemplate @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } public static void main(String[] args) { SpringApplication.run(ConsumerApplication.class, args); } }
⑧、將application中埠改為80
⑨、新建UserController類與User實體類,User實體與上面的一樣
@Controller @RequestMapping("consumer/user") public class UserController { @Autowired private RestTemplate restTemplate; @GetMapping @ResponseBody public User queryById(@RequestParam("id") Long id){ User user = this.restTemplate.getForObject("http://localhost:8081/user/"+id,User.class); return user; } }
⑩、新建model:eureka,依賴選擇Eureka Service
⑪、配置eureka中的application檔案
server:
port: 10086
spring:
application:
name: eureka-server #應用名稱,會在Eureka中顯示
eureka:
client:
service-url: #eurekaserver的地址,現在是自己的地址,如果是叢集,需要加上其他server地址
defaultZone: http://localhost:${server.port}/eureka
⑫、在EurekaApplication中進行宣告
@SpringBootApplication @EnableEurekaServer //聲明當前springboot應用是一個eureka服務中心 public class EurekaApplication { public static void main(String[] args) { SpringApplication.run(EurekaApplication.class, args); } }