微服务springcloud项目的了解与实现

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);
    }

}

 

posted @ 2020-08-04 22:06  Dragon_xl  阅读(244)  评论(0)    收藏  举报