观前提醒:先学会Linux操作系统和数据库后再来~
虚拟机集群配置Linux操作系统有很多版本,这里选择的是Centos,先安装虚拟机VMware,然后再下载Centos的镜像
进去后直接新建虚拟机选择典型,然后地址就是刚刚下载的虚拟机的位置,内存分配建议它建议的一半就行(要是你电脑好当我没说),安装(时间可能有10分种左右)。登录选择“未列出的列表”,然后username输入root,密码就是刚刚创建时的密码。进去后右键桌面,选择最下面的terminal打开终端,然后输入hostnamectl set-hostname node1,意思就是将主机名设置为node1。
然后关闭虚拟机,左边任务栏右键刚刚的虚拟机选择克隆:
选择克隆完整的虚拟机,就是跟这个一模一样的。然后按照上面的方法再克隆1个,接着重命名主机名分别为node2,node3
配置虚拟机ip和网关:左上角编辑选择虚拟机网络编辑器,然后选择vmnet8,更改设置,将子网ip设置为192.168.88.0,NAT设置里网关设置为192.168.88.2
打开node1终端输入vim /etc/sysco ...
IT笔记
未读基础介绍首先至少会点html,css基础知识再来学,微信开发者工具打开,创建一个js开发基础模板的项目,它的目录如下:wxml就是html,wxss就是css,app开头的就是页面进来首先加载的配置,project.config.json就是一些配置设置,就是详情的本地设置的代码。
推荐学习方式:根据微信官方的开发文档跟着学跟着做,根据教学视频的教学内容的路线学。
基础内容先介绍下view组件,就是相当于html的div盒子:
属性
类型
默认值
必填
说明
最低版本
hover-class
string
none
否
指定按下去的样式类。当 hover-class="none" 时,没有点击态效果
1.0.0
hover-stop-propagation
boolean
false
否
指定是否阻止本节点的祖先节点出现点击态
1.5.0
hover-start-time
number
50
否
按住后多久出现点击态,单位毫秒
1.0.0
hover-stay-time
number
400
否
手指松开后点击态保留时间,单位毫秒
1.0. ...
!!!图片已过期,移步老博客:企业级微服务大项目实战《学成在线》【一】(项目环境搭建) - 何平安 - 博客园!!!
项目文档地址:黑马项目-学成在线教育平台: 以业务为基础,基于当前热门的 Spring Cloud 微服务技术栈进行设计,采用Nginx、SpringBoot、Spring Cloud、MyBatis-Plus、MQ、Redis、Elasticsearch等框架和中间件为基础进行开发,带领学员体验Java大型项目从需求分析、架构设计、编码、调试、测试的整个过程。 (gitee.com)
项目架构先来看看项目架构图:
我们主要搞的就是微服务层和数据层。
而这个项目比较大,框架就分成了三个端:
环境搭建
在开发这个项目前,你需要了解java,ssm,.springboot,springcloud,springcloudAlibaba,nacos,mysql,虚拟机,docker,SSH通信,ngnix,redis,rabbitMQ,CentOS,操作系统,git,gogs…以及最重要的耐心。
ssh科普:【科普】SSH都不懂,还搞什么网络 - 知乎 (zhihu.com) ...
Http:超文本传输协议
Https:安全的http
首先引入request库:pip install requests
先F12打开页面检查,在network(网络)里面,然后刷新页面,会发先有个请求文档,点击并观察它:
在常规里面可以看到请求地址为https://www.paisi.edu.cn:8181/jsxsd/?tdsourcetag=s_pcqq_aiomsg,将它复制到新页面确实https://www.paisi.edu.cn:8181/jsxsd,我们需要的url就是这个去掉?后面的,还观察到请求方法为GET。
再观察请求标头(header),前面带 : 的和Sec开头的可以忽略这里用不到,将从Accept到Cache-Control的和Upgrade-Insecure-Requests,User-Agent的内容全部复制,然后在python里新建一个字典:
1234567891011header = { "Accept": "text/html,application/xhtml+xml,application/xm ...
IT笔记
未读什么是前后端联调?
在我们开发的过程中,发送请求的ajax数据都不是后端返回的真数据,而是我们自己通过接口mock模拟的假数据,当前端的代码编写完成后,后端的接口也写好后,我们就需要把mock数据换点,尝试使用后端提供的数据,进行一个前后端的调试,我们会把这个过程叫做前后端接口联调。
真正的零基础都是从安装开始的AwA
编译器选择IDEA:附赠激活码:IntelliJ IDEA2023.2 破解 永久激活 最新版IDEA激活 亲测可用! - 爱激活网 (aijihuo.cn)
Node.js: 下载 | Node.js 中文网 (nodejs.cn)选择对应版本,安装程序除了安装地址以外其它都是默认就行
nginx:nginx: download
MySQL:超详细MySQL安装及基本使用教程 - 知乎 (zhihu.com)
先来介绍下前后端是怎么连接交互的:
一般是前端设计界面,向后端发送一些请求,而发送请求的技术选用的是Ajax,但现在流行的一般都是先转换成Json格式来交互数据的,
Ajax先来说说什么是Ajax
异步 JavaScript 和 XML,或 Ajax 本身不是 ...
文章比较硬核哈,先来说说nginx
NginxNginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。那什么又是反向代理呢?先看这张图:
正向代理: 我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。我们直接用国内的服务器无法访问国外的服务器,或者是访问很慢。所以我们需要在本地搭建一个服务器来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)
反向代理就是和正向代理相反的,ngnix代理了服务器,而不是代理了访问者的浏览器。那么它有什么优点呢?
其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等;Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数;Nginx支持热部署,启动简单,可以做到7*24不间断运行。几个月都不需要重新启动。
nginx ...
Docker初识Docker项目部署的问题:大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题:这些服务会依赖于各种各样的应用,Node.js、Redis、RabbitMQ、MySQL等等,每一个服务的应用它们需要的依赖和函数库有差异,也有可能版本不同,所以依赖关系复杂,容易出现兼容性问题。·依赖关系复杂,容易出现兼容性问题·开发、测试、生产环境有差异Docker与虚拟机的差异:
虚拟机(virtual machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在Windows 系统里面运行Ubuntu系统,这样就可以运行任意的Ubuntu应用了。
Docker和虚拟机的差异:· docker是一个系统进程;虚拟机是在操作系统中的操作系统;· docker体积小、启动速度快、性能好;虚拟机体积大、启动速度慢、性能一般。
镜像和容器镜像就是像照镜子一样。我们一般说的镜像是指给系统作个ghost镜像。这样可以在很短时间,很方便的还原出一个完整的系统来。镜像可以说是一种文件,比如iso,gho都属于镜像文件,镜像文件可以直接刻录到光盘中,也可以用虚拟光驱打开。
镜像( ...
Feign先来看我们以前利用RestTemplate发起远程调用的代码:
存在下面的问题:
•代码可读性差,编程体验不统一
•参数复杂URL难以维护
Feign是一个声明式的http客户端,官方地址:https://github.com/OpenFeign/feign
其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。
基于feign远程调用先在order-service引入依赖:
1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
在 OrderApplication引入自动装配的开关@EnableFeignClients
然后在 order-service里新建一个接口并编写:
123456@FeignClient("userservice")publ ...
设置店铺营业状态先去我之前写的博客“Redis数据库学习笔记”学习Redis的基本操作。
在config层下创建Redis的配置类,里面编写:
123456789101112131415@Configuration@Slf4jpublic class RedisConfiguration { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){ log.info("开始创建redis对象:{}",redisConnectionFactory); RedisTemplate redisTemplate = new RedisTemplate(); //设置redis工厂对象 redisTemplate.setConnectionFactory(redisConnectionFactory); //设置redis序列化器 ...
添加公共通用注解因为接下来的许多接口需要用到create_time,update_time数据库添加语句等,这种会增加代码的重复性,这时这时直接添加一个注释然后添加到Mapper类里面。就是利用AOP进行公共段自动填充技术
先在server模块下创建annotation.AutoFill注解类,里面编写:
12345@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface AutoFill { OperationType value();}
OperationType是一个枚举类,里面有UPDATE,INSERT
然后在在server里面创建aspect.AutoFillAspect类,里面编写:
123456789101112131415@Aspect@Component@Slf4jpublic class AutoFillAspect { @Pointcut("execution(* com.sky.mapper.*.*(.. ...