前言 

学知识最忌讳“东一榔头,西一棒子”,除非你有学霸的意志力,孜孜不倦的学习态度。学霸和学渣总是倍受关注,然而大多数人都是介于学霸与学渣之间。

有多少能坚持不懈地埋在书海里抗住寂寞呢?同样地也没有人真正的愿意荒废人生,飘渺度日。谁不想努力呢?

为什么用微服务?解耦!不要管什么多语言开发、独立部署、可拓展性、独立数据库、团队拆分敏捷开发,就两字:解耦!!!!!再问割JJ

举个例子?  缴费和积分作为例子,如果积分服务挂了,缴费可以正常用,因为他们部署在不同的主机上。

微服务概念?  微服务架构是一种架构模式,它单一应用程序划分成一组小的服务,每个服务是一个独立的进程,服务之间互相协调、互相配合。服务之间采用轻量级的通信机制相互协作(通常是基于HTTP协议的restful api)。

单体架构到微服务的演变过程:业务少---》单体架构美滋滋

--》业务增多应用性能差---》读写分离、加缓存、加负载均衡服务器、应用集群化部署

---》管理混乱,治理难度大,头疼 ----》考虑分布式系统,微服务架构。(后续不分先后)--》注册中心统一管理各个服务

---》配置太多了烦死了---》加个配置中心

---》部署那么多机器有些机器访问大吃不消,有些机器又长期空闲---》搞个负载均衡

----》服务跑着跑着发现有一个服务B主机挂了,服务A调用了B,导致A出现大量线程阻塞,最后A也挂了,最后就是大量微服务挂了“雪崩效应”-----》加个熔断器

----》什么阿猫阿狗都调我的服务,我不想让他们调,得加个权限控制和路由转发功能----》增加网关

---》今天被投诉了,有一个客户缴费了,一个星期过去了没有看到积分增加。原来是之前积分微服务挂了,缴费成功了积分却没涨。------》谈谈分布式事务解决方案(两阶段、TCC等)

---》生产出现一个问题,中间调用了N个微服务,不知道是哪个环节出问题,我还不知道具体的调用链路,查个鬼,怎么甩锅------》调用链路跟踪(Zipkin)

---》美滋滋,运行的稳稳地,突然领导说:你看下我们有多少个接口,调用量如何 ----》mmp....

微服务有哪些核心组件?  注册中心、负载均衡、服务熔断/降级、网关、配置中心、远程调用等。

微服务开发的方式主要有一下三种:
 1、dubbo+zookeeper   
 2、spring boot+spring cloud
 3、ServiceComb
dubbo :是一个RPC框架,底层是netty(netty是什么?是对NIO一种封装改进,简单来说是一种高性能网络通讯框架。什么是NIO?哥屋恩!),微服务间调用、负载均衡、服务注册。
zookeeper:服务注册中心
spring boot:spring全家桶的封装,不是新技术。
spring cloud:基于springboot一套微服务框架,一种解决方案。
servicecomb:也是apache开源框架。兼容springcloud的微服务框架,使用Saga提供一站式解决方案,服务部署治理监控。

微服务间的通信方式:REST协议(http-文本)、RPC(二进制)。

RPC:本质是将对象转为二进制,然后通过socket进行网络通信的过程。被调用方拿到二进制数据后,再转为java对象,调用具体的接口。Dubbo就是一个RPC框架,底层是Netty实现的。

Netty:  https://mp.csdn.net/editor/html/114745014

微服务架构三大难题? 不好拆分、分布式事务、单个故障引起上层大量线程阻塞。

部署容器对比
单体:tomcat、jettry等serlet容器
微服务:Docker容器

事务差异比对

单体:通过Transactional、数据库本身的事务来控制。
微服务:分布式事务,解决方案有二阶段提交、三阶段、TCC、MQ消息事务等。

springcloud 五大组件:注册中心eureka、负载均衡ribbon、服务熔断hystrix、配置中心springcloudconfig、网关zuul。其实还有远程调用feign。

开胃菜结束!

任何事情,如果太多人知道,那你就没有优势了。


微服务CAP理论:Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),不可能同时满足“一致性”、“可用性”、“分区容错性”。

注册中心的类型有AP和CP,AP优先保证可用性,CP优先保证一致性。AP代表:zookeeper。CP代表:springcloud的eureka,阿里的nacos既可以支持AP也支持CP 。

虽然现在很多用nacos替换eureka,

eureka分为客户端和服务端,一个eureka既可以是客户端也可以是服务端。Client在服务启动后每30s发送心跳,Server 每90s检查一次是否有接收到心跳。可惜的是eureka2.0之后就停止更新了。目前一般是由阿里的nacos替代。

什么是Eureka的自我保护模式

默认情况下,如果Eureka Service在一定时间内没有接收到某个微服务的心跳,Eureka Service会进入自我保护模式,在该模式下Eureka Service会保护服务注册表中的信息,不在删除注册表中的数据,当网络故障恢复后,Eureka Servic 节点会自动退出自我保护模式。

服务端会出现如下错误警告:

EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

