1,docket是虚拟化容器技术,基于镜像,可以快速启动各种容器,每一种容器都是一种完整的运行环境,容器之间相互隔离,
可以使用各种mysql镜像,docket类似于ghost工具, dockethub 各种镜像,比如nginx,redis各种镜像
安装虚拟机 virtual box ,再用Vagrant
VirtualBox 是一款开源的虚拟机软件,和VMWare是同类型的软件,用于在当前的电脑上构建一台虚拟机,在这台虚拟机上可以安装系统和软件。
Vagrant用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统。
Vagrant可以基于 VirtualBox、VMware、KVM、Hyper-V 和 AWS 甚至是 Docker 等提供商来构建开发环境。它通过简化虚拟化的软件配置管理,来提高开发效率。
Vagrant 是用 Ruby 语言开发的,但它的生态系统支持使用其他几种语言进行开发。
简单来说 Vagrant 是对传统虚拟机的一层封装,能够让你更方便的使用虚拟开发环境。
docket发布的mysql镜像,mysql镜像就是一个小型的linux系统,里面有完整的linux文件
挂在mysql的配置文件,到linux外部,这样就不用每次都要进去修改了
项目搭建流程,1,docket配置mysql ,redis
2,配置maven 镜像什么的 ,配置git 地址用户名密码等
3,创建表,逆向工程生成增删改查代码
SpringCloud 的几大痛点
SpringCloud 部分组件停止维护和更新,给开发带来不便;
SpringCloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制 SpringCloud 配置复杂,难以上手,部分配置差别难以区分和合理应用
earak 停止维护,fign闭源 维护了一个openfign
SpringCloud Alibaba 的优势:
阿里使用过的组件经历了考验,性能强悍,设计合理,现在开源出来大家用
成套的产品搭配完善的可视化界面给开发运维带来极大的便利
搭建简单,学习曲线低。
结合 SpringCloud Alibaba 我们最终的技术搭配方案:
SpringCloud Alibaba - Nacos:注册中心(服务发现/注册)
SpringCloud Alibaba - Nacos:配置中心(动态配置管理)
SpringCloud - Ribbon:负载均衡
SpringCloud - Feign:声明式 HTTP 客户端(调用远程服务)
SpringCloud Alibaba - Sentinel:服务容错(限流、降级、熔断)
SpringCloud - Gateway:API 网关(webflux 编程模式)
SpringCloud - Sleuth:调用链监控
SpringCloud Alibaba - Seata:原 Fescar,即分布式事务解决方案
需要引入springCloudalibaba2.1版本
nacos 1.1版本
控制台
使用三板斧,
1,启动nacos
2,需要在各个服务的配置文件中,配置 nogos 注册中心地址ip和 本地serve rname
3,使用@EnableDiscoveryClient 开启服务注册发现功能
openfign远程调用
配置中心
1, 引入pom.xml 引入 Nacos Config Starter
2, 在应用的 /src/main/resources/bootstrap.properties 配 置文件中配置 Nacos Config 元数据
spring.application.name=服务名子
spring.cloud.nacos.config.server-addr=127.0.0.1:8848 主要配置应用名和配置中心地址ip
同时配置命令空间的唯一id,类似于uuid ,用来指定哪个服务,
配置组,区分哪个环境
3,在 nacos 中添加配置 在 nacos 中创建一个 应用名.properties 配置文件并编写配置 Nacos Config 数据结构 Nacos Config 主要通过 dataId 和 group 来唯一确定一条配置。 Nacos Client 从 Nacos Server 端获取数据时,调用的是此接口 ConfigService.getConf
4、、在应用中使用@Value 和@RefreshScope
几个细节:
1,命名空间,主要是做配置隔离,比如,开发环境,测试环境,生产环境,
也可以每个微服务创建一个命名空间,做微服务的隔离
2,配置集,所有的配置集合就是配置集
3, 配置集id , 类似文件名
4。配置分组 比如,双11的时候用这一组,618 用这一组,
最重要:命名空间区分服务,group区分环境, 比如dev ,prop ,测试,等
你也可以把你某个微服务的配置文件分个
如果某个服务分成多个配置文件,那就这么写
网关: 路由,断言 ,过滤,
过滤,请求之前和响应之后,你可以处理