Dubbo注册中心
引入分布式系统 分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统
架构演变
单一应用架构
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。
大致就是将所有的逻辑和业务写在同一个项目中 一般网站流量小 并且只需要一个应用 将所有代码部署在一起 可以减少开发、部署、运维的成本
缺点:
性能扩展难
协同开发难
升级维护难
垂直应用架构
当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
就是将单体架构拆分为多个互不相干的应用 大大提升了效率
缺点:
公共模块无法重复利用,开发性浪费
分布式服务架构
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的**分布式服务框架(RPC)**是关键。
流动式计算框架
当服务 ...
SolrCloud
SolrCloud环境
Linux:Centos7.9
Jdk:1.8.0_151
Solr:4.10.3
Tomcat:7.0.47
Zookeeper:3.4.6
前面:hhh如果出现503,可以重启服务器,会有奇迹,不行的话,就回去检查,一般是代码写错了
准备zookeeper
将Solr Tomcat Zookeeper上传至虚拟机,并解压 (Jdk自行安装)
将Zookeeper复制三份到 /usr/local/solrcloud,并命名为zookeeper01 zookeeper02 zookeeper03
#创建文件夹[root@Heroxin005 ~]# mkdir /usr/local/solrcloud#复制文件到该目录[root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper01[root@Heroxin005 ~]# cp -r zookeeper-3.4.6 /usr/local/solrcloud/zookeeper02[root@Heroxin005 ~]# ...
淘淘商城问题汇总
问题汇总
淘淘商城虽然是2015年的项目,但总有值得学习的地方
由于年代的’久远’,项目中出现最多的问题就是依赖与插件的版本太老,与今天的浏览器,服务器啥的兼容不好
亲测使用 QQ浏览器 跑这个项目还是可以的(谷歌浏览器或和它内核相同的浏览器还是别用了)
PS:我平时用 edge,QQ浏览器只是跑项目用,听说 360浏览器也可以
如果效果和你预期的不一样,可以先重启服务或清除浏览器缓存
本文是我遇到的一些错误,找错误是很烦的,尤其是没有报错的错误,希望这可以帮到你
本文记录了些有趣的错误,一些由于疏忽或是易于解决的小错误就没有记录了
敲代码哪有不出bug的,只能在实践中凭借经验规避错误罢了。
第三天
配置Vsftpd失败,测试类没有报错,但文件没有上传到服务器(视频中的测试类有问题)
解决方法:Vsftpd - Heroxin
使用视频提供的FtpUtil.java不能正常上传
解决方法:加一行
无法正常显示添加图片按钮
flash问题,而且 Kindeditor 有很多兼容问题,也多年不更新了
解决方法:下载 QQ浏览器,安装 Flashcenter
批量上传,图片上传成 ...
Vsftpd
Vsftpd安装&配置
安装
[root@Heroxin003 ~]# yum -y install vsftpd
创建用户(默认不允许root用户访问,如果你有其他非root用户,可以不创建)
# 添加用户[root@Heroxin003 ~]# useradd Heroxin# 添加密码[root@Heroxin003 ~]# passwd Heroxin
开放 21 端口
[root@heroxin003 ~]# firewall-cmd --add-port=21/tcp --permanent
修改 selinux
[root@Heroxin003 ~]# setsebool -P allow_ftpd_full_access on# Centos6 为 ftp_home_dir 而 Centos7 为 tftp_home_dir , 注意区别[root@Heroxin003 ~]# setsebool -P tftp_home_dir on
修改后效果如下:
# 查看命令[root@Heroxin003 ~]# getsebool -a | grep ftp
...
Nginx
Nginx
提到Nginx,首先想到的就是负载均衡和反向代理啥的。
也不明白这是啥意思,今天来学学
简介 Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,同时也提供了IMAP/POP3/SMTP服务, 能经受高负载的考验。
正向代理
所谓正向代理就是内网服务器主动要去请求外网的地址或服务,所进行的一种行为。
例如在大陆访问不到谷歌,但可以通过设置代理服务器来访问,这个过程就叫正向代理
内网服务—访问—>外网
Nginx的正向代理,只能代理Http、Tcp等,不能代理Https请求。
反向代理
所谓反向代理就是外网要访问内网服务而进行的一种行为。
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址(8001,8002)。
外网—-请求—>内网服务
负载均衡
增加服务器的数 ...
ZooKeeper
Zookeeper入门概述 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是 Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口
工作机制 从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册过的那些观察者做出相应的反应。
特点
zookeeper:一个领导者,多个跟随者组成的集群;(一主多从 ?)
集群中只要有半数以上节点存活,zookeeper集群就能够正常服务,所以zookeep ...
Git
GitGit概述
Git是一个免费的、开源的 分布式版本控制系统 ,可以快速高效地处理从小型到大型的各种项目 。Git易于学习,占地面积小,性能 极快 。 它具有廉价的本地 库 ,方便的暂存区域和多个工作流 分支 等 特性。 其性能优于 Subversion、 CVS、 Perforce和 ClearCase等 版本控制 工具。
版本控制 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
版本控制工具
集中式版本控制工具
CVS、SVN(Subversion)、VSS……
集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
多年以来,这已成为版本控制系统的标准做法。这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并 ...
Maven
MavenMaven简介
Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
POM:Project Object Model 项目对象模型
基础概念
groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
artifactId:定义当前Maven项目名称(通常是模块名称)
version:定义当前版本号
packaging:定义该项目的打包方式
作用
项目构建:提供标准的,跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目依赖的资源,避免资源间版本冲突问题
统一开发结构:提供标准的,统一的项目结构
Maven项目依赖管理依赖配置
依赖指的是当前项目运行所需要的 jar
<!--设置当前项目所依赖的所有jar--><dependencies> <!--设置具体的依赖--> <dependency> <!--依赖所属群组id--> <groupId></groupId> <!--依赖所属项目id--&g ...
Linux基础命令
Linux基础命令文件目录
pwd 显示当前工作目录的绝对路径
ls 列出目录内容
按键
功能
-a
全部的文件,连同隐藏的文件也一起列出来
-l
显示文件的详细信息, ls -l 等价于 ll
cd 切换目录
按键
功能
cd [绝对路径]
切换目录
cd [相对路径]
切换目录
cd ~ 或 cd
回到用户目录
cd -
回到上次所在目录
cd ..
回到当前目录的上一级目录
cd -P
回到实际物理路径,而非快捷方式路径
mkdir 创建文件夹
按键
功能
-p
创建多层目录
#创建一个目录(hero目录存在)mkdir heroxinmkdir hero/heroxin#创建一个多级目录(hero,xin,heroxin三者都不存在)mkdir -p hero/xin/heroxin
rmdir 删除一个空的目录
rmdir heroxin
touch 创建文件
touch heroxin.txt
cp 复制文件或目录
按键
功能
-r
递归复制整个文件夹
/cp
直接覆盖同名文件,不 ...