选择背景 首先是系统的选择,目前作为个人电脑的终端系统,绝大部分用户选择的系统是Windows或者是Mac。而Linux系统在日常生活中绝大部分是作为服务器系统使用的,因为它无UI界面,稳定,不用重启的等等特性决定了Linux系统不太能作为个人电脑的日常操作系统。 但是随着技术不断更新迭代,Linux桌面环境不断成熟,有着越来越多的桌面环境出现在大众的视野里,丰富多彩的插件和应用,帮助Linux走进了人们的生活和工作中。 这也导致了很多开发人员从传统的Windows,Mac开发环境转向了Linux系统。开源的系统,方便快捷的操作,成熟的生态,便利的命令行工具,使得开发人员的效率大幅度的提高,
面向对象 1. 什么是面向对象编程 (OOP)? 面向对象编程是一种程序设计范式,它将数据和对数据的操作封装在对象中,通过对象之间的交互来完成程序功能。 核心思想: 将现实世界的事物抽象为对象 对象包含属性(数据)和方法(行为) 通过对象间的协作完成任务 示例: 123// 买只猫,猫有抓老鼠的方法,对象本身具有的方法Cat cat = new Cat();cat.catchMouse(); // 调用对象的方法 2. 面向对象的三大基本特征 2.1 封装 (Encapsulation) 定义: 把数据和操作数据的方法包装起来,对外隐藏内部实现细节,只能通过已定义的接口访问。 实
Feign让方法调用更加解耦 使用feign步骤讲解 加入依赖 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 配置注解 1启动类增加@EnableFeignClients 增加一个接口 12订单服务增加接口,服务名称记得和nacos保持一样@Feign
注册中心Nacos介绍 官网:https://nacos.io/zh-cn/ Linux/Mac安装Nacos 解压安装包 进入bin目录 启动 sh startup.sh -m standalone 访问 localhost:8848/nacos 默认账号密码 nacos/nacos
什么是注册中心(服务治理) 服务注册:服务提供者provider,启动的时候向注册中心上报自己的网络信息 服务发现:服务消费者consumer, 核心:服务管理,是有个服务注册表,心跳机制动态维护,服务实例在启动时注册到服务注册表,并在关闭时注销。 为什么要用 微服务应用和机器越来越多,调用方需要知道接口的网络地址,如果靠配置文件的方式去控制网络地址,对于动态新增机器,维护带来很大问题 主流的注册中心:zookeeper、Eureka、consul、etcd、Nacos AlibabaCloud搭配最好的是Nacos,且服务的注册发现之外,还支持动态配置服务 参考图片(na
什么是负载均衡(Load Balance) 分布式系统中一个非常重要的概念,当访问的服务具有多个实例时,需要根据某种“均衡”的策略决定请求发往哪个节点,这就是所谓的负载均衡,原理是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,从而提高了数据的吞吐量. 软硬件角度负载均衡的种类 通过硬件来进行解决,常见的硬件有NetScaler、F5、Radware和Array等商用的负载均衡器,但比较昂贵的 2s. 通过软件来进行解决,常见的软件有LVS、Nginx等,它们是基于Linux系统并且开源的负载均衡策略 从端的角度负载均衡有两种 服务端负载均衡 客户端负载均衡 常见的负载
官网介绍 https://spring.io/projects/spring-cloud-alibaba#overview 为什么要选择AlibabaCloud , 和SpringCloud的区别 SpringCloud和AlibabaCloud组件存在很大交集,互相配合 SpringCloud很多组件是基于第三方整合,目前多个已经不更新了,比如zuul、eureka、hystrix等 AlibabaCloud 提供一站式微服务解决方法,已经和SpringCloud进行了整合,组件互相支持 AlibabaCloud全家桶介绍 https://github.com/alibaba/s
ServiceComb 华为内部的CSE(Cloud Service Engine)框架开源, 一个微服务的开源解决方案,社区相对于下面几个比较小 文档不多,通信领域比较强 dubbo zookeeper + dubbo + springmvc/springboot 官方地址:http://dubbo.apache.org/#!/?lang=zh-cn 配套 通信方式:rpc 注册中心:zookeper/redis/nacos 配置中心:diamond、nacos SpringCloud 全家桶+轻松嵌入第三方组件(Netflix 奈飞) 官网:https://spring.i
常见组件 网关 路由转发 + 过滤器 /api/v1/video/ 视频服务 /api/v1/order/ 订单服务 /api/v1/user/ 用户服务 服务发现注册 调用和被调用方的信息维护 配置中心 管理配置,动态更新 application.properties 链路追踪 分析调用链路耗时 例子:下单-》查询商品服务获取商品价格-》查询用户信息-》保存数据库 负载均衡器 分发流量到多个节点,降低压力 熔断 保护自己和被调用方 微服务核心组件图
单机架构 优点: 易于测试 便于集成 小型项目友好 缺点: 开发速度慢 启动时间长 依赖庞大 分布式架构 SOA :Service Oriented Architecture 面向服务的架构 其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能, 一个服务 通常以独立的形式存在与操作系统进程中, 各个服务之间 通过网络调用。 微服务:将一个大的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,各个服务之间 通过网络调用。 优点 易开发、理解和维护 独立的部署和启动 缺点 分布式系统-》分布式事务问题 需要管理多个服务-》服务治理