项目笔记8:微服务

系统管理员 2022-11-16 04:56 219阅读 0赞

1)微服务是架构风格

2)把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程

目前微服务的开发框架,最常用的有以下四个:

Spring Cloud:http://projects.spring.io/spring-cloud(现在非常流行的微服务架构)

Dubbo:http://dubbo.io

Dropwizard:http://www.dropwizard.io (关注单个微服务的开发)

Consul、etcd&etc.(微服务的模块)

前两个最常用

springCloud:

1)springcloud并不是一种技术,而是很多技术的总称,很多技术集合

2)springcloud里面有很多框架(技术),使用springcloud里面这些框架实现微服务操作

3)使用springcloud,需要依赖技术springboot

springcloud和springboot的关系:

springboot是用来快速配置spring的,springcloud是一系列框架总称,使用springCloud需要基于springBoot快速构建

Spring Cloud相关组件:

服务发现——Netflix Eureka (Nacos)

服务调用——Netflix Feign

熔断器——Netflix Hystrix

服务网关——Spring Cloud GateWay

分布式配置——Spring Cloud Config (Nacos)

消息总线 —— Spring Cloud Bus (Nacos)

Nacos流程:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NreV9yYWJiaXQ5NA_size_16_color_FFFFFF_t_70

Nacos安装与注册过程:

1.下载nacos,并解压即可

下载地址:https://github.com/alibaba/nacos/releases

2、mac启动关闭方法:

启动命令:sh startup.sh -m standalone

访问:http://localhost:8848/nacos

用户名密码:nacos/nacos

关闭:

sh shutdown.sh

如果仍然可以访问:

//查询8848端口的进程,获取到进程id,例如是45025

lsof -i:8848

//杀死45025进程

kill -9 45025

3、服务注册

1)在pom文件中引入依赖

  1. <!--服务注册-->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  5. </dependency>

2)在要注册的服务的配置文件中(application.properties)配置Nacos地址

  1. spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3)在启动类添加注解

  1. @SpringBootApplication
  2. @EnableDiscoveryClient //nacos注册
  3. @ComponentScan(basePackages = {"com.atguigu"})
  4. public class EduApplication {

4)在Nacos的网站上,服务管理-服务列表就可以看到注册的服务

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NreV9yYWJiaXQ5NA_size_16_color_FFFFFF_t_70 1

4、服务调用:

前提:把互相调用的服务在Nacos进行注册

1)pom文件中引入依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-openfeign</artifactId>
  4. </dependency>

2)在调用端服务启动类添加注解

  1. @SpringBootApplication
  2. @EnableDiscoveryClient //nacos注册
  3. @EnableFeignClients
  4. @ComponentScan(basePackages = {"com.atguigu"})
  5. public class EduApplication {

3)在调用端创建interface,使用注解指定调用服务名称,定义调用的方法路径

  1. @FeignClient(name = "service-vod") //调用的服务名称
  2. @Component
  3. public interface VodClient {
  4. //定义调用的方法路径
  5. //根据视频id删除阿里云视频
  6. //@PathVariable注解一定要指定参数名称,否则出错
  7. @DeleteMapping("/eduvod/video/removeAlyVideo/{id}")
  8. public R removeAlyVideo(@PathVariable("id") String id);

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NreV9yYWJiaXQ5NA_size_16_color_FFFFFF_t_70 2

发表评论

表情:
评论列表 (有 0 条评论,219人围观)

还没有评论,来说两句吧...

相关阅读

    相关 服务设计原则--笔记

    微服务设计原则–笔记 单一职责原则 单一职责原则指的是一个单元(类、方法或者服务等)只应关注系统功能中单独、有界限的一部分。单一职责原则可以帮助我们优雅的开发、敏捷

    相关 项目笔记8服务

    1)微服务是架构风格 2)把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程 目前微服务的开发框架,最常用的有以下四个: Spring Clou

    相关 打包部署服务项目

    随着 Spring Boot、Spring Cloud 的流行,越来越多的公司和企业开始使用微服务分布式架构,大家也都在学习相关知识;在自己做项目的时候,面对庞大的项目文件和繁

    相关 服务设计读书笔记

    微服务架构的优势: 1、较小的粒度 2、在解决问题的方法上能够给予更多的选择 相比动态库更新,相关的依赖都要更新是一个很大的优点。 3、微服务定义为可以在2周之内改写一

    相关 服务笔记

    [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 什么是组件? 一个组件就是可以被独立替换和升级的软件单