冬至阳生,岁回律转。2023年悄然落下了帷幕。
0x01. 一波三折 | 小组年会重启年后的某一天傍晚,突然接到老师的电话,老师提出了我能否提前返回和项目组会合、支援项目开发的疑问,和学长简单沟通了目前的开发进度后,我便很快的买了票,然后回到北京,与团队在封闭开发的酒店会合。由于天气原因我错过了火车,只得一夜硬座坐到西安,然后再转北京,第二天的车票也因天气晚点,最终我转了三趟车才艰难的到北京和学妹在北京西站会合,打车的时候,师傅又一直绕来绕去,又和学妹在火车站前的广场上吹了半小时的风。一路曲折似乎为为2023的不幸定下基调。
进行了几天的项目开发之后,便迎来了这次返京的重头戏,就是实验室的年会。听黄老师说这是实验室十几年来每年年底的必备项目,最近两年因为疫情影响就停止了。实验室以前的传奇人物都悉数到场,印在学院宣传册上的人物也站在了自己面前,大家都做了自我介绍,虽然很多人都是第一次见面,但是因为实验室大家变得亲近了不少,这就是传承的意义吧。
0x02. 匆匆忙忙 | 一些事情需要画上句号
一些关于项目、技术的事情。
demo01 基于若依框架的某管理系统前端
项目来源:某门户网站 ...
https://blog.csdn.net/m0_64231944/article/details/127706916?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171574229816800215049115%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171574229816800215049115&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-127706916-null-null.142^v100^pc_search_result_base2&utm_term=css%E8%AE%BE%E7%BD%AE%E8%83%8C%E6%99%AF%E9%A2%9C%E8%89%B2%E6%B8%90%E5%8F%98&spm=1018.22 ...
1、什么是微服务1.1 单体架构
致命缺点:
一旦某个服务宕机,会引起整个应用不可用,隔离性差
只能整体引用进行伸缩,浪费资源,可伸缩性差
代码耦合在一起,可维护性差
1.2 微服务架构
问题:
代码冗余
服务和服务之间存在调用关系
1.2.1 代码冗余问题
由于为了保持对外提供服务的一致性,引入了网关的概念,由网关根据不同的请求,将其转发到不同的服务(路由功能),由于入口的一致性,可以在网关上实现公共的一些功能
可以将公共的功能抽取出来,形成一个新的服务,比如统一认证中心。
1.2.2 服务之间的调用服务拆分之后,服务和服务之间发生的是进程和进程之间的调用,服务器和服务器之间的调用。
那么就需要发起网络调用,网络调用我们立马想起的就是http,但是在微服务架构中,http虽然便捷,但是性能较低,这时候就需要引入RPC(远程过程调用),通过自定义协议发起TCP调用,来加快传输效率。
每个服务器由于可能分布在成千上百台机器上,服务和服务之间的调用,会出席那一些问题,比如,如何知道应该调用哪台服务器上的服务,调用方可能休要维护被调用的方的地址,这个地址可能很多,增加了额外的 ...
Docker
未读Docker部署1. 镜像分层原理
为什么centos镜像只有200多MB?
因为centos镜像使用了宿主机的内核。
base镜像的定义
不依赖其他镜像,从scratch构建
其他镜像可以在其基础进行扩展
base镜像一般都是各种Linux发行版本的Docker镜像,比如:Ubuntu,Debian或者CentOS等。
Linux操作系统由用户空间和内核空间构成。
内核空间是kernel,用户空间是rootfs,不同发行版的区别主要是rootfs。比如Ubuntu 14.04使用 upstart 管理服务,apt 管理软件包;而 CentOS 7 使用 systemd 和 yum。这些都是用户空间的不同,Kernel差别不大。
所以Docker可以同时支持多种 Linux 镜像,模拟出不同的操作系统环境。
为什么jdk的镜像有500多MB?
jdk镜像包含了rootfs和jdk本身,所以jdk的镜像要加上rootfs的大小,才是jdk镜像的大小。
为什么tomcat正常下载几十兆,镜像却要几百兆?
分层说明:
修改时复制策略(copy-on-write)
Doc ...
一、快速入门gorm地址:https://github.com/go-gorm/gorm
对开发者友好的gorm库,目前使用最广的go orm库之一
中文官方网站内含十分齐全的中文文档,可直接阅读官方文档。
1. 入门数据库以目前使用最多的mysql为例。
123456//安装MySQL驱动go get -u gorm.io/driver/mysql//安装gorm包go get -u gorm.io/gorm//安装gingo get -u github.com/gin-gonic/gin
涉及到的数据库sql:
1234567CREATE TABLE `users` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID', `username` varchar(30) NOT NULL COMMENT '账号', `password` varchar(100) NOT NULL COMMENT '密码', `createtime` bigint ...
Docker
未读一、Docker概念介绍1. Docker架构
从上图得知,Docker分为三部分,客户端,Docker服务端,仓库。
1.1 客户端平常我们使用的就是客户端,通过客户端命令和Docker引擎进行交互
Docker 是一个客户端-服务器(C/S)架构程序。
Docker 客户端只需要向 Docker 服务端发起请求,服务端将完成所有的工作并返回相应结果。
Docker 提供了一个命令行工具 docker 以及一整套 RESTful API。
比如:
12docker pull docker run
客户端可以和服务端在一台宿主机上,也可以不在
1.2 Docker服务端Docker服务端 又称为Docker主机,Docker引擎,Docker守护进程。
依托于宿主机,守护进程,用于管理镜像,容器,执行客户端命令等。
1.3 仓库RegistryDocker有两个重要的概念镜像和容器。
镜像可以理解为就是软件安装包,容器就是软件安装完成后可运行的状态。
既然镜像是软件安装包,那么这个安装包从哪下载呢?
Docker推出了Registry这个概念,一般有人也称为是 注册中心, ...
Golang
未读一、快速入门go版本需求:go1.13及以上
环境:windows 11
123456789D:\go\project>mkdir ginlearnD:\go\project>cd ginlearnD:\go\project\ginlearn>go work initD:\go\project\ginlearn>mkdir helloworldD:\go\project\ginlearn>cd helloworldD:\go\project\ginlearn\helloworld>go mod init test.com/helloworldgo: creating new go.mod: module test.com/helloworldD:\go\project\ginlearn\helloworld>cd ..D:\go\project\ginlearn>go work use ./helloworld
123PS D:\go\project\ginlearn> cd .\helloworld\#下载并安装ginPS D: ...
一些资料
Git完整版命令手册
Git Pro
菜鸟教程
Git 工作区、暂存区和版本库
Git 工作流程
命令速查
初始化1git init
克隆1git clone -b <branch> <repo> <directory>
branch: 分支(默认main分支,可选参数)
repo:Git仓库
directory:本地目录
配置1234git config -e # 针对当前仓库 git config -e --global # 针对系统上所有仓库git config --global user.name "xxx"git config --global user.email xxx@runoob.com
添加1git add ./ # 添加所有文件
分支
12345678910111213git branch # 列出分支git branch (branchname) # 创建新分支git branch (branchname) # 删除分支git checkout <branch-n ...
预览和真题调试的区别
官方回答:真机调试:调试结果更接近真机表现,预览:是为了模仿各种场景便于开发者去测试