• spring cloud


    spring cloud简介

    Spring Cloud是一个分布式框架,Spring Cloud是建立在Spring Boot上面的。


    spring cloud组件

    Eureka   注册中心 [juˈriːkə]
    Feign     调用 [feɪn]
    Hystrix   容错 [hɪst'rɪks]
    Ribbon   负载远射
    Zuul     网关
    Config    
    Sleuth


    创建Eureka注册中心

    1、IDEA:new-->project-->Spring Initializr-->输入项目名-->Spring Cloud Discovery-->Eureka Server
    Discovery [dɪˈskʌvəri] 发现
    2、在启动类添加注解@EnableEurekaServer
    3、配置application.properties

    # 自己的端口号
    server.port=9990
    # 自己是注册中心,发布自己的地址,让别人找到自己
    # 集群配置,http://127.0.0.1:9991/eureka,http://127.0.0.1:9992/eureka
    eureka.client.service-url.defaultZone=http://127.0.0.1:9990/eureka/
    # 是否把当前项目注册到注册中心,注册中心客户端项目设置为true,此项目是注册中心服务端
    eureka.client.register-with-eureka=false
    # 默认是true,注册中心集群同步数据,这里使用单机方式,所以关闭
    eureka.client.fetch-registry=false
    # 安全配置
    spring.security.user.name=root
    spring.security.user.password=root
    View Code

    4、springboot引入spring-boot-starter-security做安全校验后,自动开启CSRF安全认证,任何一次服务请求默认都需要CSRF 的token,而Eureka-client不会生成该token,故启动时会报如上错误。

    在启动类里添加如下内部类代码:

    @EnableWebSecurity
    static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.csrf().ignoringAntMatchers("/eureka/**");
            super.configure(http);
        }
    }
    View Code

    5、启动,测试

    这个地址 http://127.0.0.1:9990/eureka 是给注册中心客户端使用的
    浏览器直接访问http://127.0.0.1:9990


    创建服务提供者

    1、IDEA:new-->project-->Spring Initializr-->输入项目名-->Spring Cloud Discovery-->Eureka Discovery Client
    2、在启动类添加注解@EnableEurekaClient
    3、配置application.properties

    # 自己的端口
    server.port=8800
    # 把自己注册到注册中心后,别人用这个名字引用我
    spring.application.name=user-provider
    # 注册到哪里,即注册中心地址
    eureka.client.service-url.defaultZone=http://root:root@127.0.0.1:9990/eureka/
    logging.level.root=trace
    View Code

    4、启动,测试

    浏览器访问http://127.0.0.1:9990以查看服务提供者


    创建 config server

    1、IDEA:new-->project-->Spring Initializr-->输入项目名-->Spring Cloud Config-->Config Server
    2、在启动类添加注解@EnableEurekaClient
    3、配置application.yml

    # 自己的端口
    server.port=8800
    # 把自己注册到注册中心后,别人用这个名字引用我
    spring.application.name=user-provider
    # 注册到哪里,即注册中心地址
    eureka.client.service-url.defaultZone=http://root:root@127.0.0.1:9990/eureka/
    logging.level.root=trace
    View Code

    4、启动,测试

    浏览器访问http://127.0.0.1:9990以查看服务提供者


    Spring Cloud Sleuth

    Sleuth,提供服务链路跟踪的功能。在微服务中,通常根据业务分服务,前端发起一个请求,后端可能跨越几个服务调用,如果系统越来越庞大,服务之间的调用与被调用关系就会变得很复杂,因此需要一个服务跟踪组件。
    Sleuth整合了Zipkin以实现服务跟踪。

    实现方式一:
    1、新建zipkin server
    2、提供者、消费者和zipkin server连接,zipkin server收集跟踪数据。
    实现方式二:
    1、新建zipkin server
    2、提供者、消费者发送数据到消息中间件(RabbitMQ),zipkin server再从消息中间件中获取数据。

    zipkin server数据持久化
    上面的zipkin server,数据只保存在内存中。
    持久化,可以使用Mysql、Elasticsearch


    ELK + Kafka 微服务日志收集

    日志分散储存在不同的设备上,如果有数十上百台服务器,依次登录每台机器查阅日志,繁琐、效率低。
    日志集中化管理,比如可以使用开源的syslog,将所有服务器上的日志收集汇总。然后,使用grep、awk、wc等Linux命令进行统计和检索。但是对于要求更高的查询、排序、统计,以及庞大的机器数量,难免力不从心。

    开源实时日志分析——ELK平台应运而生。
    ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成。
    Logstash是个开源工具,可以对分布式日志收集存储,供以后使用搜索。
    Elasticsearch是个开源分布式搜索引擎,特点:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
    Kibana也是个开源的工具,为 Logstash 和 ElasticSearch 提供友好的 Web 界面。

    应用 --> Kafka --> logstash --> ElasticSearch -- > Kibana。
    应用添加kafka maven依赖,application.yum配置kafka,使用kafkaTemplate发送消息

    logstash
    logstash.conf定义input、output规则。从kafka接收消息,输出到Elasticsearch

  • 相关阅读:
    android bluetooth 蓝牙4.0 +HC-08模块
    android 调用默认浏览器 打开指定网页
    checkSelfPermission 找不到 Android 动态权限问题
    C# 使用 USB转串 接收数据 问题
    Mysql 保留最新的10条数据
    Android Fragment 开发(一)
    python IP地址转16进制
    Android Socket 遇到的Soure Not Find 错误
    Linux 修改时区 不用重启
    XML Publisher 并发程序由于 输出提交处理程序提交失败
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/12975149.html
Copyright © 2020-2023  润新知