中软国际实训日记第十三天-8.3

目录

1.微服务

2.eureka

3.privode

4.consume

5.看板娘

正文

1.微服务

1.1 第一代服务框架
代表:Dubbo(Java)、Orleans(.Net)等
特点:和语言绑定紧密

1.2 第二代服务框架
代表:Spring Cloud等
现状:适合混合式开发(例如借助Steeltoe OSS可以让ASP.Net Core与Spring Cloud集成),正值当年

1.3 第三代服务框架
代表:Service Mesh(服务网格) => 例如Service Fabric、lstio、Linkerd、Conduit等
现状:在快速发展中,更新迭代比较快

  首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解决方案,而是在Spring Boot基础之上构建的,用于快速构建分布式系统的通用模式的工具集。
  其次,使用Spring Cloud开发的应用程序非常适合在Docker和PaaS(比如Pivotal Cloud Foundry)上部署,所以又叫做云原生应用(Cloud Native Application)。云原生可以简单地理解为面向云环境的软件架构。
  总结 :Spring Cloud是一个基于Spring Boot实现的云原生应用开发工具,它为基于JVM的云原生应用开发中涉及的配置管理、服务发现、熔断器、智能路由、微代理、控制总线、分布式会话和集群状态管理等操作提供了一种简单的开发方式。
  Spring Cloud具有如下特点:
  约定大于配置
  适用于各种环境
  隐藏了组件的复杂性,并提供声明式、无XML式的配置方式
  开箱即用,快速启动
  组件丰富,功能齐全

2.eureka

eureka负责注册provider和consumer的服务信息
ZrEurekaApplication.class


@SpringBootApplication
@EnableEurekaServer
public class ZrEurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(ZrEurekaApplication.class, args);
    }

}

application.yml

server:
  port: 10086
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka
spring:
  application:
    name: zr-eureka

3.privode

provider负责与数据库进行交互,实现数据持久化,并给consumer提供服务
UserController.class


@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    @ResponseBody
    @RequestMapping("{id}")
    public User findUser(@PathVariable("id") Long id){
        User user = userService.findUserById(id);
        return user;
    }
}

中软国际实训日记第十三天-8.3_第1张图片

4.consume

consumer与前端交互,通过与Eureka同源的feign组件调用provider提供的服务实现业务逻辑,给前端响应
UserController.class

@RestController
@RequestMapping("consumer/user")
public class UserController {

/*    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private DiscoveryClient discoveryClient;*/
    
    @Autowired
    private UserClient userClient;

    @RequestMapping
    public User queryById(@RequestParam("id") Long id){
        //http://localhost:8081/user/1
       // User user = restTemplate.getForObject("http://localhost:8081/user/" + id, User.class);
    /*    List instances = discoveryClient.getInstances("ZR-PROVIDER");
        ServiceInstance instance = instances.get(0);

        String url="http://"+instance.getHost()+":"+instance.getPort()+"/user/"+id;

        User user = restTemplate.getForObject(url, User.class);*/

        User user=userClient.findUser(id);

        return user;
    }
}

中软国际实训日记第十三天-8.3_第2张图片

5.看板娘

js代码




css代码

 

效果(右下角)
中软国际实训日记第十三天-8.3_第3张图片

你可能感兴趣的:(实习日记)