微服务终极笔记:穿针引线“直取京都”,拒绝散兵游勇相关推荐

  1. 牌类游戏使用微服务重构笔记(八): 游戏网关服务器

    网关服务器 所谓网关,其实就是维持玩家客户端的连接,将玩家发的游戏请求转发到具体后端服务的服务器,具有以下几个功能点: 长期运行,必须具有较高的稳定性和性能 对外开放,即客户端需要知道网关的IP和端口 ...

  2. SpringCloudAlibaba系列微服务搭建笔记一_Nacos

    目录儿 二.SpringCloud技术栈 三.环境搭建 3.1 开发环境搭建 3.2 安装部署mysql 3.3 创建 SpringBoot 项目 3.3.1 简介 3.3.2 构建项目 3.3.3 ...

  3. 牌类游戏使用微服务重构笔记(四): micro框架使用经验

    项目依赖 推荐使用go module, 我选择go module的最主要原因是足够简单,可以脱离gopath,就跟写nodejs一样,随便在一个地方新建一个文件夹就可以撸代码了,clone下来的源码也 ...

  4. 8 位阿里大佬合著“Dubbo 微服务进阶笔记”

    前言 微服务是近几年流行起来的软件架构风格.回顾历史,从传统的单体应用架构,到面向服务架构 SOA,再到今天逐渐被大众接受的微服务架构 MSA,本质上来说,都是为了解决随着软件复杂度的上升,如何有效提 ...

  5. 8位阿里P8合著“Dubbo微服务进阶笔记”一经面世,Github上标星93K+

    前言 微服务是近几年流行起来的软件架构风格.回顾历史,从传统的单体应用架构,到面向服务架构SOA,再到今天逐渐被大众接受的微服务架构MSA,本质上来说,都是为了解决随着软件复杂度的上升,如何有效提升开 ...

  6. Java微服务学习笔记(一):微服务架构的概念理解

    Java微服务学习笔记 Tips:入门学习时粗略整理,仅供参考 (一):架构的基础理解 文章目录 Java微服务学习笔记 前言 一.微服务是什么? 二.常用开源微服务框架演化 1. Dubbo 2. ...

  7. 13 年 Java 老兵的微服务战地笔记 | 文末有1元福利

    * 文末有仅限 24 小时的 1 元福利,错过别怪我!!! 微服务在业内的实践已经从流行走向成熟,诸多公司(比如 Amazon.Netflix.蚂蚁金服.网易云音乐等)都已经迁移并采用了微服务架构.而 ...

  8. Spring Cloud Alibaba 微服务详细笔记

    文章目录 SpringCloud 一.微服务概述 1.1.什么是微服务? 1.2.为什么是微服务? 1.3.架构演变 1.4.微服务的解决方案 二.什么是SpringCloud 2.1.官方定义 2. ...

  9. 阿里微服务大牛奉命总结出500页Spring微服务架构笔记

    微服务是一种架构风格和模式:将复杂系统拆解为协同工作的小型服务,以此构建大型业务服务.微服务是自治.自包含且可独立部署的服务.当今世界上的许多企业将微服务作为默认的架构标准来构建面向服务的大型企业级应 ...

最新文章

  1. 动态网页项目(Dynamic Web Project)2.5和3.0版本的差异
  2. python执行提示包找不到的问题
  3. mysql的突然变成本地不能用密码,远程要用密码才能登录,这是神马情况???求解...
  4. Work Management Service application in SharePoint 2016
  5. [云炬创业基础笔记]第四章测试21
  6. 端云互联 3.0 击破云原生开发的痛点
  7. 吃冰淇淋更容易溺水?
  8. Extjs4.2——bbar的默认类型(xtype)
  9. Alley Bird 跳跳鸟源码
  10. 重庆高考成绩查询2021时间几号,2021重庆高考时间是几号
  11. 多质点列车动力学模型
  12. iPadmini能运行c语言吗,一个移动固态硬盘,可以给iPad Pro2020和iPad Mini用是什么体验?...
  13. ai智能文章生成器-ai论文写作
  14. AutoCAD 2007官方.NET教程(一)(C#版)
  15. SKU 和 SPU 有什么区别?
  16. Swift 调用C++代码
  17. 计算机学培训后的心得体会,计算机培训学习心得感想
  18. 7-12 求6+66+666+6666+66666。分数 10
  19. vb入门教程-第一章HELLO WORLD
  20. 艾永亮:这家视频平台,就靠打造超级产品,成为年轻人的最爱

热门文章

  1. lvgljs,用 javascript 来写 lvgl UI
  2. 现货伦敦金分析中如何应用支撑与压力位
  3. OpenGL 入门基础教程 —— 彩色立方体
  4. 巾帼绽芬芳 一起向未来(下篇)
  5. Week2 Teamework from Z.XML - 必应缤纷桌面助手 - 软件分析与用户需求调查
  6. Java设计模式(二)
  7. fifa足球世界服务器不稳定,FIFA足球世界卡顿原因 卡顿解决方法一览
  8. Ubuntu18.04 制作系统ISO镜像并物理机还原(Systemback)
  9. 关于架构的通俗的很受用的几句话
  10. stm32启动过程、cortex-m3架构、堆栈代码位置、编译汇编链接分析