微服务SpringBoot

微服务架构概念

微服务与SOA的区别

SpringBoot

约定优于配置理念下的一个产物。
1、只要依赖的spring-boot-starter-web的jar,就会自动内置一个tomcat容器。(Tomcat也可以替换成其他web容器)
SpringBoot默认支持4种web容器。
在这里插入图片描述
Tomcat、Jetty、Undertow是基于Servlet,
Reactor基于Netty。
2、项目结构
默认提供了配置文件application.properties
3、starter启动依赖 - 如果是一个webstarter ,默认认为你是去构建一个spring mvc的应用.

SpringBoot应用

SpringBoot和微服务

SpringBoot核心特性及设计思想

核心特性:
1、EnableAutoConfiguration 自动装配
2、Starter 启动依赖 依赖于自动装配的技术
3、Actuator 监控 , 提供了一些endpoint ,可以http、jmx形式去进行访问, health信息。 metrics 信 息、 。。。
4、Spring Boot CLI(命令行操作的功能, groovy脚本)
客户端可以通过groovy脚本快速构建一个SpringBoot应用。

Spring 注解驱动的发展过程

Spring 注解驱动的发展促进了SpringBoot的诞生。

Spring 的动态Bean的装载

ImportSelector: DeferredImportSelector
Registator : ImportBeanDefinitionRegistrar
来实现自动装配扫描配置。

SpringBoot设计思想

true可以阻断maven传递依赖。

SpringBoot Starter组件

Actuator(监控)

springboot监控端点链接

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

健康检测

默认请求localhost:8080/actuator/health,会返回
{
status:“UP”
}

Metrics(非常有用)

默认请求localhost:8080/actuator/metrics

JVM(垃圾收集器 / 内存/堆)
系统(运行时间、平均负载、处理器的信息)
线程池信息
tomcat会话信息
Pheuthous / Grafana(图标展示)

Actuator有两种形态的监控

http(web)
jmx

JMX(Java Management Extensions)

JMX全称是Java Management Extensions。 Java 管理扩展。 它提供了对Java应用程序和JVM的监控和管理功能。通过JMX,我们可以监控

  1. 服务器中的各种资源的使用情况,CPU、内存
  2. JVM内存的使用情况
  3. JVM线程使用情况

SpringBoot的信息 可以发布到 Prometheus+Grafana

Prometheus普罗米修斯

开源的监控系统 。
数据采集 : http://localhost:8080/actuator/prometheus time-series 存储metrics
可视化 : http://locahost:9090

安装Prometheus

1、下载Prometheus
2、tar -zxvf prometheus-2.19.1.linux-amd64
3、修改prometheus.ym,增加需要监控的应用节点。

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries
scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']
  - job_name: 'spring-actuator'
metrics_path: '/actuator/prometheus' scrape_interval: 5s
static_configs:
- targets: ['192.168.8.174:8080'] #需要监控的应用节点

job_name:任务名称
metrics_path: 指标路径 targets:实例地址/项目地址,可配置多个 scrape_interval: 多久采集一次 scrape_timeout: 采集超时时间

执行 ./prometheus --config.file=prometheus.yml 启动prometheus应用,访问:http://HOS T_IP:9090

Spring Boot集成

 <dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

一旦你增加上述的依赖,Spring Boot会自动配置一个 PrometheusMeterRegistry 和 CollectorRegistry 来收集和输出格式化的metrics数据,使得Prometheus服务器可以爬取。
所有应用的metrics数据是根据一个叫 http://localhost:8762/actuator/prometheus 的endpoint 来设置是否可用。

 prometheus: {
  href: "http://localhost:8762/actuator/prometheus",
  templated: false
}

Prometheus服务器可以周期性的爬取这个endpoint来获取metrics数据。

安装Grafana

下载Grafana

wget https://dl.grafana.com/oss/release/grafana-7.0.3-1.x86_64.rpm
sudo yum install grafana-7.0.3-1.x86_64.rpm

启动Grafana, service grafana-server start
访问Grafana , http://localhost:3000 , 默认的帐号密码 admin/admin

Grafana的配置

菜单选择 Configuration -> Data Source -> Add Data Source
配置Prometheus作为数据源

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值