自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Dubbo 分布式架构搭建教育 PC 站:视频讲解

​视频讲解BiliBili 链接教育PC站-Dubbo分布式架构:后端教育PC站-Vue:前端说明服务提供方:http://localhost:8002/服务消费方:http://localhost:80/前端:http://localhost:8080/图片服务器地址:http://www.fdfsstorage.com/ZooKeeper、MySQL、FastDFS、Redis、Nginx 等都配置在 Linux 系统需求完成接口对应的前后端的代码.

2020-10-31 20:21:31 219

原创 Dubbo 分布式架构搭建教育 PC 站 - 微信支付

创建二维码安装 qrcodejs2 (注意:安装的是 qrcodejs2,不要安装 qrcode,否则会报错)npm install qrcodejs2 --save页面中引入<el-dialog :visible.sync="dialogFormVisible" style="width:800px;margin:0px auto;" > <h1 style="font-size:30px;color:#00B38A">微信扫一扫支付</h1> &

2020-10-30 18:44:37 320 1

原创 Dubbo 分布式架构搭建教育 PC 站 - 微信登录

微信开放平台(针对开发者和公司):https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html准备工作网站应用微信登录是基于 OAuth2.0 协议标准构建的微信 OAuth2.0 授权登录系统。在进行微信 OAuth2.0 授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的 AppID 和 AppSecret,申请微信登录且通过审核后,可开

2020-10-30 18:40:06 504

原创 Zookeeper 服务消费方 NullPointerException

Zookeeper 的服务消费方代码:@Controllerpublic class HelloAction { // 远程去服务提供方将 service 的实现类注入进来 @Reference private HelloService helloService; @GetMapping("hello") @ResponseBody public String sayHi(String name){ return helloServic

2020-10-29 18:58:39 399

原创 Java 后台开发面试题分享七

数据库中 CHAR 和 VARCHAR 的区别?Char 固定长度Varchar 可变长度Char 类型,如果存入数据的实际长度比指定长度要小,会补空格至指定长度;如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错4 ) Varchar 类型,如果存入的数据的实际长度比指定的长度小,会缩短到实际长度;如果存入数据的实际长度大于指定长度,低版本会被截取 高版本会报错Varchar 比 Char 节省存储空间Char 效率会更高 Varchar 效率偏低

2020-10-29 18:53:56 173

原创 Dubbo 分布式架构搭建教育 PC 站 - 前端:Vue 代码

src\router\index.jsimport Vue from 'vue'import VueRouter from 'vue-router'import Vuex from 'vuex'import Index from '../components/Index.vue'import Course from '../components/Course.vue'Vue.use(VueRouter)Vue.use(Vuex)const videoDetail = () =>

2020-10-29 18:47:02 1013

原创 Dubbo 分布式架构搭建教育 PC 站 - 后端:数据库设计文档

数据库设计文档MySQL 数据库名称:edu数据库表:activity_course 活动课程表course 课程表course_comment 留言表course_comment_favorite_record 点赞表course_lesson 课时表course_media 课程媒体表course_play_history 历史播放节点表course_section 章节表pay_order 支付订单信息表pay_order_record 支付订单状态日志表promotion

2020-10-28 19:04:42 304

原创 Dubbo 分布式架构搭建教育 PC 站 - 后端:订单模块,留言模块

