微服务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); } }

浙公网安备 33010602011771号