一、是么是 dubbo?
一、dubbo?
1.因为项目之间需要相互调用,达到某种预期的结果
1.1 restful?
门户网站必须要知道用户的登录状态,但是用户的登录状态在登录项目中,所以门户网站必须要请求登录项目获取用户的登录状态,使用的restful
restful需要把用户的登录状态暴露在http中,一旦被截获/被修改,导致整个项目运行出事故,除非http工具类做的非常安全
restful并不符合mvc的思想
MVC:controller-->service-->mapper-->model
restful:controller-->controller
2.RPC:
为了解决以上的问题才出现了RPC,目前为止springcloud依然延续使用Restful
remote preducer call:远程 过程 调用,也称之为远程调用
3.本地调用:
在同一个项目/在同一个域中,发起调用请求,最终达到所要预期的效果,就称之为本地调用
在同一个项目中controller调用service,service又调用mapper,最终达到预期的结果
晚上两个人一起吃饭,吃完饭以后需要洗完,但是我老婆不想洗碗,于是就说老公你去把碗洗一下,于是在我非常开心(JI DU BU QING YUAN)的情况下就把碗洗了,最终我老婆达到了自己预期的效果,这个就叫本地调用
4.远程调用:
在不同的项目中/在不同的域中,发起调用请求,最终达到了所要预期的效果,就称之为远程调用
在不同的项目中(portal,login),portal项目去请求login项目,最终portal获取到了自己所需要的数据,最终达到了自己的结果
晚上两个人一起吃饭,吃完饭了以后我老婆跟闺蜜一起出去浪,我就被扔家里了,我老婆在外面正在买衣服的时候,突然想起来家里还有碗没有洗,于是就给我打电话,老公我突然想到家里碗还没有洗,你去洗一洗,于是我就把碗洗了,最终我老婆达到了自己预期的效果,这个就叫远程调用
5.RPC非常优秀的一个框架叫做dubbo
阿里巴巴叫dubbo
当当网叫dubbox
京东叫JSF
spring公司的springcloud
6.什么是dubbo?
dubbo之前是阿里巴巴公司开发,最终贡献给了apache项目基金会
duubo就是高性能 轻量级的 基于Java开发 开源的 RPC框架
// 三大核心:
dubbo提供了三大核心:
1.面向接口的风格
2.容错和负载均衡
3.自动的服务注册和服务发现
// 面向接口的风格:
restful是controller调用controller
dubbo是controller调用service(只需要定义接口即可,不需要实现类)
// 容错:
在项目运行中即使出现了错误,仍然可以继续运行的解决方案就叫做容错
自动的服务注册和服务发现:
使用到了zookeeper注册中心,通过zookeeper来实现自动的服务注册和发现
二、 dubbo 的配置。
1.配置zookeeper 三台起步。
2.配置jdk
3.配置tomcat
4.配置maven
4.1
// <localRepository>/home/reposiroty<localRepository>
4.2 镜像
/* <mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
*/
4.3 jdk
/* <profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
<repositories>
<repository>
<id>jdk17</id>
<name>Repository for JDK 1.8 builds</name>
<url>http://www.myhost.com/maven/jdk18</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
*/
5.解压dubbo
tar -zxvf xxxxx
6.进入dubbo目录编译duboo
/*
cd alibaba-dubbo-4791067/
mvn install -Dmaven.test.skip=true
*/
6.1
启动三台zookeeper
//找到 cd /home/apps/zookeeper-3.4.6/bin
//启动 ./zkServer.sh start
//查看状态 ./zkServer.sh status
//结束进程 ./zkServer.sh stop
7.找到dubbo-admin目录,进入target,找到dubbo-admin-2.5.7.war
7.1把war包放入到tomcat中
// cp -r dubbo-admin-2.5.7.war /home/apps/apache-tomcat-8.5.43/webapps/
7.2 进入Tomcat /webapps/中将 root删除掉
7.3 将copy 过来的 dubbo-admin-2.5.7.war 改名为 ROOT.war
// mv dubbo-admin-2.5.7.war ROOT.war
8.启动tomcat
回到 /home/apps/apache-tomcat-8.5.43/webapps/ 目录下
cd ROOT
cd WEB-INF/---------dubbo.properties
9.修改dubbo的配置文件(在WEB-INF目录下的dubbo.properties)
dubbo.registry.address=zookeeper://127.0.0.1:2181(需要改这里)-->zookeeper://192.168.127.152:2181 ip改成 leader 的ip。
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
9.1 重启Tomcat
//./shutdown.sh ./startup.sh
10 浏览器中登录。
浏览器中输入本虚拟机的ip:8080 http://192.168.132.140:8080/
输入账号密码登录。。。