订单模块购买 / 生成订单功能描述:用户选好课程点击立即购买,调用后端接口,开始创建商品订单。需要校验必要数据:用户是否登录;接口的请求入参,课程是否存在,课程是否上架;该用户之前是否成功购买过该课程;如校验不通过提示相应的文案。查看该用户是否存在有效未成功的订单;如果存在直接返回对应的订单号;如果不存在创建新的课程订单,返回新的订单号。功能接口:/saveOrder?orderNo={orderNo}&user_id={userid}&course_id={cour

2020-10-28 19:03:10 159

原创 JSP 报错:ReferenceError: $ is not defined

运行 SpringMVC 项目时,JSP 的代码报错:ReferenceError: $ is not definedJSP 相关代码如下:...<script src="js/jquery-3.3.1.min.js"></script><script> $("#btn").on("click", function () { $.ajax({ type: "post", url: "reg

2020-10-27 22:14:23 674

原创 Java 后台开发面试题分享六

堆(Heap)和栈(Stack)的区别(1)管理方式不同。栈由操作系统自动分配释放,无需手动控制;堆的申请和释放工作由程序员控制,容易产生内存泄漏。(2)空间大小不同。每个进程拥有的栈的大小要远远小于堆的大小。理论上,程序员可申请的堆大小为虚拟内存的大小,进程栈的大小 64bits 的 Windows 默认 1MB,64bits 的 Linux 默认 10MB。(3)生长方向不同。堆的生长方向向上,内存地址由低到高;栈的生长方向向下,内存地址由高到低。(4)分配方式不同。堆都是动态分配的,没有静态分

2020-10-27 22:05:17 244 2

原创 Dubbo 分布式架构搭建教育 PC 站 - 后端:用户模块,课程模块

用户模块实体类的编写没有任意技术含量,而且还浪费时间。生成代码的解决方案有很多种:企业中比较常见的还有 MyBatis 的逆向工程。修改 Easy Code 插件的作者名称:IDEA 的 Settings -> Other Settings -> Easy Code -> 修改新的作者名称。使用 EASY CODE 插件可以快速生成 entity,dao,service,mapper 等文件:IDEA 安装最新版的 Easy Code 插件来自动生成代码;在 IDEA 的 D

2020-10-27 21:58:38 315 1

原创 SpringMVC 接受前端传来的中文出现乱码情况

使用 SpringMVC 接受前端 JSP 页面传来的中文出现了乱码。首先保证项目的编码为 UTF-8。在项目中的 web.xml 配置过滤器,进行编码拦截:<filter> <filter-name>charset</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <

2020-10-26 19:10:08 478

原创 Java 后台开发面试题分享五

线程的 start 方法跟 run 方法的区别?start() 方法来启动线程,真正实现了多线程运行。这时无需等待 run() 方法体代码执行完毕,可以直接继续执行下面的代码。通过调用 Thread 类的 start() 方法来启动一个线程, 这时此线程是处于就绪状态, 并没有运行。方法 run() 称为线程体,它包含了要执行的这个线程的内容;当线程进入了运行状态,就开始运行 run() 函数当中的代码;当 run() 方法运行结束,此线程终止,然后 CPU 再调度其它线程。list 和 ma

2020-10-26 18:58:26 232 2

原创 Dubbo 分布式架构搭建教育 PC 站

架构设计与环境搭建项目架构项目介绍教育 PC 站是提供给学员观看技术视频的网站。学员使用手机号注册登录后,可以选择适合自己的课程,并观看课程视频,当然,有免费的课程,也有 VIP 专属课程。技术选型前端技术选型Vue.js - 是一套用于构建用户界面的渐进式 JavaScript 框架ElementUI 库 - 是饿了么前端出品的基于 Vue.js 的后台组件库,方便程序员进行页面快速布局和构建node.js - 简单的说 Node.js 就是运行在服务端的 JavaScrip

2020-10-26 18:56:19 260 1

原创 使用 Redis 分布式锁报错:-READONLY

使用 Redisson 提供的 Redis 分布式锁时,编译没有问题,运行时报错 (-READONLY You can’t write against a read only replica):10月 11, 2020 2:18:18 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [springMVC] in context with path [] threw excep

2020-10-25 00:23:17 2071

原创 Java 后台开发面试题分享四

61、数据库隔离级别是什么?有什么作用?Serializable - 串行化:可避免脏读、不可重复读、幻读的发生。Repeatable read - 可重复读:可避免脏读、不可重复读的发生。Read committed - 读已提交:可避免脏读的发生。Read uncommitted - 读未提交:最低级别,任何情况都无法保证。62、汉字和英文字符在数据库中存储是占同样字节吗一个汉字占多少长度与编码有关:UTF-8:一个汉字 = 3 个字节,英文一个字母占用一个字节GBK: 一个汉字

2020-10-25 00:21:03 217

原创 视频讲解编程题:Redis + FastDFS 小视频上传

需求使用 Redis 分布式锁解决高并发下的小视频上传1、前端页面自行设计2、Redis + FastDFS3、功能流程不报错视频讲解BiliBili 链接 编程题:Redis + FastDFS 小视频上传 说明使用了 nginx 做负载均衡以及配置 FastDFS 服务器:upstream renda { server 192.168.1.116:8001;

2020-10-22 13:39:23 748 4

原创 视频讲解编程题:Dubbo + ZooKeeper

视频讲解BiliBili 链接 Dubbo+ZooKeeper编程题 需求使用 Dubbo,ZooKeeper,mySQL,Spring,SpringMVC,MyBatis 实现:1、注册用户(任务中已完成)2、删除用户3、修改用户4、根据姓名关键字模糊查询用户页面自行设计(越美越好)使用 Maven 聚合工程,进行模块开发功能流程,不报错代码要点r

2020-10-21 21:33:03 109

原创 RabbitMQ 消息队列入门

什么是 RabbitMQMQ(Message Queue)消息队列消息队列中间件,是分布式系统中的重要组件;主要解决异步处理、应用解耦、流量削峰等问题,从而实现高性能,高可用,可伸缩和最终一致性的架构。使用较多的消息队列产品:RabbitMQ,RocketMQ,ActiveMQ,ZeroMQ,Kafka 等。异步处理用户注册后,需要发送验证邮箱和手机验证码。将注册信息写入数据库,发送验证邮件,发送手机,三个步骤全部完成后,返回给客户端。传统:客户端 <-> 注册信息写入数据库 -

2020-10-17 18:31:47 820 1

原创 FastDFS 分布式文件系统入门

场景概述如何存储大量的图片和视频?在用户访问量大的情况下,如何保证下载速度?这些问题都需要分布式文件系统来解决。什么是文件系统文件数据是如何存储的?应用软件 -> 操作系统,文件系统 -> 驱动程序 -> 机械硬盘 HDD,固态硬盘 SSD,光盘 CD ROM文件数据存储在硬盘中。分布式文件系统一台电脑存储量有限,并且并发吞吐量也有限,如何提高性能?分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块拆分为多个子业务,部署在不同的服务器上,解决高并发的问题。

2020-10-14 21:57:53 226

原创 Redis - NoSQL 和 Jedis 入门

概述互联网架构的演变历程第 1 阶段:数据访问量不大,简单的架构即可搞定。适合小型项目。app -> dao -> mysql第 2 阶段:数据访问量大,使用缓存技术来缓解数据库的压力。不同的业务访问不同的数据库。适合中型项目。app -> dao -> cache -> [mysql1, mysql2, mysql3]第 3 阶段:主从读写分离。之前的缓存确实能够缓解数据库的压力,但是写和读都集中在一个数据库上,压力又了。一个数据库负

2020-10-11 19:00:09 361

原创 Dubbo 分布式系统架构入门

Dubbo 概述什么是分布式系统分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统。分布式系统(distributed system)是建立在网络之上的软件系统。简单来说:多个(不同职责)人共同来完成一件事。任何一台服务器都无法满足淘宝的双十一的数据吞吐量,一定是很多台服务器公共来完成的。单一应用架构当网站流量很小时,只需要一个应用,将所有的功能部署到一起(所有业务都放在一个 tomcat 里),从而减少部署节点和成本;此时,用于简化增删改查工作量的数据访问框架 (OR

2020-10-10 21:08:53 474

原创 Zookeeper 分布式技术入门

Zookeeper 概述概述Zookeeper 是一个开源的分布式(多台服务器干一件事)的,为分布式应用提供协调服务的 Apache 项目工作机制从设计模式角度来理解:Zookeeper 是一个基于观察者模式设计的分布式服务管理框架观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新Zookeeper 负责存储和管理重要的数据;然后接受观察者的注册,一旦这些数据的发生变化,Zookeeper 就将负责通知已经注册的那些观察者做出相应的

2020-10-09 17:05:14 212

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除