微服务综合

微服务综合

微服务是为了解耦
业务领域定义了边界

系统架构需要遵循三个标准

  • 提高敏捷性:及时响应业务需求,促进企业发展
  • 提升用户体验:提升用户体验,减少用户流失
  • 降低成本:降低增加产品、客户或业务方案的成本

cap

c 一致性
a 可用性
p 分区容错性

微服务需要解决的问题

  • 客户端如何访问这些服务
    • api网关
  • 每个服务之间如何通信
    • 同步 对内 RPC 对外 REST
      • http -> 跨防火墙
      • rpc -> 传输效率高
    • 异步
      • 消息队列
  • 如此多的服务如何治理
    • 服务注册与发现 (服务注册中心) 水平扩展实现
  • 服务挂了如何解决
    • 网络是不可靠的
      • 重试机制
      • 限流
      • 熔断机制
      • 负载均衡
      • 降级 (本地缓存)

微服务设计模式

  • 聚合器
  • 代理
  • 链式
  • 分支
  • 数据共享
  • 异步消息

什么是bean

pojo 原生java对象
bean 有业务的叫bean

响应式

异步非阻塞
全程异步化

http 无状态

session 就是 cookie
前端 -> 服务器
请求 -> 响应

ajax 轮询
tcp 建立长连接
WebSocket 长连接
响应式变成

WebFlux 基于 Netty 实现异步响应式编程
观察者模式

spring boot 优缺点

优点

  • 快速构建项目
  • 对主流开发框架的无配置集成
  • 项目可独立运行,无需外部依赖serclet容器
  • 提供运行时的应用监控
  • 极大的提高了开发、部署效率
  • 与云计算的天然集成
  • 开箱即用

缺点

  • 版本迭代速度快,一些模块改动很大
  • 由于自己不做配置,报错难定位

Thymeleaf

Thymeleaf 是 互联网项目进化的一个中间产物

动态 动静分离 前后分离
jsp Thymeleaf vue.js、reast.js等

Hikari

快速、简单、可靠
字节码简洁
优化代理和拦截器
自定义数组类型 代替 ArrayList
自定义集合类型
其他针对 BoneCP 缺陷的优化

Spring Cloud Alibaba

主要功能

  • 服务限流降级
  • 服务注册与发现
  • 分布式配置管理
  • 消息驱动能力
  • 阿里云对象存储
  • 分布式任务调度

组件

  • sentinel 把流量最为切入点 从流量控制 熔断降级 系统负载保护等多个维度保护服务的稳定性
  • nacos 一个更易构建云原生应用的动态服务发现、配置管理和服务管理的平台
  • RocketMQ 一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
  • Dubbo 一款高性能的Java RPC框架
  • Seata 一个易于使用的高性能微服务分布式事务解决方案
  • Alibaba Cloude ACM 一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品
  • Alibaba Cloud OSS 阿里云对象存储服务
  • Alibaba Cloud SchedulerX 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务
  • Alibaba Cloud SMS 覆盖全球的短信服务、友好、高效、智能的互联网化通讯能力

元数据

描述数据的数据

nacos

nacos 可以使用docker版本,方便我们快速部署

clone项目

git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker

单机模式启动

# standalone-mysql.yaml 可能有 standalone-mysql-5.7.yaml 等
# docker-compose 默认是找寻 docker-compose.yml的,我们需要使用 -f 来选择自定义的配置文件 -d 后台运行
docker-compose -f example/standalone-mysql.yaml up -d

查看日志

docker-compose -f example/standalone-mysql.yaml logs -f

nacos控制台

#默认是8848端口
http://ip:8848/nacos
#账号密码都是 nacos

Nacos Config 远程

可以多环境配置

http://ip:8848 的nacos中新建一个配置

image-20200229192816559
spring:
  application:
    # 服务名
    name: service-consumer
  cloud:
    nacos:
      #服务注册中心
      discovery:
        server-addr: ip:8848
server:
  # 服务端口
  port: 8080
management:
  # 端点检查(健康检查)
  endpoints:
    web:
      exposure:
        include: "*"
myValue: "造梦弥豆子"

需要在 pom.xml 引入Nacos Config Starter

需要使用2.1的版本,2.2中暂无 spring.cloud.nacos.config. 相关配置

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  <version>2.1.0.RELEASE</version>
</dependency>

bootstrap.properties 配置

spring.application.name=service-consumer-config
spring.cloud.nacos.config.server-addr=ip:8848
spring.cloud.nacos.config.file-extension=yaml

注解

@EnableDiscoveryClient spring cloud中 需要在 Application 来启动服务发现

@EnabelFeignClients 开启feign支持

feign 配置

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
  <version>2.2.1.RELEASE</version>
</dependency>

@RefreshScope 使用远程配置文件

Spring 配置文件加载优先级

Bootstrap.properties -> bootstrap.yml -> application.properties -> application .yml

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容