-
项目中用到的技术
- Maven
- Dubbo
- Spring
- Java
- IDE(Eclipse)
-
项目基本描述:
dubbo-demo是使用dubbo框架搭建的hello world的程序,在这个项目中一共分为三个项目:
服务-provider dubbo-user-api: 这个项目是用作服务中接口的定义; dubbo-user-impl: 这个项目是用作api中接口的实现;
消费者-consumer dubbo-user-consumer: 这个项目是服务的消费者
-
项目如何启动
第一步:下载开源软件zookeeper
第二步:解压zookeeper,一般来讲,对于开源项目,解压完后一定要观察一下开源项目的目录结构
第三步:找到conf目录,将原来zoo_sample.cfg文件copy一份,将文件名改为zoo.cfg
第四步:将改好文件名的zoo.cfg文件中的dataDir属性对应的值修改一下换到目录
../data
就好了第五步:启动zookeeper
- zookeeper的常用命令
zkServer.cmd
:启动zookeeper的命令zkCli.cmd
:zookeeper客户端
第六步:启动项目
dubbo-user-impl
- 启动方式
- 直接通过IDE运行
- 使用Maven将项目打成jar文件,当然通过Java自带的
jar
命令也可以完成,然后使用java -jar *.jar
命令来完成启动
第七步:启动consumer
- 启动方式:同第六步
- zookeeper的常用命令
-
接下来要做的事情
- 将共同的部分提到父项目中,然后让子项目从父项目中继承,顺便复习一下Maven(完成)
- 为provider项目添加数据库连接操作,通过开源框架
dubbo
实现对表t_user
的CRUD操作,并测试(完成) - 为consumer项目添加页面,实现CRUD操作
- session共享问题如何解决
- 数据库相关问题
-
Dubbo框架的几种启动方式
- 第一, 将
Dubbo
做成WEB工程,在web.xml
文件中,启动spring - 第二, 自建main方法来运行,这种方式适合本地调试(本例中使用)
- 第三, 使用dubbo框架提供的main方法来运行(推荐使用)
- 第一, 将
-
经常阅读自己写过的代码,refactoring
-
你假笨分享
-
类加载死锁, finalreference堆积,对外内存(不要-Xmx控制的内存),YGC(不断拉长)
-
jstack -m
,一般不推荐使用,但是在特殊的情况下可以使用。 -
数据结构,读Java源码(openJDK)
-
jmap -histo
-
finalize
方法什么时候被调用- GC发生并找出Finalizer对象
- 判断Finalizer对象引用的对象是否没有别的引用了
- 将引用已死对象的Finalizer对象丢到一个Finilizer的ReferenceQueue里面
- 在GC结束之后,FinalizerThread线程被唤醒并从ReferenceQueue里取出来间接调用finalize方法
-
FinalReference
对象及引用对象什么时候被回收- 执行完finalize方法后会剥离Finalizer对象和被引用对象的关系
- 执行完了finilize方法的Finilizer对象及被引用的对象会在下个GC周期里被回收
- 如果finalize方法因为队列过长,不得不等待之前的对象执行完才执行,因为肯能存在跨多个GC周期
-
Notifications
You must be signed in to change notification settings - Fork 0
MarkShen1992/dubbo-demo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
About
RPC framework dubbo learn
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published