日结--只是自我总结,自己的理解。写的跟屎一样,当个笔记本用

一般项目的 ememem.

单体架构--耦合度高,但简单

分布式架构--耦合较低,但还可以细分,模块之间的交互和部署也比较麻烦

微服务架构---耦合度极低,但各个模块之间的交互,以及部署都比较麻烦

为了处理各个模块之间那些麻烦的东西,像SpringCloud,Dubbo,SpringCloudAlibaba微服务框架就应运而生。

各个微服务框架比较以及其所用技术栈

没什么用,不写了’

直奔主题

各个模块之间的远程调度

首先在配置restTemplate

  @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

@LoadBlanced是开启负载均衡的。

然后可以用

restTemplate.getForObject(url,User.class);
//url的另一个模块的的接口,User是请求的数据类型。
//发送get请求
restTemplate.postForObject(url,User.class) //发送poat请求。

反正就是用RestTemplate发。

下一个问题。

一个模块还可以分为为若干模块。哪怎么确定请求那个。

这就不得不引出Eureka

Eureka

模块二有好多个,模块一怎么知道请求哪一个??????????

Eureka的作用就体现出来了

下面来记录如何使用Eureka

A,配置Eureka服务端

1,引入eureka的服务端依赖(Eureka也算一个模块)

        <!--eureka服务端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

2,在Eureka模块的springBoot启动类上加上注解

@EnableEurekaServer

3,在配置文件里进行配置

spring:
  application:
    name: eurekaserver # eureka的服务名称
eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka

B,配置客户端

1,在客户端模块中加如客户端依赖(客户端就是上面说是模块一,二)

        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>-->

2,在配置文件中添加(就是在yaml)

spring:
​  application:
    name: orderservice
#eureka:
#  client:
#    service-url:  # eureka的地址信息
#      defaultZone: http://127.0.0.1:10086/eureka

​

在另一个模块中也添加以下



eureka:
  client:
    service-url:  # eureka的地址信息
      defaultZone: http://127.0.0.1:10086/eureka
spring:
  application:
    name: userservice

完成操作后,在启动模块时。就会注册到Eureka

哪怎么访问呢

就将

restTemplate.getForObject(url,User.class);
//url的另一个模块的的接口,User是请求的数据类型。
//发送get请求
restTemplate.postForObject(url,User.class) //发送poat请求。

 中的

url = http://localhost:8081/user //原来的
url = http://userservice/user   //现在的 吧ip换成请求模块的名称

nacos注册中心

nacos下载

下载地址:GitHub - alibaba/nacos: an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.

找到自己要下的版本,然后解压到一个目录下。就可以使用了。

启动nacos

在.../nacos/bin/目录下有startup.cmd 。点击它就启动了。启动后去下图:

红箭头指向的网址为nacos图形网页端。

接下来,在父项目目中引入spring-clond-alibaba的管理依赖。

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

在对应的子模块中引入nacos依赖,并在.ymal文件中配置相关信息。

        <!-- nacos客户端依赖包 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>
spring:
 
  cloud:
      nacos:
        service-addr: localhost:8848

启动服务,然后就能在nacos中看到相关服务信息。

nacos分级存储模型

spring:
  cloud:
      nacos:
        service-addr: localhost:8848
        discovery:
          cluster-name: HZ
        server-addr: 

// 修改负载均衡规则,使同一个集群中的服务模块优先被访问
userservice: # 要配置的微服务名称。
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

discovery.cluster-name:就是配置级群的。并修改负载均衡规则。

通过改变服务的权重,可以改变服务被访问到的概率。

0~1,越大被访问的几率就越大。在nacos网页端就能该。

nacos环境隔离。

Feign——http客户端

入门

1,引入依赖。

2,在启动类添加注解。

3,编写Feign客户端。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值