Spring Initializr加载失败
前言
本来是看下SpringBoot几个基本组件引入的依赖,使用Idea的Spring Initializr进行初始化项目,但从他这个默认的地址去拉取父项目会有网络问题
解决方式最好就是用自定义地址,改成国内镜像地址,这里用阿里的:https://start.aliyun.com/ , 改完之后就比较快了
Docker基础
一、Docker简介
1.1 虚拟化技术虚拟化技术是一种计算机资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来。虚拟化技术打破了计算机实体结构间的,不可切割的障碍。使用户可以比原本的组态更好的方式,来应用这些资源。
虚拟化技术主要作用:
高性能的物理硬件产能过剩和老的旧的硬件产能过低的重组重用,透明化底层物理硬件
软件跨环境迁移问题(代码的水土不服)
在一台主机上实现多个操作系统,关键技术就是硬件的虚拟化。
1.2 什么是Docker首先,我们先来看几个问题:
1.合作开发的时候,在本机可以跑,别人的电脑跑不起来
这里我们拿Java Web应用程序举例,我们一个Java Web应用程序涉及很多东西,比如JDK、tomcat、spring等等。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker则将程序直接打包成镜像,直接运行在容器中即可。
2.服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了
这种也是一种比较常见的情况,如果你的程序重要性不是特别高的话,公 ...
Drone+Github搭建自动化流水线
一、前言
最近开始写一个自用网盘的小项目,准备会一直去做维护更新,正好去了解下这个做CI/CD的整个流程,随便记录下第一次搭建过程
二、查看官网第一步的话还是先看看Drone的官方文档,地址:https://docs.drone.io/
在上面看的到有结合Github的安装向导,打开就可以按照上面进行。
三、工具准备首先是需要安装docker,我这里会使用docker-compose进行编排,所以需要安装docker-compose
我这边环境是CentOS7.6
3.1 准备docker12# 查看电脑上已安装的dockeryum list installed | grep docker
我这边已经安装了,没安装使用下面命令进行安装
1234# 安装yum -y install docker# 查看版本docker -v
其他关于docker的了解,可以看这篇 https://yournotes.cn/2021/08/01/Docker%E5%9F%BA%E7%A1%80/
3.2 准备docker-compose这里只介绍一个安装方式,也是比较方便快捷的 ...
Spring Cloud微服务详解
超长警告!!!善用目录!!!
[TOC]
一、微服务架构1.1 互联网应用架构演进随着互联⽹的发展,⽤户群体逐渐扩大,⽹站的流量成倍增⻓,常规的单体架构已⽆法满⾜请求压⼒和业务的快速迭代,架构的变化势在必⾏。下⾯我们就以拉勾网的架构演进为例,从最开始的单体架构分析,⼀步步的到现在的微服务架构。
淘宝:LAMP,Linux、Apache、MySQL、PHP
1.1.1 单体应用架构在诞⽣之初,拉勾的⽤户量、数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架构既简单实 ⽤、便于维护,成本⼜低,成为了那个时代的主流架构⽅式。
优点:
高效开发:项⽬前期开发节奏快,团队成员少的时候能够快速迭代
架构简单:MVC架构,只需要借助IDE开发、调试即可
易于测试:只需要通过单元测试或者浏览器完成
易于部署:打包成单⼀可执⾏的jar或者打成war包放到容器内启动
单体架构的应用比较容易部署、测试, 在项目的初期,单体应用可以很好地运行。然而,随着需求的不断增加, 越来越多的人加入开发团队,代码库也在飞速 ...
LeetCode初级算法之数学:204.计数质数
题目信息
题目地址:https://leetcode-cn.com/problems/count-primes/
统计所有小于非负整数 n 的质数的数量。
示例1:
123输入:n = 10输出:4解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。
示例2:
12输入:n = 0输出:0
示例3:
12输入:n = 1输出:0
解法一:暴力枚举依题意需要统计0至n当中质数的个数,自然的就想的到去遍历0至n的每个数字,再判段每个数字是否是质数,如果是计数加一如果不是则不变,最终返回计数结果。
对于判断是否是质数,我们都知道是有且只能被自己与1整除的数是质数(1不算),那么判断7是不是质数需要判断它能否被2至6里面的数整除么,其实不需要因为一个数不可能整除大于自己一半的数。也就是说判断数字number是否为质数看看2到number/2之间的整数能不能进行整除即可
了解之后我们先定义一个判断是否是质数的judge方法:
1234567public boolean judge(int number){ // 遍历2到number/2之间的 ...
SpringBoot详解
超长警告!!!善用目录!!!
一、SpringBoot基本应用1.1 约定优于配置
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。SpringBoot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。
约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式。
本质上是说,系统、类库或框架应该假定合理的默认值,而非要求提供不必要的配置。比如说模型中有一个名为User的类,那么数据 ...
RabbitMQ详解
超长警告!!!善用目录!!!
1. 什么是RabbitMQ1.1 MQ(Message Queue)消息队列
消息队列中间件,是分布式系统中的重要组件
主要解决,异步处理,应用解耦,流量削峰等问题
从而实现高性能,高可用,可伸缩和最终一致性的架构
使用较多的消息队列产品:RabbitMQ,RocketMQ,ActiveMQ,ZeroMQ,Kafka等
1.1.1 异步处理
用户注册后,需要发送验证邮箱和手机验证码;
将注册信息写入数据库,发送验证邮件,发送手机,三个步骤全部完成后,返回给客户端
1.1.2 应用解耦
场景:订单系统需要通知库存系统
如果库存系统异常,则订单调用库存失败,导致下单失败
原因:订单系统和库存系统耦合度太高
订单系统:用户下单后,订单系统完成持久化处理,将消息写入消息队列,返回用户,下单成功;
库存系统:订阅下单的消息,获取下单信息,库存系统根据下单信息,再进行库存操作;
假如:下单的时候,库存系统不能正常运行,也不会影响下单,因为下单后,订单系统写入消息队列就不再关心其他的后续操作了,实现了订单系统和库存系统的应用解耦;
所以说 ...
FastDFS详解
1. 场景概述
天猫,淘宝等购物网站,大量的图片和视频,文件太多,如何存储?
用户访问量大又如何保证下载速度?分布式文件系统就是解决这些问题的!
1.1 什么是文件系统
文件数据是如何存储的??
1.2 分布式文件系统
一台电脑存储量有限,并且并发吞吐量也有限,如何提高性能?
一吨货物,我要运送到吐鲁番:
1个人运,不敢想象
50个人运,太难了;
500个人运,每个人都很轻松;
这就是分布式吗?
这里面有集群的概念,也有分布式的概念,二者不要混淆,面试常问的经典题目
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署不同的服务器上。解决高并发的问题;
集群:同一个业务部署在多台服务器上,提高系统的高可用
1.3 主流的分布式文件系统1.3.1 HDFS
(Hadoop Distributed File System)Hadoop 分布式文件系统;
高容错的系统,适合部署到廉价的机器上;
能提供高吞吐量的数据访问,非常适合大规模数据应用;
HDFS采用主从结构,一个HDFS是由一个name节点和N个data节点组成;
name节点储存元数据,一 ...

