学习笔记3—分布式组件

一、SpringCloud的几大痛点:
SpringCloud部分组件停止维护和更新,给开发带来不便;
SpringCloud部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制
SpringCloud配置复杂,难以上手,部分配置差别难以区分和合理应用
SpringCloud Alibaba的优势: 
阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来大家用,成套的产品搭配完善的可视化界面给开发运维带来极大的便利,搭建简单,学习曲线低。
结合SpringCloud Alibaba我们最终的技术搭配方案:
SpringCloud Alibaba - Nacos:注册中心(服务发现/注册)
SpringCloud Alibaba - Nacos:配置中心(动态配置管理)
SpringCloud- Ribbon:负载均衡
SpringCloud- Feign:声明式hTTP客户端(调用远程服务)
SpringCloud Alibaba- Sentinel:服务容错(限流、降级、熔断)
SpringCloud- Gateway: API 网关(webflux 编程模式)
SpringCloud- Sleuth:调用链监控
SpringCloud Alibaba-Seata:原Fescar, 即分布式事务解决方案。

二、如何使用nacos注册中心:

官方文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

引入依赖:

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

注册中心:

 <!--        服务注册/发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

nacos文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-config-example/readme-zh.md

  1. 首先,修改 pom.xml 文件,引入 Nacos Config Starter。放在common中

     <dependency>
         <groupId>com.alibaba.cloud</groupId>
         <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
     </dependency>
    
  2. 在配置文件中配置,往下看

先把Nacos Server 启动 并添加配置

下载nacos server   1.1.3

注意!启动这里有坑,如果启动startup闪退的话,检查jdk环境变量是否配置好,然后检查用户变量里是否有JAVA_HOME

访问:127.0.0.1:8848/nacos     

登录账号密码默认:nacos

接上边:在服务中心启动类上添加注解    @EnableDiscoveryClient

 配置文件:

 cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: xuanyuan-member

然后在服务列表就可以看到了:

 

三、如何使用OpenFeign测试 服务之间的远程调用:

Feign声明式远程调用
1、简介
Feign是一个声明式的HTTP客户端,它的目的就是让远程调用更加简单。Feign提供了HTTP请求的模板,通过编写简单的接口和插入注解,就可以定义好HTTP请求的参数、格式、地址等信息。
Feign整合了Ribbon (负载均衡)和Hystrix(服务熔断),可以让我们不再需要显式地使用这两个组件。
SpringCloudFeign在NetflixFeign的基础上扩展了对SpringMVC注解的支持,在其实现下,我们只需创建一一个接口并用注解的方式来配置它,即可完成对服务提供方的接口绑定。简化了SpringCloudRibbon自行封装服务调用客户端的开发量。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章