Skip to content

MarkShen1992/dubbo-demo

Repository files navigation

  1. 项目中用到的技术

    • Maven
    • Dubbo
    • Spring
    • Java
    • IDE(Eclipse)
  2. 项目基本描述:

    dubbo-demo是使用dubbo框架搭建的hello world的程序,在这个项目中一共分为三个项目:

    服务-provider dubbo-user-api: 这个项目是用作服务中接口的定义; dubbo-user-impl: 这个项目是用作api中接口的实现;

    消费者-consumer dubbo-user-consumer: 这个项目是服务的消费者

  3. 项目如何启动

    第一步:下载开源软件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

    • 启动方式:同第六步
  4. 接下来要做的事情

    • 将共同的部分提到父项目中,然后让子项目从父项目中继承,顺便复习一下Maven(完成)
    • 为provider项目添加数据库连接操作,通过开源框架dubbo实现对表t_user的CRUD操作,并测试(完成
    • 为consumer项目添加页面,实现CRUD操作
    • session共享问题如何解决
    • 数据库相关问题
  5. Dubbo框架的几种启动方式

    • 第一, 将Dubbo做成WEB工程,在web.xml文件中,启动spring
    • 第二, 自建main方法来运行,这种方式适合本地调试(本例中使用)
    • 第三, 使用dubbo框架提供的main方法来运行(推荐使用)
  6. 网站架构发展

  7. 经常阅读自己写过的代码,refactoring

  8. 你假笨分享

    • SOFA框架

    • 类加载死锁, 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周期
  9. 微服务

About

RPC framework dubbo learn

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages